金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 591|回复: 5

多头策略 DD-link / 空头策略 KK-link 时间网格

[复制链接]

3

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-16
曾用名:
发表于 2025-2-3 08:35 | 显示全部楼层 |阅读模式
本帖最后由 技术006 于 2025-2-3 09:47 编辑

多头策略 DD-link / 空头策略 KK-link 时间网格
[PEL] 复制代码
//+++++++++++++++++++++KK_LINK++++++++++++++++
//WARNING_DISABLE:9;
{===========================================================================================}
INPUT:T0(3,2,240,1),BMIN(1,1,100,1),BMAX(40,1,100,1);
HOLDING0:=IF(HOLDING<>DAYHOLDING,DAYHOLDING,HOLDING);
AVGENTERPRICE0:=IF(AVGENTERPRICE<>AVGENTERPRICE,AVGENTERPRICE,AVGENTERPRICE);
{===========================================================================================}
{1
TR0:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),NOAXIS;//,LINETHICK0;
ATR0:MA(TR0,14),NOAXIS;//,LINETHICK0;

TR1:=MAX(MAX((REF(HIGH,1)-REF(LOW,1)),ABS(REF(CLOSE,2)-REF(HIGH,1))),ABS(REF(CLOSE,2)-REF(LOW,1))),NOAXIS;//,LINETHICK0;
ATR1:MA(TR1,14),NOAXIS;//,LINETHICK0;
{===========================================================================================}

OPEND:="$OPEN#DAY";
CLOSED:="$CLOSE#DAY";
HIGHD:="$HIGH#DAY";
LOWD:="$LOW#DAY";
VOLD:="$VOL#DAY";

BZJ0:=ROUND( ( REF(CLOSED,0) * MULTIPLIER * (TACCOUNT(41)+TACCOUNT(42))/2 ) ),NOAXIS,LINETHICK0;
FY0:=OPENPROFIT,NOAXIS;//,LINETHICK0;

保0:BZJ0,NOAXIS,LINETHICK0;
浮0:FY0,NOAXIS,LINETHICK0;

ZCK0:=ROUND( ( (( CASH(0)+CASH(1) )/2) * (BMIN/100) ) / BZJ0 ),NOAXIS,LINETHICK0;
ZCK1:=ROUND( ( (( CASH(0)+CASH(1) )/2) * (BMAX/100) ) / BZJ0 ),NOAXIS,LINETHICK0;
基:ZCK0,NOAXIS,LINETHICK0;
极:ZCK1,NOAXIS,LINETHICK0;

//ZCB0:=( (CASH(0)+CASH(1))/2 )/(ASSET),NOAXIS,LINETHICK0;
//比:ZCB0,NOAXIS,LINETHICK0;

JYF0:=GEGCHARGE('',REF(CLOSED,0),1,0)*2,NOAXIS,LINETHICK0;
费:JYF0,NOAXIS,LINETHICK0;

MMC0:=( (DYNAINFO(34)-DYNAINFO(28)) )*MULTIPLIER,NOAXIS,LINETHICK0;
差:MMC0,NOAXIS,LINETHICK0;

//ZXBD:=DYNAINFO(208)*MULTIPLIER,NOAXIS,LINETHICK0;
//XS:( IF(JYF>=MMC,JYF,MMC)-IF(MMC>=JYF,JYF,MMC) )/IF(JYF>=MMC,JYF,MMC),NOAXIS,LINETHICK0;
//DC:(1+ROUND(IF(XS<=1,1,XS)))*( (DYNAINFO(34)-DYNAINFO(28)) ),NOAXIS,LINETHICK0;
{===========================================================================================}
仓:HOLDING0,NOAXIS,LINETHICK0;
资:ASSET,NOAXIS,LINETHICK0;
金:CASH(0),NOAXIS,LINETHICK0;
净:NETPROFIT,NOAXIS,COLORYELLOW,LINETHICK0;
浮:OPENPROFIT,NOAXIS,LINETHICK0;
幅:OPENPROFITPER,NOAXIS,LINETHICK0;
撤:MAXDRAWDOWN,NOAXIS,LINETHICK0;
幅0:MAXDRAWDOWNPCT,NOAXIS,LINETHICK0;
亏:GROSSLOSS,NOAXIS,LINETHICK0;
盈:BESTTRADE,NOAXIS,LINETHICK0;
回:ANNUALRETURNRATER,NOAXIS,LINETHICK0;
年:ANNUALRETURNRATE,NOAXIS,LINETHICK0;
风:=PROFITRISKRATIO,NOAXIS,LINETHICK0;
次:=TOTALDAYTRADE,NOAXIS,LINETHICK0;
{=================================================================}
HMIN:=ZCK0;
HMAX:=ZCK1;
H1:=HMIN;
H2:=H1*2;
H3:=H1*3;
{==============================================================================}
{==========================================================================================}
ZQ1:=IF(DATATYPE=1,1,0);
ZQ3:=IF(DATATYPE=17,3,0);
ZQ5:=IF(DATATYPE=2,5,0);
ZQ10:=IF(DATATYPE=18,10,0);
ZQ15:=IF(DATATYPE=3,15,0);
ZQ30:=IF(DATATYPE=4,30,0);
ZQ60:=IF(DATATYPE=5,60,0);
ZQF:=IF(DATATYPE=13,DATATYPEMORE(2),0);
ZQH:=IF(DATATYPE=11,DATATYPEMORE(1)*60,0);
ZQ:=ZQ1+ZQ3+ZQ5+ZQ10+ZQ15+ZQ30+ZQ60+ZQF+ZQH,NOAXIS;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1,NOAXIS;
JY:=IF(HIGH+LOW-OPEN-CLOSE=0,0,1),NOAXIS;
TK:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-10*100,NOAXIS;
TS:=TIME>=CLOSETIME(0)-10*100,NOAXIS;
F:="ZQ";
OPENMIN1:="$OPEN#MINF";
OPENDAY:="$OPEN#DAY";
OPENSTART:=IF(OPENMIN1=OPENDAY,1,0);
OST:=FILTER(OPENSTART,CYC);
KPJY:= OST>=1 AND TK>=1 AND JY=1 AND CYC>=1;
SPJY:= TS=1;
{====================================================================================================}
//SELL(SPJY,HOLDING0,THISCLOSE);{CLOSE}
//BUY(KPJY,1,THISCLOSE);{OPEN}
//收盘:SELLSHORT(SPJY,HOLDING0,THISCLOSE);{CLOSE}
//开盘:BUYSHORT(KPJY,HMIN,THISCLOSE);{OPEN}
{============================================================================================}
//INPUT:N(1,1,240,1);
D:=T0;//RAND(9)+5,NOAXIS,LINETHICK0;
隔:D,NOAXIS,LINETHICK0;
D1:=IF(D<=2,2,D),NOAXIS,LINETHICK0;
D2:=RET(OPENMINUTES(CURRENTTIME),1),NOAXIS,LINETHICK0;
D3:=RET(OPENMINUTES(TIME),1),NOAXIS,LINETHICK0;
日:D2,NOAXIS,LINETHICK0;
分:D3,NOAXIS,LINETHICK0;
{===================================================================================}
X0:=IF(HIGH+LOW-OPEN-CLOSE=0,0,1),NOAXIS,LINETHICK0;
X1:=REF(X0,1),NOAXIS,LINETHICK0;
{==================================================================================}
A1:=OPENMINUTES(TIME)/D,NOAXIS,LINETHICK0;
A2:=INTPART(A1),NOAXIS,LINETHICK0;
A3:=FRACPART(A1),NOAXIS,LINETHICK0;
A4:=(A2/A3),NOAXIS,LINETHICK0;
A5:=(A2-D),NOAXIS,LINETHICK0;
A6:=IF((A4-A5)=D,1,0),NOAXIS,LINETHICK0;
{====================================================================================}
BSELL:=IF(AVGENTERPRICE0=0,OPEN,AVGENTERPRICE0)-OPEN,NOAXIS;
本 :BSELL,COLORBLUE,NOAXIS;//,LINETHICK0;
本0:IF(AVGENTERPRICE=0,OPEN,AVGENTERPRICE),COLORRED;//,NOAXIS;//,LINETHICK0;
B0:=1*(DYNAINFO(34)-DYNAINFO(28)),NOAXIS,LINETHICK0;
B1:=IF(B0<=0,MINDIFF,B0),NOAXIS,LINETHICK0;
小:B1,NOAXIS,LINETHICK0;
{=====================================================================================}
{
FY1:FY0/BZJ0/1,NOAXIS;//,LINETHICK0;
FY2:FY0/BZJ0/2,NOAXIS;//,LINETHICK0;
FY3:FY0/BZJ0/3,NOAXIS;//,LINETHICK0;
FY4:FY0/BZJ0/4,NOAXIS;//,LINETHICK0;
FY5:FY0/BZJ0/5,NOAXIS;//,LINETHICK0;
FY6:FY0/BZJ0/6,NOAXIS;//,LINETHICK0;
// FILTER((FY0>BZJ0),ENTERBARS)

{==============================================================================}

KPK:=01 AND (BSELL>B1*7) AND X1;
控平空:SELLSHORT(KPK,(HOLDING0/H3),THISCLOSE),NOAXIS,LINETHICK0;
{==============================================================================}
//开盘:BUYSHORT( HOLDING0=0 AND (D2+D3)=D2+2,H1,THISCLOSE),NOAXIS,LINETHICK0;
随机开空:BUYSHORT( HOLDING0=0 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
{==============================================================================}
控加空0:BUYSHORT(-01>HOLDING0>-02 AND (BSELL+B1*05)<-B1*07 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加空1:BUYSHORT(-02>HOLDING0>-03 AND (BSELL+B1*07)<-B1*11 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加空2:BUYSHORT(-03>HOLDING0>-05 AND (BSELL+B1*11)<-B1*13 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加空3:BUYSHORT(-05>HOLDING0>-07 AND (BSELL+B1*13)<-B1*17 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加空4:BUYSHORT(-07>HOLDING0>-11 AND (BSELL+B1*17)<-B1*19 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加空5:BUYSHORT(-11>HOLDING0>-13 AND (BSELL+B1*19)<-B1*13 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加空6:BUYSHORT(-13>HOLDING0>-17 AND (BSELL+B1*13)<-B1*17 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加空7:BUYSHORT(-17>HOLDING0>-19 AND (BSELL+B1*17)<-B1*19 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加空8:BUYSHORT(-19>HOLDING0>-23 AND (BSELL+B1*19)<-B1*23 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加空9:BUYSHORT(-23>HOLDING0>-29 AND (BSELL+B1*23)<-B1*29 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
{==============================================================================}
{
JK:=#DD-LINK.KPD()#;
加空0:BUYSHORT(JK=1 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
{==============================================================================}
{
控平空0:SELLSHORT(IF( HOLDING0<-HMAX/3,1,0) AND FILTER((BSELL>B1*0),ENTERBARS) AND X1,HOLDING0/H3,THISCLOSE),NOAXIS,LINETHICK0;
控平空1:SELLSHORT(IF( HOLDING0<-HMAX,2,0) AND FILTER((BSELL>B1*0),ENTERBARS) AND X1,HOLDING0/H3,THISCLOSE),NOAXIS,LINETHICK0;

{=========================================================================================}

//开盘0:BUYSHORT( HOLDING0=0 AND (D2+D3)=D2+1,H1,THISCLOSE),NOAXIS,LINETHICK0;
//收盘清仓0:SELLSHORT((D2-D3)=1 ,HOLDING0,THISCLOSE),NOAXIS,LINETHICK0;

//收盘清仓:SELLSHORT(SPJY ,HOLDING0,THISCLOSE),NOAXIS,LINETHICK0;

{==============================================================================}









{============================================================================}
//开盘全平:SELL((D2+D3)=D2+1,HOLDING,MARKETR),NOAXIS,LINETHICK0;
//开多:BUY(X1 AND A6,1,MARKETR),NOAXIS,LINETHICK0;
//加多:BUY(B1<0 AND A6,1,MARKETR),NOAXIS,LINETHICK0;
//控平多:SELL(B1>=5,HOLDING/2,MARKETR),NOAXIS,LINETHICK0;
//收盘清仓:SELL((D2-D3)<=1 ,HOLDING,MARKETR),NOAXIS,LINETHICK0;
{=============================================================================}
//开盘全平:SELL((D2+D3)=D2+1,HOLDING,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//开多:BUY(X1 AND A6,1,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//加多:BUY(B1<0 AND A6,1,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//控平多:SELL(B1>=5,HOLDING/2,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//收盘清仓:SELL((D2-D3)<=1 ,HOLDING,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
{=============================================================================}



补充内容 (2025-2-3 18:00):

//+++++++++++++++++++DD-LINK+++++++++++++++++++++++++++

//WARNING_DISABLE:9;
{===========================================================================================}
INPUT:T0(3,2,240,1),BMIN(1,1,100,1),BMAX(40,1,100,1);
HOLDING0:=IF(HOLDING<>DAYHOLDING,DAYHOLDING,HOLDING);
AVGENTERPRICE0:=IF(AVGENTERPRICE<>AVGENTERPRICE,AVGENTERPRICE,AVGENTERPRICE);
{===========================================================================================}
{
TR0:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),NOAXIS;//,LINETHICK0;
ATR0:MA(TR0,14),NOAXIS;//,LINETHICK0;

TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)),NOAXIS;//,LINETHICK0;
ATR1:REF(MA(TR1,14),1),NOAXIS;//,LINETHICK0;
{===========================================================================================}
OPEND:="$OPEN#DAY";
CLOSED:="$CLOSE#DAY";
HIGHD:="$HIGH#DAY";
LOWD:="$LOW#DAY";
VOLD:="$VOL#DAY";

BZJ0:=ROUND( ( REF(CLOSED,0) * MULTIPLIER * (TACCOUNT(41)+TACCOUNT(42))/2 ) ),NOAXIS,LINETHICK0;
FY0:=OPENPROFIT,NOAXIS;//,LINETHICK0;
保0:BZJ0,NOAXIS,LINETHICK0;
浮0:FY0,NOAXIS,LINETHICK0;

ZCK0:=ROUND( ( (( CASH(0)+CASH(1) )/2) * (BMIN/100) ) / BZJ0 ),NOAXIS,LINETHICK0;
ZCK1:=ROUND( ( (( CASH(0)+CASH(1) )/2) * (BMAX/100) ) / BZJ0 ),NOAXIS,LINETHICK0;
基:ZCK0,NOAXIS,LINETHICK0;
极:ZCK1,NOAXIS,LINETHICK0;

ZCB0:=( (CASH(0)+CASH(1))/2 )/(ASSET),NOAXIS,LINETHICK0;
比:=ZCB0,NOAXIS,LINETHICK0;

JYF0:=GEGCHARGE('',REF(CLOSED,0),1,0)*2,NOAXIS,LINETHICK0;
费:JYF0,NOAXIS,LINETHICK0;

MMC0:=( (DYNAINFO(34)-DYNAINFO(28)) )*MULTIPLIER,NOAXIS,LINETHICK0;
差:MMC0,NOAXIS,LINETHICK0;

ZXBD:=DYNAINFO(208)*MULTIPLIER,NOAXIS,LINETHICK0;
//XS:( IF(JYF>=MMC,JYF,MMC)-IF(MMC>=JYF,JYF,MMC) )/IF(JYF>=MMC,JYF,MMC),NOAXIS,LINETHICK0;
//DC:(1+ROUND(IF(XS<=1,1,XS)))*( (DYNAINFO(34)-DYNAINFO(28)) ),NOAXIS,LINETHICK0;

{===========================================================================================}
仓:HOLDING0,NOAXIS,LINETHICK0;
资:ASSET,NOAXIS,LINETHICK1;
金:CASH(0),NOAXIS,LINETHICK0;
净:NETPROFIT,NOAXIS,COLORYELLOW,LINETHICK0;
浮:OPENPROFIT,NOAXIS,LINETHICK0;
幅:OPENPROFITPER,NOAXIS,LINETHICK0;
撤:MAXDRAWDOWN,NOAXIS,LINETHICK0;
幅0:MAXDRAWDOWNPCT,NOAXIS,LINETHICK0;
亏:GROSSLOSS,NOAXIS,LINETHICK0;
盈:BESTTRADE,NOAXIS,LINETHICK0;
回:ANNUALRETURNRATER,NOAXIS,LINETHICK0;
年:ANNUALRETURNRATE,NOAXIS,LINETHICK0;
风:=PROFITRISKRATIO,NOAXIS,LINETHICK0;
次:=TOTALDAYTRADE,NOAXIS,LINETHICK0;
{++++++++++++++++++++++++++++++++++}
HMIN:=ZCK0;
HMAX:=ZCK1;
H1:=HMIN;
H2:=H1*2;
H3:=H1*3;
{=============================================================================}
ZQ1:=IF(DATATYPE=1,1,0);
ZQ3:=IF(DATATYPE=17,3,0);
ZQ5:=IF(DATATYPE=2,5,0);
ZQ10:=IF(DATATYPE=18,10,0);
ZQ15:=IF(DATATYPE=3,15,0);
ZQ30:=IF(DATATYPE=4,30,0);
ZQ60:=IF(DATATYPE=5,60,0);
ZQF:=IF(DATATYPE=13,DATATYPEMORE(2),0);
ZQH:=IF(DATATYPE=11,DATATYPEMORE(1)*60,0);
ZQ:=ZQ1+ZQ3+ZQ5+ZQ10+ZQ15+ZQ30+ZQ60+ZQF+ZQH,NOAXIS;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1,NOAXIS;
JY:=IF(HIGH+LOW-OPEN-CLOSE=0,0,1),NOAXIS;
TK:=TIME>OPENTIME(1) AND TIME<CLOSETIME(0)-10*100,NOAXIS;
TS:=TIME>=CLOSETIME(0)-10*100,NOAXIS;
F:="ZQ";
OPENMIN1:="$OPEN#MINF";
OPENDAY:="$OPEN#DAY";
OPENSTART:=IF(OPENMIN1=OPENDAY,1,0);
OST:=FILTER(OPENSTART,CYC);
KPJY:=HOLDING0=0 AND OST>=1 AND TK>=1 AND JY=1 AND CYC>=1;
SPJY:= TS=1;
{====================================================================================================}
//收盘:SELL(SPJY,HOLDING0,THISCLOSE);{CLOSE}
//开盘:BUY(KPJY,HMIN,THISCLOSE);{OPEN}
//SELLSHORT(SPJY,DAYHOLDING,THISCLOSE);{CLOSE}
//BUYSHORT(KPJY,1,THISCLOSE);{OPEN}
{============================================================================================}
//INPUT:N(1,1,100,1);
D:=T0;//10;//RAND(9)+5,NOAXIS,LINETHICK0;
隔:=D,NOAXIS,LINETHICK0;
D1:=IF(D<=2,2,D),NOAXIS,LINETHICK0;
D2:=RET(OPENMINUTES(CURRENTTIME),1),NOAXIS,LINETHICK0;
D3:=RET(OPENMINUTES(TIME),1),NOAXIS,LINETHICK0;
日:=D2,NOAXIS;//,LINETHICK0;
分:=D3,NOAXIS;//,LINETHICK0;
{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
X0:=IF(HIGH+LOW-OPEN-CLOSE=0,0,1),NOAXIS,LINETHICK0;
X1:=REF(X0,1),NOAXIS,LINETHICK0;
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
A1:=OPENMINUTES(TIME)/D,NOAXIS,LINETHICK0;
A2:=INTPART(A1),NOAXIS,LINETHICK0;
A3:=FRACPART(A1),NOAXIS,LINETHICK0;
A4:=(A2/A3),NOAXIS,LINETHICK0;
A5:=(A2-D),NOAXIS,LINETHICK0;
A6:=IF((A4-A5)=D,1,0),NOAXIS,LINETHICK0;
{===========================================================================+}
BBUY:=OPEN-IF(AVGENTERPRICE0=0,OPEN,AVGENTERPRICE0),NOAXIS;
本 :=BBUY,NOAXIS,COLORBLUE;//,LINETHICK0;
本0:IF(AVGENTERPRICE=0,OPEN,AVGENTERPRICE),COLORRED;//,NOAXIS;//,LINETHICK0;
{============================================================}
B0:=1*(DYNAINFO(34)-DYNAINFO(28)),NOAXIS,LINETHICK0;
B1:=IF(B0<=0,MINDIFF,B0),NOAXIS,LINETHICK0;
差:=B1,NOAXIS;//,LINETHICK0;

{++++++++++++++++++++++++++++++++++++++}
{
FY1:FY0/BZJ0/1,NOAXIS;//,LINETHICK0;
FY2:FY0/BZJ0/2,NOAXIS;//,LINETHICK0;
FY3:FY0/BZJ0/3,NOAXIS;//,LINETHICK0;
FY4:FY0/BZJ0/4,NOAXIS;//,LINETHICK0;
FY5:FY0/BZJ0/5,NOAXIS;//,LINETHICK0;
FY6:FY0/BZJ0/6,NOAXIS;//,LINETHICK0;
//   FILTER((FY0>BZJ0),ENTERBARS)

{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

KPD:=01 AND BBUY>B1*7 AND X1;
控平多:SELL(KPD ,HOLDING0/H3,THISCLOSE),NOAXIS,LINETHICK0;
//控平多:SELL( HOLDING0>0 AND FY0>=BZJ0 AND X1,(HOLDING0)/H3,THISCLOSE),NOAXIS,LINETHICK0;
{===========================================================================}
//开盘:SELL((D2+D3)=D2+1,HOLDING,MARKETR),NOAXIS,LINETHICK0;
随机开多:BUY(  HOLDING0=0 AND X1 AND A6,BMIN,THISCLOSE),NOAXIS,LINETHICK0;
{===========================================================================}
控加多0:BUY(01<HOLDING0<02 AND (BBUY+B1*05)<-B1*07 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加多1:BUY(02<HOLDING0<03 AND (BBUY+B1*07)<-B1*11 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加多2:BUY(03<HOLDING0<05 AND (BBUY+B1*11)<-B1*13 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加多3:BUY(05<HOLDING0<07 AND (BBUY+B1*13)<-B1*17 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加多4:BUY(07<HOLDING0<11 AND (BBUY+B1*17)<-B1*19 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加多5:BUY(11<HOLDING0<13 AND (BBUY+B1*19)<-B1*23 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加多6:BUY(13<HOLDING0<17 AND (BBUY+B1*23)<-B1*29 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
控加多7:BUY(17<HOLDING0<19 AND (BBUY+B1*29)<-B1*31 AND X1 AND A6,H3,THISCLOSE),NOAXIS,LINETHICK0;
控加多8:BUY(19<HOLDING0<23 AND (BBUY+B1*31)<-B1*37 AND X1 AND A6,H1,THISCLOSE),NOAXIS,LINETHICK0;
控加多9:BUY(23<HOLDING0<29 AND (BBUY+B1*37)<-B1*41 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
{===========================================================================}
{
JD:=#KK-LINK.KPK(1)#;
加多0:BUY(JD=1 AND X1 AND A6,H2,THISCLOSE),NOAXIS,LINETHICK0;
{===========================================================================}
{
控平多0:SELL(IF( HOLDING0>HMAX/3,1,0) AND FILTER((BBUY>B1*0),ENTERBARS) AND X1,HOLDING0/H2,THISCLOSE),NOAXIS,LINETHICK0;
控平多1:SELL(IF( HOLDING0>HMAX/2,1,0) AND FILTER((BBUY>B1*0),ENTERBARS) AND X1,HOLDING0/H2,THISCLOSE),NOAXIS,LINETHICK0;
//控平多3:SELL(IF( HOLDING0>HMAX/1,1,0) AND FILTER((BBUY>B1*0),ENTERBARS) AND X1,HOLDING0/H2,THISCLOSE),NOAXIS,LINETHICK0;

{=============================================================================}


{===============================================================================}
//开盘0:SELL((D2+D3)=D2+1,HOLDING,MARKETR),NOAXIS,LINETHICK0;
//收盘清仓0:SELL( (D2-D3)=1 ,HOLDING0,THISCLOSE),NOAXIS,LINETHICK0;

//收盘清仓:SELL( SPJY ,HOLDING0,THISCLOSE),NOAXIS,LINETHICK0;
{======================================================================================}











{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
//开盘全平:SELL((D2+D3)=D2+1,HOLDING,MARKETR),NOAXIS,LINETHICK0;
//开多:BUY(X1 AND A6,1,MARKETR),NOAXIS,LINETHICK0;
//加多:BUY(B1<0 AND A6,1,MARKETR),NOAXIS,LINETHICK0;
//控平多:SELL(B1>=5,HOLDING/2,MARKETR),NOAXIS,LINETHICK0;
//收盘清仓:SELL((D2-D3)<=1 ,HOLDING,MARKETR),NOAXIS,LINETHICK0;
{============================================================================}

{===========================================================================}
//开盘全平:SELL((D2+D3)=D2+1,HOLDING,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//开多:BUY(X1 AND A6,1,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//加多:BUY(B1<0 AND A6,1,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//控平多:SELL(B1>=5,HOLDING/2,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
//收盘清仓:SELL((D2-D3)<=1 ,HOLDING,THISCLOSE),ORDERQUEUE,NOAXIS,LINETHICK0;
{============================================================================}


//DATAPERIAD
//BUY(X1 AND OPENMINUTES(TIME)=0,1,THISCLOSE);
{
//SELL(X AND ENTERBARS=2,0,THISCLOSE),NOAXIS,LINETHICK0;
//固定止损部分************************

//止盈
IF OPEN-AVGENTERPRICE>100*MINDIFF THEN BEGIN
SELL(1,HOLDING,THISCLOSE);
END

//止损
IF AVGENTERPRICE-OPEN>10*MINDIFF THEN BEGIN
SELL(1,HOLDING,THISCLOSE);
END
//BUYSHORT(A6,1,THISCLOSE),NOAXIS,LINETHICK0;
//SELLSHORT(ENTERBARS=9,0,THISCLOSE),NOAXIS,LINETHICK0;
}

//A:(TIMETOT0(DYNAINFO(207)+D)-REF(TIME0,1)),NOAXIS,LINETHICK0;

//CD1:(HOLDING=0) OR ENTERBARS=5,NOAXIS,LINETHICK0;
//CD2:(HOLDING=0) OR EXITBARS=5,NOAXIS,LINETHICK0;

//BUY(CD1,1,THISCLOSE);
//SELL(CD2,1,THISCLOSE);
//BUYSHORT(CD,1,MARKET);

//移动止损部分************************
//求出持仓以来的最高价或最低价,通过与当前价做比较,判断资金回落的幅度
//DTYDZS:=(HHV(H,ENTERBARS)-CLOSE)/AVGENTERPRICE>=0.01;
//KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AVGENTERPRICE>=0.01;
//SELL(DTYDZS,0,THISCLOSE);
//SELLSHORT(KTYDZS,0,THISCLOSE);

//PJ:IF(AVGENTERPRICE=0,OPEN,AVGENTERPRICE)-OPEN,NOAXIS;
//PJ:AVGENTERPRICE,NOAXIS;

{
KD:=;          //开多条件
PD:=;          //平多条件
KK:=;          //开空条件
PK:=;          //平空条件


平空:SELLSHORT(PK,1,THISCLOSE);                  //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE);          //开多信号
平多:SELL(PD,1,THISCLOSE);                       //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);     //开空信号

}
{
信号语句排列规则——先平后开
“费率设置”按钮——用于合理设置模型“费率”,以便在图形上正确输出如下帐户信息:

持仓:HOLDING,LINETHICK0;
资产:ASSET,NOAXIS;
可用现金:CASH(0),LINETHICK0;

您可以在查看菜单->交易系统模板 中设置自己需要的模板
}
回复

使用道具 举报

3

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-2-6 10:24 | 显示全部楼层


这是一个使用EasyLanguage编写的交易策略代码片段。该策略涉及多个方面,包括开仓、平仓、加仓等操作,并且包含了一些自定义的指标和条件判断。以下是对这段代码的简要分析:

1. **变量和指标**:
   - `KP` 和 `KD` 可能是自定义的指标或函数,用于判断市场趋势或过滤信号。
   - `B1` 可能是一个布尔变量,用于在特定条件下触发交易操作。

2. **开仓和平仓**:
   - **开盘全平**:在特定的时间点(由 `D2 + D3 = D2 + 1` 决定)平掉所有头寸。
   - **开多**:当满足条件 `X1 AND A6` 时,开一个长仓。
   - **加多**:如果市场处于特定状态(由 `B1 < 0 AND A6` 决定),则增加持仓量。
   - **控平多**:当 `B1 >= 5` 时,平掉一半的头寸。

3. **时间条件**:
   - 使用了 `D2` 和 `D3` 来判断特定的时间点,例如开盘或收盘时触发操作。

4. **其他功能**:
   - 包含了一些注释掉的代码片段,这可能意味着策略在开发过程中进行了多次调整。
   - 使用了 `ORDERQUEUE` 参数来控制订单队列的执行方式。

### 建议和注意事项

1. **回测和验证**:确保该策略在历史数据上进行过充分的回测,并且表现稳定。
2. **风险管理**:检查是否有适当的止损和止盈机制,以控制潜在的亏损。
3. **优化参数**:某些参数(如 `B1 >= 5`)可能需要根据不同的市场条件进行调整。
4. **代码简洁性**:由于代码中包含了大量注释掉的部分,建议清理代码以提高可读性和维护性。

如果您有任何具体问题或需要进一步的解释,请随时提问!
回复

使用道具 举报

3

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-2-6 10:36 | 显示全部楼层
<think>
嗯,我看到用户上传了一个EasyLanguage代码片段,看起来像是期货或者股票的自动交易策略。里面有很多注释和不同的部分,比如开仓、平仓、止损、移动止损等等。

首先,我应该理解这段代码的大致结构。开始的时候,有一些变量定义,比如KD、PD、KK、PK,这可能分别代表开多、平多、开空、平空的条件。然后有一些信号语句,按照“先平后开”的顺序排列,这样可以避免同时开仓和平仓导致的问题。

接下来,我注意到代码中有很多注释部分,有些是关于固定止损和移动止损的。比如,止盈条件如果开仓价与平均入场价格的差异超过一定范围,就会平仓。同样,止损也有类似的机制。这说明用户非常重视风险管理。

还有一个部分是在设置交易时段,比如在特定时间开仓或者平仓,这可能是为了避开市场的不活跃时段或者捕捉某些交易机会。此外,有一些关于订单队列和执行方式的设置,使用THISCLOSE表示以当前收盘价执行。

我还看到用户提到了“ORDERQUEUE”,这可能意味着他们希望在多个信号发生时,按照顺序执行,而不是同时执行。这对于避免滑点和保证交易准确性很重要。

有些地方看起来像是模板注释,指导用户如何设置模型的费率,以及如何查看持仓、资产和可用现金等信息。这些都是构建一个完整交易系统的必要部分。

总体来看,这段代码似乎是一个基础的趋势跟踪策略,结合了

补充内容 (2025-2-6 10:39):
总体来看,这段代码似乎是一个基础的趋势跟踪策略,结合了多种风险控制机制,比如止损、止盈和移动止损,以限制潜在的损失。用户可能是在尝试构建一个稳健的自动交易系统,同时也在学习如何优化和调整这些参数。

接下来,我应该考虑如何帮助用户进一步分析或优化这段代码。也许他们需要解释某些函数的用法,或者想了解如何添加更多的条件来改善策略表现。此外,还可以建议他们如何进行回测,以及如何根据回测结果调整策略参数。

另外,我还注意到有些部分是注释掉的,这可能意味着用户正在尝试不同的方法,或者还在开发过程中。因此,在回答时应该考虑这些可能性,并给出适当的建议,比如代码结构、潜在的问题...

model: Ollama (deepseek-r1:70b), time: 10:39
回复

使用道具 举报

3

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-2-6 10:50 | 显示全部楼层


您提供的是一个EasyLanguage编程语言的交易策略片段,用于自动化交易系统。这段代码包含了多个部分,包括开仓、平仓、止损和移动止损等功能。以下是对这段代码的分步解释:

1. **变量定义**:
   - `KD`、`PD`、`KK` 和 `PK` 分别代表开多、平多、开空和平空的条件。

2. **信号语句排列规则**:
   - 交易系统中,信号需要按照“先平后开”的顺序执行,以避免同时触发多个信号导致的问题。例如,先执行平仓,再执行开仓。

3. **固定止损和止盈机制**:
   - **止盈**:如果开仓价高于平均入场价格超过一定比例(这里是100*MINDIFF),则全部平仓。
   - **止损**:如果平均入场价格低于开仓价超过一定比例(这里是10*MINDIFF),则全部平仓。

4. **移动止损机制**:
   - 计算持仓以来的最高价和最低价,与当前价格比较,判断价格回落幅度是否达到阈值(这里是1%),如果达到,则平仓。

5. **订单执行设置**:
   - 使用 `ORDERQUEUE` 确保多个信号按顺序执行,而不是同时执行。
   - 使用 `THISCLOSE` 指定以当前收盘价执行交易。

6. **持仓和资产信息显示**:
   - 显示持仓量、资产和可用现金,便于监控交易系统的状态。

7. **其他功能**:
   - 包括开多、平多、开空、平空等基本交易操作。
   - 使用 `BUY` 和 `SELL` 函数分别执行买入和卖出操作,使用 `BUYSHORT` 和 `SELLSHORT` 执行做空和平空操作。

8. **注释部分**:
   - 提供了一些可能的功能模板,如固定止损、移动止损等,可以根据需要选择是否启用。

### 总结
这段代码构建了一个完整的自动交易系统,涵盖了开仓、平仓、风险管理等多个方面。通过合理的信号排列和风险控制措施,能够有效地管理交易风险。如果您有具体的问题或需要进一步优化,可以提供更多细节,我将帮助您分析和改进策略。
回复

使用道具 举报

3

主题

66

帖子

66

积分

等级: 免费版

注册:
2021-7-16
曾用名:
 楼主| 发表于 2025-2-11 16:20 | 显示全部楼层
20250211

DD-LINK KK-LINK.zip

62.01 KB, 下载次数: 200

回复

使用道具 举报

5

主题

25

帖子

25

积分

Rank: 1

等级: 新手上路

注册:
2021-6-29
曾用名:
发表于 2025-2-18 11:06 | 显示全部楼层
看不懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-3-14 04:39 , Processed in 0.216959 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表