Permalink
Fetching contributors…
Cannot retrieve contributors at this time
261 lines (178 sloc) 11.9 KB

10分钟教程

在本教程中,我们假设 RQAlpha 已经正确安装在您的系统中,并且已经完成了相应回测数据的同步,如果有任何安装相关的问题,请首先查看 :ref:`intro-install`

策略运行流程

我们从 :ref:`intro-examples` 中选取 :ref:`intro-examples-buy-and-hold` 来进行回测。

如果对于策略、数据路径存在疑问,请参考::ref:`FAQ-examples-path`

在进行回测的过程中需要明确以下几个回测要素,您可通过生成config.yml传参 :ref:`intro-config` 或者通过命令行传参:

  • 数据源路径
  • 策略文件路径
  • 回测起始时间
  • 回测结束时间
  • 起始资金
  • Benchmark

假如我们的策略存放在了 ./rqalpha/examples/buy_and_hold.py 路径下, 数据源存放在 ./rqalpha/bundle/ 路径下,回测的起始时间为 2016-06-01, 结束时间为 2016-12-01,我们给策略分配的起始资金为 100000, Benchmark 设置为 000300.XSHG

那么我们通过如下命令来运行回测

rqalpha run -f ./rqalpha/examples/buy_and_hold.py -d ./rqalpha/bundle/ -s 2016-06-01 -e 2016-12-01 --account stock 100000 --benchmark 000300.XSHG

如果我们想要以图形的方式查看回测的结果, 则增加 --plot 参数

rqalpha run -f ./rqalpha/examples/buy_and_hold.py -d ./rqalpha/bundle/ -s 2016-06-01 -e 2016-12-01 --account stock 100000 --benchmark 000300.XSHG --plot

https://raw.githubusercontent.com/ricequant/rq-resource/master/rqalpha/buy_and_hold.png

如果想把回测的数据保存下来,可以通过 -o 参数将结果保存成 pkl 文件。

rqalpha run -f ./rqalpha/examples/buy_and_hold.py -d ./rqalpha/bundle/ -s 2016-06-01 -e 2016-12-01 --account stock 100000 --benchmark 000300.XSHG --plot -o result.pkl

等回测结束后可以通过 pandas.read_pickle 函数来读取数据进行之后的数据分析。

策略编写流程

RQAlpha 抽离了策略框架的所有技术细节,以API的方式提供给策略研发者用于编写策略,从而避免陷入过多的技术细节,而非金融程序建模本身。

RQAlpha 的 API 主要分为三类:约定函数、数据查询和交易接口。

至此,我们写出了一个“完整”的策略,但是该策略实际上什么也没有做。

接下来,我们需要获取数据,根据数据来确定我们的仓位逻辑,因此会使用到数据查询的 API 接口。

Ricequant 金融、财务、合约历史数据等数据接口请查看 :ref:`api-extend-api`

至此,我们已经获取到了开仓和平仓的信号,那么接下来就需要调用交易接口来进行交易了。

我们分别使用 :func:`order_target_value`:func:`order_shares` 进行平仓和开仓的操作,顺便把日志相关的代码删除,就是一个完整的 :ref:`intro-examples-golden-cross` 了。

可以看到,我们使用 plot 函数绘制内容,也出现在了输出的结果中。

$ rqalpha run -s 2014-01-01 -e 2016-01-01 -f rqalpha/examples/golden_cross.py --account stock 100000 -p -bm 000001.XSHE

https://raw.githubusercontent.com/ricequant/rq-resource/master/rqalpha/golden_cross.png