重修vn.py笔记 之 五 : 框架
现在,运行一个完整的vnpy 框架,从应用,到窗体以及各个app,
我们尝试连接 ctp 运行环境,在simnow上注册有用户,服务信息里可以查到连接信息。
启动下面文件后,在.vntrader 目录下, 会生成一个connect_ctp.json, 保存已经设置的连接信息。
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy_ctp import CtpGateway
# from vnpy_ctptest import CtptestGateway
# from vnpy_mini import MiniGateway
# from vnpy_femas import FemasGateway
# from vnpy_sopt import SoptGateway
# from vnpy_uft import UftGateway
# from vnpy_esunny import EsunnyGateway
# from vnpy_xtp import XtpGateway
# from vnpy_tora import ToraStockGateway, ToraOptionGateway
# from vnpy_ib import IbGateway
# from vnpy_tap import TapGateway
# from vnpy_da import DaGateway
# from vnpy_rohon import RohonGateway
# from vnpy_tts import TtsGateway
# from vnpy_paperaccount import PaperAccountApp
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
# from vnpy_spreadtrading import SpreadTradingApp
# from vnpy_algotrading import AlgoTradingApp
# from vnpy_optionmaster import OptionMasterApp
# from vnpy_portfoliostrategy import PortfolioStrategyApp
# from vnpy_scripttrader import ScriptTraderApp
# from vnpy_chartwizard import ChartWizardApp
# from vnpy_rpcservice import RpcServiceApp
# from vnpy_excelrtd import ExcelRtdApp
from vnpy_datamanager import DataManagerApp
# from vnpy_datarecorder import DataRecorderApp
# from vnpy_riskmanager import RiskManagerApp
# from vnpy_webtrader import WebTraderApp
# from vnpy_portfoliomanager import PortfolioManagerApp
def main():
""""""
qapp = create_qapp()
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
main_engine.add_gateway(CtpGateway)
# main_engine.add_gateway(CtptestGateway)
# main_engine.add_gateway(MiniGateway)
# main_engine.add_gateway(FemasGateway)
# main_engine.add_gateway(SoptGateway)
# main_engine.add_gateway(UftGateway)
# main_engine.add_gateway(EsunnyGateway)
# main_engine.add_gateway(XtpGateway)
# main_engine.add_gateway(ToraStockGateway)
# main_engine.add_gateway(ToraOptionGateway)
# main_engine.add_gateway(IbGateway)
# main_engine.add_gateway(TapGateway)
# main_engine.add_gateway(DaGateway)
# main_engine.add_gateway(RohonGateway)
# main_engine.add_gateway(TtsGateway)
# main_engine.add_app(PaperAccountApp)
main_engine.add_app(CtaStrategyApp)
main_engine.add_app(CtaBacktesterApp)
# main_engine.add_app(SpreadTradingApp)
# main_engine.add_app(AlgoTradingApp)
# main_engine.add_app(OptionMasterApp)
# main_engine.add_app(PortfolioStrategyApp)
# main_engine.add_app(ScriptTraderApp)
# main_engine.add_app(ChartWizardApp)
# main_engine.add_app(RpcServiceApp)
# main_engine.add_app(ExcelRtdApp)
main_engine.add_app(DataManagerApp)
# main_engine.add_app(DataRecorderApp)
# main_engine.add_app(RiskManagerApp)
# main_engine.add_app(WebTraderApp)
# main_engine.add_app(PortfolioManagerApp)
main_window = MainWindow(main_engine, event_engine)
main_window.showMaximized()
qapp.exec()
if __name__ == "__main__":
main()
这个框架包含了很强的容错信息。 在这个环境下,自写的代码出错,程序不会完全崩溃。
浙公网安备 33010602011771号