在class CtaEngine(BaseEngine):中
添加了如下:
self.event_engine.register(EVENT_CONTRACT, self.process_contract_event)
def process_contract_event(self, event):
""""""
print("contract开始执行了。")
contracts = event.data
contract = (contracts.vt_symbol, contracts.size, contracts.pricetick)
print(contract)
for strategy_name in self.strategies.keys():
strategy = self.strategies[strategy_name]
self.call_strategy_func(strategy, strategy.on_contract, contract)
在class CtaTemplate(ABC):中添加了
@virtual
def on_contract(self, contract):
"""
"""
pass
在策略中添加了如下:
def on_contract(self, contract):
"""
合约信息推送
"""
self.write_log(f"合约信息{contract}")
self.put_event()
用上面的方法能在策略中获取到信息,但是不是一直有。有时候打开就能出现合约信息,有时程序运行好久会出现合约信息,或是挂着半天不显示,这是为什么?大神帮忙解答下?