RQAlpha源码阅读(一)

RQAlpha源码阅读

RQAlpha源码阅读(一)-CycleGen

依赖

  • requests
  • numpy
  • pandas
  • python-dateutil
  • six
  • logbook
  • click
  • jsonpickle
  • simplejson
  • PyYAML
  • tabulate
  • rqrisk
  • h5py
  • matplotlib
  • xlwt

入口__main__.py

载入Mod

rqalpha入口文件首先解析mod_config.yml加载用户模块配置选项,模块配置文件格式如下:

mod:
  # 载入 Account 和 Postion Model
  sys_accounts:
    enabled: true
  # 回测 / 模拟交易 支持 Mod
  sys_simulation:
    enabled: true
  # 开启该选项,可以在命令行查看回测进度
  sys_progress:
    enabled: true
  sys_risk:
    enabled: true
  sys_analyser:
    enabled: true
  sys_scheduler:
    enabled: true
  sys_transaction_cost:
    enabled: true
  custom_mod:
  	lib: $PATH/python3/mod/custom_mod

rqalpha模块配置检查时会先使用自身包内的默认版本作为模板,然后在~/.rqalpha中检查用户是否写入mod_config.yml来更新覆盖模块配置。如何区别内部模块和外部模块呢?rqalpha.mod.utils.inject_mod_commands函数中是通过模块信息配置项下是否存在lib来区分的,并且rqalpha将以下模块列为系统级模块,加载时从rqalpha.mod.rqalpha_mod_{mod_name}

SYSTEM_MOD_LIST = [
    "sys_accounts",
    "sys_analyser",
    "sys_progress",
    "sys_risk",
    "sys_simulation",
    "sys_transaction_cost",
    'sys_scheduler',
]

启用命令行

导入Mod后rqalpha会解析命令行参数,入口在rqalpha.cmds.entry.cli,具体命令在rqalpha.cmds文件夹下的其他文件中。

cmds子包

包含以下模块:

模块 用途
bundle 下载数据
run 运行策略
misc 生成配置、策略模板
mod 模块管理

下面具体解释每个模块中包含的命令及其对应参数。

bundle


download_bundle

该命令用来下载数据文件,

参数 介绍
-d --data-bundle-path 数据下载的位置,默认为~/.rqalpha,会在该目录下生成bundle目录,数据均会被下载到该目录下。
--confirm 目录下存在文件,是否直接覆盖,该标志为True时直接清空现有文件

update_bundle

该命令用来更新数据文件

参数 介绍
-d --data-bundle-path 数据下载的位置,需要有数据存在,当文件夹为空时会提示数据不存在请使用download_bundle命令
rqdatac_uri --rqdatac --rqdatac-uri rqdatac的uri,数据从该远程端口下载
--compression 是否允许压缩数据以便节省空间,默认是False
-c --concurrency 多进程下载,默认进程数1

 

misc


examples

生成策略样例到目标目录

参数 介绍
-d --directory 默认为当前文件夹,该参数为必选参数

version

显示rqalpha版本

参数 介绍
-v --version 版本

generate_config

生成默认配置文件

参数 介绍
-d --directory 默认为当前文件夹,该参数为必选参数

mod


list

显示所有支持的Mod

enable

启用某个Mod

参数 介绍
name 模块名称

disable

禁用某个Mod

参数 介绍
name 模块名称

run


run

运行策略

 

参数 介绍
-d --data-bundle-path base__data_bundle_path 数据源所存储的文件路径
-f --strategy-file base__strategy_file 启动的策略文件路径
-s --start-date base__start_date 回测起始日期
-e --end-date base__end_date 回测结束日期(如果是实盘,则忽略该配置)
-mm --margin-multiplier base__margin_multiplier 设置保证金乘数,默认为1
-a --account base__accounts 设置策略可交易品种,目前支持 stock (股票账户)、future (期货账户),您也可以自行扩展。如果想设置使用某个账户,只需要增加对应的初始资金即可。stock: ~ future: ~
--position base__init_positions 设置初始仓位,字符串类型
-fq --frequency base__frequency 回测频率,'1d', '1m', 'tick'
-rt --run-type base__round_price 运行类型,b 为回测,p 为模拟交易, r 为实盘交易。默认b回测模式
-rp --round-price base__frequency 根据价格最小变动单位调整发单价格,取到小数点后2位
-mk --market base__market 使用的市场,'cn', 'hk'
--source-code base__source_code 策略源代码
-rqdatac --rqdatac-uri base__rqdatac_uri rqdatac的远程端口
-l --log-level extra__log_level 日志级别,可选'verbose', 'debug', 'info', 'error', 'none'
--logger extra__logger 配置日志记录器,例如, --logger system_log debug
--locale extra__locale 可选cnen, 默认cn
--extra-vars extra__context_vars 覆盖默认的context数据
--enable-profiler extra__enable_profiler 添加一行性能调试来调试策略
--config config_path 配置文件目录
-mc --mod-config mod_configs mod配置,参数成对存在,可存在多个
--resume base__resume_mode 该参数已被废弃

本文系作者 @ 原创发布在 CycleGen。未经许可,禁止转载。

喜欢()
评论 (0)
    热门搜索
    173 文章
    1 评论
    47 喜欢
    Top