以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  帮我修改和完善下  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=170572)

--  作者:assddzz11
--  发布时间:2019/6/20 23:11:14
--  帮我修改和完善下
做多:MACD的DIFF在0轴上方  同时   KDJ形成金叉 做多单  
平多:MACD的DIFF下穿0轴     或者    KDJ形成死叉 平多单
做空:MACD的DIFF在0轴下方  同时   KDJ形成死叉 做多单
平多:MACD的DIFF上穿0轴     或者    KDJ形成金叉 平空单

//MACD 
DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  : EMA(DIFF,M);
MACD1 : 2*(DIFF-DEA), COLORSTICK;

//KDJ
RSV:=(CLOSE-LLV(LOW,3))/(HHV(HIGH,3)-LLV(LOW,3))*100;
K:SMA(RSV,3,1);
D:SMA(K,3,1);
J:3*K-2*D;

if CROSS( DIFF ,macd1  ) AND CROSS( J ,K) and holding=0 then begin
BUY(holding<0,3,market);
end   //开多

if CROSS( MACD1 ,DIFF ) OR CROSS( K,J) and holding>0 then begin
sell(holding>0,3,market);
end     //平多

if CROSS( MACD1,DIFF  ) AND CROSS( K ,J) and holding=0 then begin
BUYSHORT(holding<0,3,market);
end   //开空

if CROSS( DIFF ,MACD1 )  OR CROSS( J , K)  and holding>0 then begin
sellshort(holding>0,3,market);
end    //平空


--  作者:FireScript
--  发布时间:2019/6/21 9:49:30
--  
 1.你是要表述diff在0轴之上?
if CROSS( DIFF ,macd1  ) AND CROSS( J ,K) and holding=0 then begin
BUY(holding<0,3,market);
end   //开多
那这里应该是diff>0
2.
if CROSS( DIFF ,MACD1 )  OR CROSS( J , K)  and holding>0 then begin
sellshort(holding>0,3,market);
end    //平空

平空这里改下是holding<0


--  作者:assddzz11
--  发布时间:2019/6/21 10:47:32
--  
好的,谢谢,有什么问题我再咨询你