如题:请老师帮忙
买多条件:收盘价向上突破10日均线后,涨幅累计达2%后,收盘价买入
平多:收盘价向下突破10日均线后平仓(有多单的前提下)
卖空:收盘价向下突破10日均线后,跌幅累计达2%后,收盘价开仓卖出
平空:收盘价向上突破10日均线后平仓(有空单的前提下)
ma10:ma(close,10);
if close>ma10 and (c-ma10)/ma10>0.02 then buy();
if cross(ma10,close) and holding>0 then sell();
空头部分可以参考上面的方式修改完成。
这两天测试了这个程序,发现一个问题,第一次买多的确是按给的条件买了 ,但在平掉再买得时候,没达到条件也能买,如图:
正在处理请稍等
VARIABLE:n=1000000,m=0;
//n是金叉时的收盘价,初始值要比行情价大,否则(c-n)/n>=0.02在第一根k成立,造成第一根k就会满足开仓条件。
//m是死叉时的收盘价,初始值要比行情价小,否则(m-c)/m>=0.02在第一根k成立,造成第一根k就会满足开仓条件。
ma10:ma(close,10);
jc:cross(c,ma10);
sc: cross(ma10,c);
if jc then begin
sellshort(holding<0,1,marketr);
n:=c;
end
if (c-n)/n>=0.02 and holding=0 then begin
buy(1,1,limitr,c);
n:=1000000;
end
if sc then begin
sell(holding>0,1,marketr);
m:=c;
end
if (m-c)/m>=0.02 and holding=0 then begin
buyshort(1,1,limitr,c);
m:=0;
end