标准版,新图表交易系统信号,图表上的交易信号正常,在盘后采用K线逐笔回放进行测试,图表程式化交易采用了1秒固定时间间隔,并勾选了信号消失后自动回复持仓。
现在发现两个问题不知是什么原因?
1.在回放的交易记录中,平多开空没有问题,但平空开多在下单记录中却只有开多而没有平空指令,参见下图(图表交易信号完全正常):
2.在盘中出现了开多后K线结束时信号消失,可并没有出现回复持仓的交易指令记录。
我能看到啊?我就是插入的图。
我用火哥的例子(enterlong系列指令及tbuyholding系列仓位管理)试了,在逐笔回放的程序化交易测试时,也是在做空时先平多再开空,但做多时是没有平空就只有一个开多。我用的是buy系列指令及holding虚拟仓位管理,两个都有相同的问题。我的软件是2.75版本。
新交易系统。你能写得出来?
肯定是你模型问题
软件本身没问题,没有任何限制。
把你写出来的发来看看再说吧
刚才在午盘收盘后有做了逐笔回放模拟交易测试,这次的交易记录中平空开多是正常的,就是开空之前没有平多了。 可能和测试时的模拟帐户的持仓状态关联起来了,昨天测试的时候考虑到逐笔回放必须断开连接,也就估计与持仓状态无关。
无平空就开多的时候模拟帐户是持有多仓,无平多就开空的时候模拟帐户是持有空仓。
我的代码如下,请火哥指教:
variable:kpos=0;(或用globalvariable声明)//不再使用islastbar
.
.
.
bars:=kpos;
if barpos>kpos then begin
sellshort(lastlong and holding<0, 1, limitr, o);
sell(lastshort and holding>0, 1, limitr, o);
buyshort(lastshort and holding=0, 1, limitr, o);
buy(lastlong and holding=0, 1, limitr, o);
kpos:=barpos;
inkbuy:=0;
end
if InTermBuy then begin //K线中满足条件即交易,之后至新K线产生之前的最后1秒扫描可能有两种情况,1是InTermBuy继续成立(信号保持),但收盘价决定需要主动恢复仓位,这时会改变lastlong和lastshort的状态并通过在新K线产生的第一秒实现主动恢复仓位的操作;2是InTermBuy不成立了(信号消失),这时K线的虚拟仓位状态和实际相反,这时通过勾选的自动回复持仓功能进行恢复。(这个还没有测到,也不知是否会出现问题?)
sellshort(holding<0, 1, limitr, PriceInK);
buy(holding=0, 1, limitr, PriceInK);
inkbuy:=1;
end
汗!~~~
你不会贴个完整版的啊。
InTermBuy是什么?inkbuy是什么
kpos没有任何意义
不过,咋一看问题很多