Skip to content

学习增强版VNPY,从这里看

msincenselee edited this page Jun 16, 2020 · 2 revisions

一、为什么要做VNPY得增强版?

  1. vnpy是个开源社区,代码得贡献与合并占大量得工作。
  2. 我本身是机构合伙人,很多时候只贡献代码,不参与社区得合并工作。
  3. 每个人得思路不同,不一定要拧在一起,有时候会失去灵活性。
  4. 人生苦短,我用python.
  5. 机构的量化工作很多,很多idea都是根据实际工作的用途来提出需求的,有些时候是做项目,不是做产品。

二、增强版使用。

  1. 下载zip包,解压至 d:\vnpy2
  2. 安装python环境(python 3.7),或使用anaconda创建 py37的虚拟环境。
  3. 直接pycharm 或者 vscode 或者 命令行界面,在d:\vnpy2下任意目录运行你写的代码,即可。
  4. 增强版采用共享策略代码的方式,通过多个子目录,管理多个账号。

三、增强版目录:

  1. 数据目录:
  • bar_data, 一般存放csv格式的bar文件,供回测、实盘运行时初始化数据。例如, tdx下的期货,股票, 数字货币的binance合约和期货,富途/IB港股等。csv一般基础是1分钟数据,可自行转换至更高时间周期数据。
  • tick_data, 一般是我在淘宝买回/朋友分享的各类tick数据,或者系tdx接口下载的逐笔成交记录压缩pkb2。
  1. tests目录:
  • 沿用vnpy官方定义,这是测试、回测目录。我喜欢每个策略,或者每类策略,单独一个子目录进行回测。
  • celery, 这是分布式回测的日志记录地方。
  1. prod目录:
  • 账号/运行目录,自行命名,例如 ctp_yh01, 就是银河期货的ctp账号01. ctp_gm01, 就是国贸期货的ctp账号01, stock_xtp01,就是中泰xtp账号01。 每个账号下,可以自行配置 run_main_ctp_yh01.py(windows GUI) 和 run_service.py (无界面运行)
  • jobs 日常作业,包括定时补充tdx 期货、股票的csv1分钟数据, 定时补充富途的港股1分钟数据, 定时补充tick并更新renko bar数据,定时做主力合约检查,定时统计每个账号/每个策略的净值。
  • win 目录, windows下,rpc客户端远程界面,用于远程连接服务器的所有运行账号,查看它们的运行策略,状态,仓位是否一致,平衡仓位,新增策略(本地json文件载入),启停和移除策略,生成缓存和数据切片等。
  1. vnpy目录:
  • amap, 参照quantaxis的rabbitmq的通信接口,用于分布式运行与通信,web界面与账号运行服务通信,行情广播与接收等。
  • api,所有vnpy的gateway前置API定义。有通用的restAPI和websocketapi,也有专用的c++封装转换的api,如ctp/xtp等。
  • app, 所有的vnpy应用。
    • account_recorder, 账号记录器,把当前运行账号的资金净值,委托记录,成交记录,持仓记录,策略的持仓,统统写入到mongodb中,便于web界面查看。
    • algo_trading, vnpy自带的算法交易app,它可以与cta_strategy*类app配合。
    • cta_crypto, 数字货币领域的cta_engine。已根据币安永续合约进行优化。
    • cta_stock, 股票领域的cta_engine,支持多个vt_symbol导入到一个策略实例中。
    • cta_strategy_pro,增强版的期货cta_engine, 支持多个vt_symbol行情=>策略实例,支持自定义套利合约,支持tdx/天勤 99指数行情。支持组合回测, 它也可以做港股美股。
    • index_tick_publisher, 指数行情推送器,从tdx/天勤订阅指数行情,推送至rabbitMQ,再传递至所有的运行账号。
    • chart, vnpy自带图表。
    • component, 增强版组件,这里是华富资产开源的组件,提供了cta_line_bar, cta_renko_bar等K线类, 提供了fund_kline资金K线类,提供了policy策略执行辅助,提供了position多空持仓组件, 提供了grid_trade网格组件和持久化组件。
    • gateway, 就是所有的接入网关了。这里对ctp_gateway, xtp_gateway, futuGateway, ibGateway, binanceGateway, binancefGateway做了大量的功能和稳定性加固增强。
    • rpc, vnpy原版的远程交互接口。
    • task, 增强版的celery分布式回测基础组件。
    • trader, GUI图形界面、主引擎、标准化定义、Object对象,Utility工具, 华富开源了:
      1. util_wechat.py 微信通知,同时发送给一人、多人 2)util_logger.py 日志 3)util_monitor.py 无界面的账号、持仓、委托、成交记录等日志。
      2. ui/kline 移植自1.9x版本华富增强版,包括多周期K线同时展现,策略切片展现,成交信号、逻辑信号展现等,供回测、实盘查看K线。
Clone this wiki locally