价差策略的无人值守研究了一上午,踩了不少坑,总结一下
文件头上引入
import multiprocessing
import sys
from time import sleep
from datetime import datetime, time
from logging import INFO
from vnpy.event import EventEngine
from vnpy.trader.setting import SETTINGS
from vnpy.trader.engine import MainEngine
from vnpy_ctp import CtpGateway
from vnpy_da import DaGateway
from vnpy_spreadtrading import SpreadTradingApp
from vnpy_spreadtrading.base import EVENT_SPREAD_LOG
内容要改成下面这样
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(CtpGateway)
main_engine.add_gateway(DaGateway)
spread_engine = main_engine.add_app(SpreadTradingApp)
main_engine.write_log("主引擎创建成功")
log_engine = main_engine.get_engine("log")
event_engine.register(EVENT_SPREAD_LOG, log_engine.process_log_event)
main_engine.write_log("注册日志事件监听")
main_engine.connect(ctp_setting, "CTP")
main_engine.write_log("连接CTP接口")
sleep(10)
main_engine.connect(da_setting, "DA")
main_engine.write_log("连接DA接口")
sleep(60)
#spread_engine.init_engine()
#main_engine.write_log("Spread策略初始化完成")
spread_engine.data_engine.start()
spread_engine.algo_engine.start()
spread_engine.strategy_engine.start()
spread_engine.strategy_engine.init_all_strategies()
sleep(10) # Leave enough time to complete strategy initialization
main_engine.write_log("Spread策略全部初始化")
spread_engine.strategy_engine.start_all_strategies()
main_engine.write_log("Spread策略全部启动")