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

策略已经写好了,需要同时订阅多个合约,比如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)

求助帮忙;

Member
avatar
加入于:
帖子: 15
声望: 1

我自己搞定了,首先添加配置文件:
{"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() # 启动多策略

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

沪公网安备 31011502017034号

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