ma1(close,30) , ma2 ( close, 60 )
ma1 下穿 ma2 的时候,做空, 现在持 10 手 空仓, 当利润大于100点 的时候,, 平 5 手 出来, 剩下 5 手,需要等到 ma1 上穿 ma2 的时候再平出来!
怎么可以实现这个思路
思路2 : 进场 条件同上, 利润大于100点,平仓 5 手出来, 剩下 5 手, 增加一个按利润回撤 50 % 作为平仓的触发 信号, 也就是说,利润回撤 50 % 或 出现 ma1 上穿 ma2 的时候, 就平 最后 5 手出来
麻烦老师帮忙编写一下,谢谢
ma1:ma(close,30);
ma2:ma(close,60);
if CROSS(ma2,ma1) then begin
BUYSHORT(1,10,MARKET);
end
IF AvGENTERPRICE-C>100*MINDIFF THEN BEGIN
SELLSHORT(1,HOLDING/2,MARKET);
END
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AvGENTERPRICE>=0.5;
if CROSS(ma1,ma2) or KTYDZS=1 then begin
SELLSHORT(KTYDZS,HOLDING,MARKET);
end
[此贴子已经被作者于2019/4/28 9:16:37编辑过]
老师,,可以严谨一些么,这个代码,平完第一次之后,下个K接着继续平掉第二次,,,等不到 第二步了
我之前试过也是这个问题,才发帖问能不能有好的办法
用全局变量把两个条件的之间做一个互斥处理。
VARIABLE:flag=0;
ma1:ma(close,30);
ma2:ma(close,60);
if CROSS(ma2,ma1) then begin
BUYSHORT(1,10,MARKET);
end
IF AvGENTERPRICE-C>100*MINDIFF and flag=0 THEN BEGIN
SELLSHORT(1,HOLDING/2,MARKET);
flag:=1;
END
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AvGENTERPRICE>=0.5 ;
if (CROSS(ma1,ma2) or KTYDZS=1) and flag=1 then begin
SELLSHORT(KTYDZS,HOLDING,MARKET);
flag:=0;
end