自编模型没有一个信号出现 (文华财经WH8赢智V8.2)

投资者咨询:自编模型没有一个信号出现 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-2 22:53
 我编制了一个自动交易代码,我试用了几天,没有一个信号出现,我找不出原因所在,请朋友们帮助我找找,并指出解决问题的办法。谢谢!!!!图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

DIFF : (EMA(CLOSE,SHORT) - EMA(CLOSE,LONG))*2,LINETHICK2;//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA  : EMA(DIFF,M),LINETHICK2;//DIFF的M个周期指数平滑移动平均
MACD:2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
QHC:=(MACD-REF(MACD,1))*B,COLORSTICK,COLORMAGENTA;
STICK(QHC<0,0,QHC,1,COLORCYAN,0);
STICK(QHC>0,0,QHC,1,COLORRED,0);
MTM:=CLOSE-REF(CLOSE,6),COLORGREEN,LINETHICK2;
MTMMA:=MA(MTM,6),COLORMAGENTA,LINETHICK2;
N:=BARSLAST(DATE<>REF(DATE,1))+1;
AA:=VALUEWHEN(N=1,O);//一分钟
BB:=VALUEWHEN(N=2,O);//三分钟
CC:=VALUEWHEN(N=3,O);//五分钟
DD:=VALUEWHEN(N=4,O);//十分钟
EE:=VALUEWHEN(N=5,O);//十五分钟
FF:=VALUEWHEN(N=6,O);//三十分钟
GG:=VALUEWHEN(N=7,O);//一小时
HH:=VALUEWHEN(N=8,O);//一日
IFELSE(PERIOD=1,AA,NULL);//取当天一分钟周期的开盘价。
KYZJ^^MONEY;
KCSS1:=(MONEY*0.003)/(C*MARGIN*UNIT+FEE); //模组子账户权益的入金比例(RJBL)可以开仓的手数(KCSS)(此写法适用于按固定手数收取手续费的合约)
KCSS2:=(MONEY*0.007)/(C*MARGIN*UNIT+FEE);
KCSS3:=(MONEY*0.01)/(C*MARGIN*UNIT+FEE);
KCSS4:=(MONEY*0.03)/(C*MARGIN*UNIT+FEE);
KCSS5:=(MONEY*0.05)/(C*MARGIN*UNIT+FEE);
KCSS6:=(MONEY*0.1)/(C*MARGIN*UNIT+FEE);
KCSS7:=(MONEY*0.3)/(C*MARGIN*UNIT+FEE);
KCSS8:=(MONEY*0.5)/(C*MARGIN*UNIT+FEE);
IFELSE(PERIOD=1,AA,NULL) AND MACD>0 AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS1);
IFELSE(PERIOD=1,AA,NULL) AND MACD<0 AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS1);
IFELSE(PERIOD=2,BB,NULL) AND MACD>0 AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS2);
IFELSE(PERIOD=2,BB,NULL) AND MACD<0 AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS2);
IFELSE(PERIOD=3,CC,NULL) AND MACD>0 AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS3);
IFELSE(PERIOD=3,CC,NULL) AND MACD<0 AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS3);
IFELSE(PERIOD=4,DD,NULL) AND MACD>0 AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS4);
IFELSE(PERIOD=4,DD,NULL) AND MACD<0 AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS4);
IFELSE(PERIOD=5,EE,NULL) AND MACD>0 AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS5);
IFELSE(PERIOD=5,EE,NULL) AND MACD<0 AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS5);
IFELSE(PERIOD=6,FF,NULL) AND MACD>0 AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS6);
IFELSE(PERIOD=6,FF,NULL) AND MACD<0 AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS6);
IFELSE(PERIOD=7,GG,NULL) AND MACD>0 AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS7);
IFELSE(PERIOD=7,GG,NULL) AND MACD<0 AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS7);
IFELSE(PERIOD=8,HH,NULL) AND MACD>0 AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS8);
IFELSE(PERIOD=8,HH,NULL) AND MACD<0 AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS8);
CLOSEMINUTE<=1,CLOSEOUT;//收盘前1分钟,清仓
SETMOVEOPIPRICE(ACTIVE_ORDER);//主力合约切换时,以对价方式进行移仓
YSXJ^^C*MARGIN*UNIT+FEE;
 
技术人员回复
日期:2018-7-3 8:10

因为源码中开平仓部分第一个条件不复核逻辑

 

IFELSE(PERIOD=1,AA,NULL)  这一部分返回的是条件不是一个判断条件

 

尝试改成如这种判断的格式 : IFELSE(PERIOD=1,C>AA,NULL) AND

 

投资者咨询:自编模型没有一个信号出现 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-2 22:53
 朋友们,还得帮助我哟,我修改后,还是没出信号,回测,也是没交易信号,我找不到问题到底出在那儿的了!!!哎.....



DIFF:(EMA(CLOSE,SHORT) - EMA(CLOSE,LONG))*2,LINETHICK2;//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA:EMA(DIFF,M),LINETHICK2;//DIFF的M个周期指数平滑移动平均
MACD:2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线
QHC:(MACD-REF(MACD,1))*B,COLORSTICK,COLORMAGENTA;
STICK(QHC<0,0,QHC,3,COLORCYAN,0);
STICK(QHC>0,0,QHC,3,COLORRED,0);
N:=BARSLAST(DATE<>REF(DATE,1))+1;
AA:=VALUEWHEN(N=1,O);//一分钟
AA1:=IFELSE(PERIOD=1,AA,NULL);//取当天一分钟周期的开盘价。
AA2:=VALUEWHEN(HIGH>REF(HHV(HIGH,5),1),HIGH);//表示当前最高价大于前五个周期最高价的最大值时返回当前最高价
AA3:=VALUEWHEN(LOW<REF(LLV(LOW,5),1),LOW);//表示当前最低价小于前五个周期最低价的最小值时返回当前最低价
KYZJ:=MONEY;
YSXJ:=C*MARGIN*UNIT+FEE;
KCSS1:=INTPART((MONEY*0.003)/(C*MARGIN*UNIT+FEE)); //模组子账户权益的入金比例(RJBL)可以开仓的手数(KCSS)(此写法适用于按固定手数收取手续费的合约)
KCSS2:=INTPART((MONEY*0.007)/(C*MARGIN*UNIT+FEE));
KCSS3:=INTPART((MONEY*0.01)/(C*MARGIN*UNIT+FEE));
KCSS4:=INTPART((MONEY*0.03)/(C*MARGIN*UNIT+FEE));
KCSS5:=INTPART((MONEY*0.05)/(C*MARGIN*UNIT+FEE));
KCSS6:=INTPART((MONEY*0.1)/(C*MARGIN*UNIT+FEE));
KCSS7:=INTPART((MONEY*0.3)/(C*MARGIN*UNIT+FEE));
KCSS8:=INTPART((MONEY*0.5)/(C*MARGIN*UNIT+FEE));
C>IFELSE(PERIOD=1,AA2,NULL) AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS1);
IFELSE(PERIOD=1,C<AA3,NULL) AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS1);
IFELSE(PERIOD=2,C>AA2,NULL) AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS2);
IFELSE(PERIOD=2,C<AA3,NULL) AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS2);
IFELSE(PERIOD=3,C>AA2,NULL) AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS3);
IFELSE(PERIOD=3,C<AA3,NULL) AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS3);
IFELSE(PERIOD=4,C>AA2,NULL) AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS4);
IFELSE(PERIOD=4,C<AA3,NULL) AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS4);
IFELSE(PERIOD=5,C>AA2,NULL) AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS5);
IFELSE(PERIOD=5,C<AA3,NULL) AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS5);
IFELSE(PERIOD=6,C>AA2,NULL) AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS6);
IFELSE(PERIOD=6,C<AA3,NULL) AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS6);
IFELSE(PERIOD=7,C>AA2,NULL) AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS7);
IFELSE(PERIOD=7,C<AA3,NULL) AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS7);
IFELSE(PERIOD=8,C>AA2,NULL) AND QHC>0 AND CROSSUP(DIFF,DEA)&&PANZHENG=0,BK(KCSS8);
IFELSE(PERIOD=8,C<AA3,NULL) AND QHC<0 AND CROSSDOWN(DIFF,DEA)&&PANZHENG=0,SK(KCSS8);
CLOSEMINUTE<=1,CLOSEOUT;//收盘前1分钟,清仓
JGZ:=NEXTDELIVERYDAY;
SETMOVEOPIPRICE(ACTIVE_ORDER);//主力合约切换时,以对价方式进行移仓
技术人员回复
日期:2018-7-4 15:15

 3楼没有信号与您的编写思路有关,C>AA2于C<AA3永远都不会满足

 

这里您可以输出AA2 与 AA3,来比对一下,然后需要您调整交易思路来完善

 

添加输出语句:

 

AAA2:AA2;
AAA3:AA3;