策略已经写好了,需要同时订阅多个合约,比如ru2109.SHFE; ag2112.SHFE; 我使用如下代码,无法成功:
cta_engine.add_strategy(class_name, strategy_name, "ru2109.SHFE", strategy_setting)
cta_engine.add_strategy(class_name, strategy_name, "ag2112.SHFE", strategy_setting)
求助帮忙;
策略已经写好了,需要同时订阅多个合约,比如ru2109.SHFE; ag2112.SHFE; 我使用如下代码,无法成功:
cta_engine.add_strategy(class_name, strategy_name, "ru2109.SHFE", strategy_setting)
cta_engine.add_strategy(class_name, strategy_name, "ag2112.SHFE", strategy_setting)
求助帮忙;
我自己搞定了,首先添加配置文件:
{"strategy_name": "DemoOne","class_path": "strategies.demo_one","class_name": "DemoOne","symbol":"ru2109.SHFE,ag2112.SHFE","strategy_setting":{}}
接着从配置文件中读取两个合约,进行初始化
cta_engine.classes = {} # 策略清空
strategies = SettingUtils.get_strategies(full_path) # 读取配置文件
for item in strategies:
symbol_list = item['symbol'].split(',')
for symbol in symbol_list:
class_name = item['class_name']
strategy_name = item['strategy_name']
strategy_setting = item['strategy_setting']
class_name_symbol = class_name+symbol
strategy_name_symbol = strategy_name+symbol
cta_engine.classes[class_name_symbol] = getattr(module, class_name)
cta_engine.add_strategy(class_name_symbol, strategy_name_symbol, symbol, strategy_setting)
cta_engine.init_strategy(class_name_symbol)
sleep(30)
cta_engine.start_all_strategies() # 启动多策略