VeighNa量化社区
你的开源社区量化交易平台
Member
加入于:
帖子: 64
声望: 8

当策略初始化完之后回调new_bar()方法, 也就是如下代码

def new_bar(self, bar: BarData) -> None:
    """"""
    self.bar = bar
    self.datetime = bar.datetime

    self.cross_limit_order() # 第一次进入循环的时候这个方法
    self.cross_stop_order()
    self.strategy.on_bar(bar)

    self.update_daily_close(bar.close_price)

为什么self.cross_limit_order(),self.cross_stop_order()这两个方法要先于 self.strategy.on_bar(bar)执行, 按理来说应该要先 self.strategy.on_bar(bar)执行完了self.active_limit_orders里才有order数据让self.cross_limit_order(),self.cross_stop_order()这两个方法去做cross啊. veighna的代码写的很严谨, 这么写肯定有他的道理, 但是我想了好久都没想出个所以然, 所以再此向大家提问, 谢谢

Member
avatar
加入于:
帖子: 5018
声望: 303

上根K线下的委托不能和自己撮合,要基于下根K线撮合的
具体撮合逻辑可参考cross_limit_order和cross_stop_order函数

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】