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, 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自带
Clone this wiki locally