想一次性获取全部合约行情作一些条件判断,经老大提示可以用get_all_contracts和get_all_ticks
先使用守护进程的脚本方式启动,发现print的列表为空[]。
什么原因呢? 我调用的不对?
代码如下:
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy.gateway.ctp import CtpGateway
from vnpy.app.cta_strategy import CtaStrategyApp
from vnpy.app.data_recorder import DataRecorderApp
import multiprocessing
from time import sleep
from datetime import datetime, time
def runChildProcess():
"""子进程运行函数"""
"""Start VN Trader"""
qapp = create_qapp()
ctp_setting = {
**** }
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(CtpGateway)
main_engine.add_app(CtaStrategyApp)
main_engine.add_app(DataRecorderApp)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
# print("anti***")
main_engine.connect(ctp_setting, "CTP")
main_engine.write_log("连接CTP接口")
qapp.exec()
while True:
print("syleist")
sleep(1)
def insert(dba):
event_engine1 = EventEngine()
main_engine1 = MainEngine(event_engine1)
main_engine1.add_gateway(CtpGateway)
#testv = main_engine1.get_all_ticks()
testv = main_engine1.get_all_contracts()
print('now ct', testv) # 测试输出为空[]
def runParentProcess():
"""父进程运行函数"""
# 创建日志引擎
if __name__ == "__main__":
runParentProcess()