vn.py官网
Veighna量化社区 | 你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 316
声望: 92

我在自己的价差策略on_order()中加了这样的代码

    def on_order(self, order: OrderData):
        """
        Callback when order status is updated.
        """
        print(f"{self.spread_name} {order}")

在自己的价差策略on_trade()中加了这样的代码

    def on_trade(self, trade: TradeData):
        """
        Callback when new trade data is received.
        """
        print(f"{self.spread_name} {trade}")

我的价差策略运行后,成功交易后,没有任何打印信息,为什么这样?

Member
avatar
加入于:
帖子: 2846
声望: 197

因为engine的process_order_event和process_trade_evnet调用的是update_order和on_trade函数

Member
avatar
加入于:
帖子: 316
声望: 92

您答非所问了。
我的意思是既然每腿的委托和成交都不推送给价差策略,为什么还要on_order()和on_trade()这两个推送接口?

Administrator
avatar
加入于:
帖子: 4496
声望: 306

hxxjava wrote:

您答非所问了。
我的意思是既然每腿的委托和成交都不推送给价差策略,为什么还要on_order()和on_trade()这两个推送接口?

这是用来在策略自身直接调用buy、sell、short、cover发出底层委托后,接收回报信息的推送接口。

所有算法层发出的委托相应的回报,都会推送给算法(再由算法触发on_spread_algo回调),而不是策略。

Member
avatar
加入于:
帖子: 316
声望: 92

嗯,原来是有这一层考虑,谢谢回复!

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

沪公网安备 31011502017034号

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