老师好
我单独做了一个系统来测试图表程序,发现一个问题,请指教:
这个使用公式测试系统回测后,图形不对,一开就平,不知道是哪里出了问题。
品种鸡蛋,1分钟或5分钟图表测试,后面附图。
zd:=ma(c,5)>ref(ma(c,5),1) and holding=0;//开多条件
zk:=ma(c,5)<ref(ma(c,5),1) and holding=0;//开空条件
BUY(holding=0 and zd and c>o and 090000<time<145500,1,limitr,c); //开多
kcwzl:=valuewhen(zd and ref(holding<=0,1) and holding>0,low);//开多单时的最低价
kdzsjg:kcwzl-3,COLORRED;//多单止损价格
kdzs:=C<kdzsjg ;//多单止损条件
sell(kdzs or c>kdzs+50 and holding>0,0,limitr,c);
信号和测评是一致的,k线图上的信号也是一开就平的,哪里不对了?
哪里不对了?是你自己代码错误
c>kdzs+50
kdzs这个逻辑判断,不是价格或者数值,得出的结果不是0就是1,
c>kdzs+50 相当于c>51,你看看白糖的价格,有不满足的情况吗?
还是有问题啊,我把代码改了,但还是有单子一开就平,这这个问题也没解决啊。
input:tq(10,3,60,1);
abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
zd:=ma(c,5)>ref(ma(c,5),1) and holding=0;//开多条件
zk:=ma(c,5)<ref(ma(c,5),1) and holding=0;//开空条件
BUY(holding=0 and zd and c>o and 090000<time<145500,1,limitr,c); //开多
kcwzl:=valuewhen(zd and ref(holding<=0,1) and holding>0,low);//开多单时的最低价
kdzsjg:kcwzl-3,COLORRED;//多单止损价格
kdzs:=C<kdzsjg ;//多单止损条件
sell(kdzs or c>kdzsjg+20 and holding>0,0,limitr,c);
kcwzl:=valuewhen(zd and ref(holding<=0,1) and holding>0,low);//开多单时的最低价
改成
kcwzl:=ref(low,enterbars);//开多单时的最低价
我改了,还是有点问题,请看附件:
1、9点半的那单还是被直接平了。
2、9点40那根为什么只是多1个点就平掉?也没到我止损止盈啊?
input:tq(10,3,60,1);
abb:=(time0-timetot0(dynainfo(207))<=tq) or not(islastbar);
zd:=ma(c,5)>ref(ma(c,5),1) and holding=0;//开多条件
zk:=ma(c,5)<ref(ma(c,5),1) and holding=0;//开空条件
BUY(holding=0 and zd and c>o ,1,limitr,c); //开多
kcwzl:=ref(low,enterbars);//开多单时的最低价
kdzsjg:kcwzl-3,COLORRED;//多单止损价格
kdzs:=C<kdzsjg ;//多单止损条件
sell(kdzs or c>kdzsjg+20 and holding>0,0,limitr,c);
因为条件满足了啊
你自己算算kdzs or c>kdzsjg+20是不是条件满足
具体点,你看看这根k线是不是 c>kdzsjg+20条件满足?
哦,这个是因为有滑点产生了,所以才是条件成立他执行,体现出来就是那个位置了。
谢谢。
有不明白的我再开新贴来问。