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

当订单成交后,用列表来记录成交价格,当开启两个以上CTP策略时,会把所有策略的成交价格都存到一起,新版本是这个样,2.3版本就不会出现这个问题,每个策略记录的价格是分开的。代码如下:
class Test(CtaTemplate):
Buyopenprice = []
def on_trade(self, trade: TradeData):
self.Buyopenprice.append(trade.price)
比如:同一个策略加载了两个品种,每个品种的策略名称区分开,当这两个品种都成交后,JSON文件里面Buyopenprice这个列表里面同时有这两个品种的成交价格。新版本有这个问题,2.3版本没有这个问题。

Member
avatar
加入于:
帖子: 4680
声望: 285

请不要共用同一个策略类名。
想知道是否重复推送的话,打印on_trade推进来的TradeData就知道了

Member
avatar
加入于:
帖子: 16
声望: 0

我多个品种都需要用这个策略来跑的话,怎么解决。

Member
avatar
加入于:
帖子: 4680
声望: 285

抱歉,说错了,请不要使用策略类全局变量来存储,整个策略类会共享这个变量或参数,需要存储的话请像示例策略里的参数一样写在_ init _函数下

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

沪公网安备 31011502017034号

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