用“:=”定义的不会在图表上显示指标变量,用“:”定义的则是可以。
周期高点:REF(HHV(H,X1),1);
周期低点:REF(LLV(L,X2),1);
平空开多:=HIGH>=周期高点 and holding<=0,;
平多开空:=LOW<=周期低点 and holding>=0,;
if MA20>=REF(MA20,1)and 平空开多 and 周期高点>=REF(MA20,1) then
begin
buy(holding=0,100%,limitr,周期高点),IGNORECHECKPRICE;
end
if 平多开空 then begin sell(holding>0,0 ,limitr,周期低点);
end
下一组公式
X周期高点:REF(HHV(H,X),1);
y周期低点:REF(LLV(L,y),1);
//交易条件:
开多平空条件:=High>=X周期高点 and holding<=0,;
开空平多条件:=Low<=y周期低点 and holding>=0,;
//交易系统
平多:sell(开空平多条件 and holding>0,0,limitr,y周期低点),IGNORECHECKPRICE ;
开多: buy(开多平空条件 and holding=0 and MA20>=REF(MA20,1)and X周期高点>=REF(MA20,1), 100%,limitr,X周期高点),IGNORECHECKPRICE;
请问老师上面两个公式有何差别,看着差不多,优化结果有很大差别。
没啥大区别。唯一区别就是开平语句顺序不一样。你调整下看下呢。然后在看下回测优化时候是不是设置有啥不一样。
确实与语句顺序有关,请教老师哪一种语句顺序最好?
周期高点:REF(HHV(H,X1),1);
周期低点:REF(LLV(L,X2),1);
平空开多:=HIGH>=周期高点;
平多开空:=LOW<=周期低点;
开多: buy(平空开多 and holding=0 and MA20>=REF(MA20,1)and 周期高点>=REF(MA20,1), 100%,limitr,周期高点),IGNORECHECKPRICE;
平多:sell(平多开空 and holding>0,0,limitr,周期低点),IGNORECHECKPRICE ;
这种语句顺序对吗?只做股票把开多语句放在平多上面对吗?
请问老师,为什么开多与平多语句顺序不一样,优化结果有很大差别呢?
有时候同一个K上开平条件都满足的话,这个顺序就有影响的了。如果某个K高点高,低点点 就可能满足你这里的条件了。