tick 级别回测,这个值我下单后,值不会变,为了便于还原此bug,我再 on_tick里键入这个逻辑,结果下了好多单,基本上判断pos废了
if self.pos == 0:,
self.buy(tick.ask_price_1, 1)
elif self > 0:
self.sell(tick.bid_price_1, 1)
tick 级别回测,这个值我下单后,值不会变,为了便于还原此bug,我再 on_tick里键入这个逻辑,结果下了好多单,基本上判断pos废了
if self.pos == 0:,
self.buy(tick.ask_price_1, 1)
elif self > 0:
self.sell(tick.bid_price_1, 1)
从委托到接受、等待、部分成交、全部成交,需要一个过程,你以为象计算机指令一样C=A+B,这边执行,那边就可以得到C的结果吗?
在on_tick()中下单,每秒钟2次,怎么可能立即都有成交结果,没有成交结果,怎么self.pos会发生变化?当然会连续下单,“基本上判断pos废了”就是错误 的!
hxxjava wrote:
从委托到接受、等待、部分成交、全部成交,需要一个过程,你以为象计算机指令一样C=A+B,这边执行,那边就可以得到C的结果吗?
在on_tick()中下单,每秒钟2次,怎么可能立即都有成交结果,没有成交结果,怎么self.pos会发生变化?当然会连续下单,“基本上判断pos废了”就是错误 的!
解决办法能分享一下吗?
我不知道你的问题解决没有。你可以试着在发单语句的后面,加上:
time.sleep(2)
给系统工作和自我检查的时间
策略中不要sleep,会阻塞事件引擎运行,导致整个程序卡顿