我的系统是高价穿越开盘价加波动值的系统,但是由于之前的波动值很小,造成了当前k线内先穿越下轨,又穿越上轨,再穿越下轨的问题,这个时候的信号反而没有判断出第三次向下穿越,
并且隔根k线也满足低价穿越下轨的条件,但是信号也没有出现,而是隔了两天才向下穿越下轨的时候才出现做空信号。
以下是我的控制语句,按理不应该出现这种问题啊
请大家帮忙看看
if holding=0 then begin
if A1 then
BUY(A1 ,1,limitr,A3+2*mindiff);
end
if holding=0 then begin
if A2 then
buyshort(A2,1,limitr,A4-2*mindiff);
end
if holding>0 then begin
if A2 then
sell(A2,holding,limitr,A4-2*mindiff);
buyshort(A2,1,limitr,A4-3*mindiff);
end
if holding<0 then begin
if A1 then
sellshort(A1,holding,limitr,A3+2*mindiff);
buy(A1,1,limitr,A3+3*mindiff);
end//
1.同一根K线上,同种信号只会发委托一次.如:一根K线上只会开多一次
2.推荐:开多和开空的条件最好在同一根K线上是没有交集的.
3.注意信号消失的情况.
楼主可以用以下方法把你的条件输出到图表上看看条件是否满足
A:CON,LINETHICK0;
更多调试技巧请参考
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=1246&page=1&star=1
if holding=0 then begin
if A2 then
buyshort(A2,1,limitr,A4-2*mindiff);
end
这两句相当于
if holding=0 and A1then BUY(A1 ,1,limitr,A3+2*mindiff);
if holding=0 and A1then buyshort(A2,1,limitr,A4-2*mindiff);
如果A1和A2有交集,就会在一根K线上锁仓---既开多又开空,图表程序化交易,不要在持有多仓的情况下再开空仓.
经过测试确实存在同根有信号交集,
问题1:按照系统的默认,同根k线内只识别一次反向信号,当双向都开过仓后, 如发出第三次反向信号,系统会忽略掉?
问题2:当问题1出现后, 下根k线应该重新按照开仓条件开仓才对,但是请看下图,按照条件,隔根k线跌穿下轨应该重新开空仓才对,但是系统并没有开仓,请问问题在哪里?
if holding>0 then begin
if L>=LOWERBAND then
sell(1,holding,limitr,LOWERBAND-2*mindiff);
buyshort(1,1,limitr,LOWERBAND-3*mindiff);
end
LOWERBAND 是下轨黄线
我提示您的3是
3.注意信号消失的情况.
您的这个问题,如果上根K线信号没有消失,假设说上根K线开了空仓,那么如果随后的下根K线出现了平空信号,就会平空.
按照图上显示的,会给您平多开空
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332
看看这里的问题13,对您是否有帮助.