命令行运行
在命令行模式中,我们预先定义了常用的参数作为命令行的 option,您可以直接在控制台输入参数来配置 RQAlpha,但并不是所有的参数都可以通过命令行来配置,如果有一些特殊的参数需要配置,请结合其他方式来配置您的策略。当然您也可以扩展命令行,来实现您指定的命令行 option 选项。
命令行参数
参数名缩写 | 参数名全称 | 说明 |
---|---|---|
-d | - - data-bundle-path | 数据源所存储的文件路径 |
-f | - - strategy-file | 启动的策略文件路径 |
-s | - - start-date | 回测起始日期 |
-e | - - end-date | 回测结束日期(如果是实盘,则忽略该配置) |
-bm | - - benchmark | Benchmark,如果不设置,默认没有基准参照 |
-mm | - - margin-multiplier | 设置保证金乘数,默认为1 |
-a | - - account | 设置账户类型及起始资金,比如股票期货混合策略,起始资金分别为10000, 20000 —account stock 10000 —account future 20000 |
-fq | - - frequency | 目前支持 1d (日线回测) 和 1m (分钟线回测),如果要进行分钟线,请注意是否拥有对应的数据源,目前开源版本是不提供对应的数据源的 |
-rt | - - run-type | 运行类型,b 为回测,p 为模拟交易, r 为实盘交易 |
N/A | - - resume | 在模拟交易和实盘交易中,RQAlpha支持策略的pause && resume,该选项表示开启 resume 功能 |
-l | - - log-level | 选择日志的输出等级,有 verbose | code:info | warning | error 等选项,您可以通过设置 verbose 来查看最详细的日志,或者设置 error 只查看错误级别的日志输出 |
N/A | - - locale | 选择语言, 支持 en | cn |
N/A | - - disable-user-system-log | 关闭用户策略产生的系统日志(比如订单未成交等提示) |
N/A | - - enable-profiler | 启动策略逐行性能分析,启动后,在回测结束,会打印策略的运行性能分析报告,可以看到每一行消耗的时间 |
N/A | - - config | 设置配置文件路径 |
-mc | - - mod-config | 配置 mod ,支持多个。-mc funcat_api.enabled True 就可以启动一个 mod |
传递 Mod 参数
对于 mod 的参数传递,可以使用 -mc
传递 mod 设置。
-mc sys_stock_realtime.enabled True
启动 sys_stock_realtime 这个 mod。-mc sys_stock_realtime.fps 60
设置 sys_stock_realtime 的 fps 参数为 60。
- rqalpha run -rt p -fq 1m -f strategy.py --account stock 100000 -mc sys_stock_realtime.enabled True -mc sys_stock_realtime.fps 60
系统内置 Mod Option扩展
系统内置 Mod 也提供了启动参数的扩展,当您开启了对应的 Mod 时,即可使用:
参数名缩写 | 参数名全称 | 说明 |
---|---|---|
N/A | - - report | [sysanalyser]保存交易详情 |
-o | - - output-file | [sys_analyser]指定回测结束时将回测数据输出到指定文件中 |
-p | - - plot | [sys_analyser]在回测结束后,查看图形化的收益曲线 |
N/A | - - no-plot | [sys_analyser]在回测结束后,不查看图形化的收益曲线 |
N/A | - - plot-save | [sys_analyser]将plot的收益图以指定文件路径保存 |
N/A | - - progress | [sys_progress]开启命令行显示回测进度条 |
N/A | - - no-progress | [sys_progress]关闭命令行查看回测进度 |
N/A | - - short-stock | [sys_risk]允许股票卖空 |
N/A | - - no-short-stock | [sys_risk]不允许股票卖空 |
N/A | - - signal | [sys_simulation]开启信号模式,不进行撮合,直接成交 |
-sp | - - slippage | [sys_simulation]设置滑点 |
-cm | - - commission-multiplier | [sys_simulation]设置手续费乘数,默认为1 |
-me | - - match-engine | [sys_simulation]启用的回测引擎,目前支持 current_bar (当前Bar收盘价撮合) 和 next_bar (下一个Bar开盘价撮合) |
-r | - -_ rid | [sys_simulation]可以指定回测的唯一ID,用户区分多次回测的结果 |
通过 Mod 自定义扩展命令行参数
RQAlpha 非常灵活,您可以在您的 Mod 中扩展命令行,我们以 sys_analyser Mod 添加自定义option —plot
来实现展示收益图为例,来介绍以下如何扩展您自己的命令行参数。
注解
rqalphamodsys_analyser 对应源码请访问 [这里](https://github.com/ricequant/rqalpha/blob/master/rqalpha/mod/rqalpha_mod_sys_analyser/__init.py) 进行查看。
RQAlpha 使用 click 来实现命令行参数配置,您需要通过 click 来构建 option。通过 from rqalpha import cli
来获取命令行对象。
- import click
- from rqalpha import cli
接下来我们命令 rqalpha run
中添加参数 —plot
来实现画图的功能
- cli.commands['run'].params.append(
- click.Option(
- ('-p', '--plot/--no-plot', 'mod__sys_analyser__plot'),
- default=None,
- help="[sys_analyser] plot result"
- )
- )
我们还希望可以通过 $ rqalpha plot result_pickle_file_path
来将之前通过pickle文件报错的某次回测的结果进行画图
- @cli.command()@click.argument('result_pickle_file_path', type=click.Path(exists=True), required=True)@click.option('—show/—hide', 'show', default=True)@click.option('—plot-save', 'plot_save_file', default=None, type=click.Path(), help="save plot result to file")def plot(result_pickle_file_path, show, plot_save_file): """ [sys_analyser] draw result DataFrame """ import pandas as pd from .plot import plot_result
result_dict = pd.read_pickle(result_pickle_file_path)
plot_result(result_dict, show, plot_save_file)