以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请老师修改公式  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=150114)

--  作者:yzhybw
--  发布时间:2017/4/6 12:41:33
--  请老师修改公式

//策略名:MACD背离模型

//类型:股票t+0

//使用市场:个股

//修订时间:20170401

 

DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26); 
DEA:=EMA(DIFF,9); 
MACD:=2*(DIFF-DEA),COLORSTICK; N:=BARSLAST(CROSS(DIFF,DEA))+1; 
N1:=BARSLAST(CROSS(DEA,DIFF))+1; 
DIFF1:=REF(REF(DIFF,N-1),1);
DIFF2:=REF(REF(DIFF,N1-1),1); 
C1:=REF(REF(C,N-1),1); 
C2:=REF(REF(C,N1-1),1); 
DBL1:=DIFF>DIFF1 AND CROSS(DIFF,DEA) AND C<C1; //底背离 
DBL:=DIFF<DIFF2 AND  CROSS(DEA,DIFF) AND C>C2; //顶背离 
TBUY(DBL1 AND TNUMLOSSTRADE<2,100,MKT);
TSELL(DBL AND TBUYHOLDINGEX(\'\',\'\',2)>0,100,MKT);
TSELL(EVERY(C<=REF(C,1),5),0,MKT);


请问老师本策略加载后没信号,请老师看看,如何修改?
[此贴子已经被作者于2017/4/6 12:41:54编辑过]

--  作者:wenarm
--  发布时间:2017/4/6 12:53:35
--  
这个是后台策略,通过后台回测是有信号出现只是比较少。
--  作者:yzhybw
--  发布时间:2017/4/6 12:56:30
--  
能把它改成图表程序化策略吗?请老师辛苦一下。
--  作者:wenarm
--  发布时间:2017/4/6 13:04:56
--  
DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=2*(DIFF-DEA),COLORSTICK; N:=BARSLAST(CROSS(DIFF,DEA))+1;
N1:=BARSLAST(CROSS(DEA,DIFF))+1;
DIFF1:=REF(REF(DIFF,N-1),1);
DIFF2:=REF(REF(DIFF,N1-1),1);
C1:=REF(REF(C,N-1),1);
C2:=REF(REF(C,N1-1),1);
DBL1:=DIFF>DIFF1 AND CROSS(DIFF,DEA) AND C<C1; //底背离
DBL:=DIFF<DIFF2 AND  CROSS(DEA,DIFF) AND C>C2; //顶背离
BUY(DBL1 AND NUMLOSSTRADE<2,100,MARKET);
SELL(DBL AND HOLDING>0,100,MARKET);
SELL(EVERY(C<=REF(C,1),5),0,MARKET);

--  作者:qq代人发帖
--  发布时间:2017/4/6 13:06:55
--  

//策略名:MACD背离模型
//类型:股票t+0
//使用市场:个股
//修订时间:20170401

DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=2*(DIFF-DEA),COLORSTICK; N:=BARSLAST(CROSS(DIFF,DEA))+1;
N1:=BARSLAST(CROSS(DEA,DIFF))+1;
DIFF1:=REF(REF(DIFF,N-1),1);
DIFF2:=REF(REF(DIFF,N1-1),1);
C1:=REF(REF(C,N-1),1);
C2:=REF(REF(C,N1-1),1);
DBL1:=DIFF>DIFF1 AND CROSS(DIFF,DEA) AND C<C1; //底背离
DBL:=DIFF<DIFF2 AND  CROSS(DEA,DIFF) AND C>C2; //顶背离
BUY(DBL1 AND NUMLOSSTRADE<2,100,MARKETR);
SELL(DBL AND HOLDING>0,100,MARKETR);
SELL(EVERY(C<=REF(C,1),5),0,MARKETR);