思路如下: 当收盘价大约MA10,大于MA60,平空开多仓4手,如果收盘价跌破M10,减仓2手,余下多单跌破MA60全部离场,并且收盘价小于MA10,MA60,开空, 谢谢老师。我写了一串老是反复开仓不知道哪里出问题了 |
Variable:a=0;
Variable:b=0;
MA10:MA(C,10);
MA60:MA(C,60);
Input:tq(3,1,60,1);
Con1:c>ma60 and c>ma10;
Con2:c<ma60 and c<ma10;
abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
if abb then begin
if con1 then begin
sellshort(holding<0, 0, market);
buy(1,4 ,market);
end
if con2 then begin
sell(holding>0, 0, MARKET);
buyshort(1 ,4,market);
end
if c<ma10 then begin sell (holding>0, 2, market);
a:=1;
end
if c<ma60 then begin sell(holding>0, 0, market);
end
if c>ma10 then begin sellshort (holding<0, 2, market);
b:=1;
end
if c>ma60 hen begin sellshort (holding<0, 0, market);
end
end
开仓条件都加上holding=0
比如
buyshort(1 ,4,market);
改成
buyshort(holding=0 ,4,market);
Variable:a=0;
Variable:b=0;
MA10:MA(C,10);
MA60:MA(C,60);
Input:tq(3,1,60,1);
Con1:c>ma60 and c>ma10;
Con2:c<ma60 and c<ma10;
abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
if abb then begin
if con1 then begin
sellshort(holding<0, 0, market);
if holding=0 then begin
buy(holding=0,4 ,market);
a:=0;
end
end
if con2 then begin
sell(holding>0, 0, MARKET);
if holding=0 then begin
buyshort(holding=0 ,4,market);
b:=0;
end
end
if c<ma10 and holding>0 and a=0 then begin
sell (holding>0, 2, market);
a:=1;
end
if c<ma60 and holding>0 then begin
sell(holding>0, 0, market);
end
if c>ma10 and holding<0 and b=0 then begin
sellshort (holding<0, 2, market);
b:=1;
end
if c>ma60 and holding<0 then begin
sellshort (holding<0, 0, market);
end
end