从中国境内访问速度会比较慢_历史汇率查询官网Ricequant SDK 是米筐量化平台中一系列的量化器械的统称,征求金融数据 API RQData、回测框架 RQAlpha-Plus、因子投研器械 RQFactor 以及股票组合优化器 RQOptimizer 四个产物。正在网页平台中的“投资钻研”版块所运用的完全效力即是基于 Ricequant SDK,或简称 RQSDK 的拓荒情况。现正在米筐将这一套便捷的拓荒情况当地化,使您可能轻松正在当地通过 RQData 挪用金融数据、通过 RQAlpha Plus 举行回测、通过 RQFactor 开采因子、通过 RQOptimizer 举行股票组合优化,同时您还可能轻松地拜候您的当地数据、用您最熟识的当地 IDE 举行断点调试。
Ricequant SDK 须要 64-bit,Python3.6+运转情况。假使您目前没有 Python 情况,或者已有的情况版本过低,请参考下面的诠释来计算 Python 情况。
Ricequant SDK 须要贸易授权才具运用。请正在安置前计算好米筐发放的许可证文献(寻常会以邮件的局面发放),或联络发卖获取授权。假使您思先试用本产物,可能点击这里
因为 Python 原生的安置和装备相对照较繁杂,咱们倡议运用Anaconda(opens new window)举行安置及装备,安置运用教程可参考安置 Anaconda 虚拟情况(激烈倡议)。
正在开端之前咱们假设您曾经自行或依据上述步调装好了 Python,并激活了您愿望举行量化战略拓荒的虚拟情况。
Ricequant SDK 的安置很是轻易,您只需正在激活了虚拟情况的号令行终端内输入下面的号令即可安置(或复制下面的号令再黏贴进号令行——Windows 的 cmd 终端用鼠标右键点击玄色区域自便地位来黏贴):
全盘安置历程延续约 5 分钟(取决于呆板装备和汇集景况)。假使您正在 Windows 下的 cmd 窗口运转上述号令,请正在安置序次运转的光阴不要用鼠标点击 cmd 窗口内,云云会导致序次运转暂停。假使失慎点击了,可能按一次回车键来接续运转序次。
假使您所正在的情况须要通过署理拜候外网(如不须要可跳过此步调,举行下一步调装备许可证音信),rqsdk 可通过如下号令装备或更新署理:
该号令是交互式的,您只须要遵照号令提示填入所需音信即可。装备完毕后可能挪用rqsdk proxy info来查看刚装备的许可证音信。
正在您申请试用或者正式采购 Ricequant SDK 之后,米筐会将含有许可证音信的邮件发送到您供给的邮箱中。许可证音信是一串看起来像“乱码”的文字:
该号令是交互式的,您只须要遵照号令提示填入所需音信即可。装备完毕后可能挪用rqsdk license info来查看刚装备的许可证音信。
正在安置完rqsdk及装备许可证之后,您须要遵照我方的须要采用安置 Ricequant SDK 中包括的产物。假使您只须要 RQData——金融数据 API 的效力,那么您曾经结束了完全的安置和装备步调,请参考 RQData 的文档来举行下一步办事。
假使您的许可证音信正在运用历程中有所变革(比方蓝本仅有 RQData 的权限,其后增加了回测效力)或愿望运用其他效力,则须要通过下面的技巧来安置其他产物组件。
细心:正在安置某个产物时,假使上外中已诠释组件依赖相干,则其所依赖的组定都会被同时安置上。比方运转了上述的号令安置了 RQAlpha Plus,那么 RQFactor 和 RQOptimizer 也会同时被装上。
米筐会不按期更新 Ricequant SDK 的版本以修复题目和增长效力,每次版本升级后会通过邮件示知更新的实质列外。当您确定要更新的光阴,只须要正在安置了 RQSDK 的虚拟情况中运转下列号令即可更新到最新版:
以上rqsdk update号令会更新 rqsdk 及当地安置的各产物的版本,如有更新特定产物需求,可通过rqsdk update --help获取该号令的无缺用法。
极度细心:正在推行该号令时请确保完全运转中的 Python 序次都已撒手,比方 IPython Notebook、您我方写的 Python 操纵等,不然很可以会报“无写权限”而升级失利。
Ricequant SDK 的回测效力由RQAlpha Plus供给,而回测所需的数据——除了您我方的数据除外——则由RQData供给。
RQAlpha Plus 回测依赖于汗青行情数据,而这些数据须要预先被缓存到当地(股票、期货回测及各样种类的 tick 回测)。于是正在举行回测之前,起初须要计算好汗青行情数据。
取决于您渴望举行钻研的标的数目和回测频次,汗青行情数据量可以会很是巨大。假使直接通过汇集下载可以会耗时很是久,而且很可以会冲破您账号的逐日流量控制。假使您曾经正式采购 Ricequant SDK,可能联络米筐发卖为您供给线下的行情数据拷贝供职。
咱们先用一个轻易的例子(大约会打发 500MB 的流量)来演示一下运用 Ricequant SDK 做回测的轻松性。
敬重的试用客户:咱们为您计算了逐日 1G 的流量配额,依据前文描绘的 500MB 流量打发是可能知足数据缓存初始化的。同时,咱们特意为试用账户计算了不打发计费流量的初始化办法。
该号令的目标是更新完全日线及基本数据,而且更新代号为000001.XSHE(安好银行)的分钟线行情数据。云云您就可能针对完全的股票和期货做日线回测,而仅对安好银行做分钟线回测。
咱们为试用客户特意计算了不打发计费流量的数据初始化办法,避免由于要下载 500MB 的数据而耗尽逐日流量配额。正在结束前面的安置历程后,您只须要运转下列号令:
该号令将下载米筐计算的样例数据,不打发 rqdatac 的逐日流量配额,它会为您计算好切实的日级别汗青行情数据、合约列外数据、分红拆分数据等回测所需的基本数据。之后假使您再运转rqsdk update-data或该号令的其他参数局面(如前文提到的rqsdk update-data --minbar 000001.XSHE --base,则对付已下载的局限只会举行增量更新,并不会打发大批流量。
细心:正在调取本节所描绘的数据闭系号令时,由于惟有 RQAlpha Plus 的回测效力依赖当地数据包,于是体系会自愿搜检是否曾经安置了该产物,如无安置则会提示安置。
正在上述号令推行完毕后,将会正在用户目次\.rqalpha-plus\bundle目次下创筑汗青行情数据的缓存文献。
这是 Ricequant SDK 统治缓存文献的默认目次,您可能通过参数-d 无缺途途举行定制化。正在回测时同样可能指定-d参数来更改 RQAlpha Plus 读取回测汗青文献的地位。
接下来您须要计算一个战略来举行回测。战略是生意决定逻辑的载体,用 Python 代码来再现。您只须要正在战略中竣工由 RQAlpha Plus 指定的回调函数即可 (周密用法请参考战略引擎 API 文档)。
然则现正在并不须要急着去钻研战略引擎的细节,咱们曾经为您计算好了几个直接能运转的战略。请您用cd号令切换到您愿望安置样例战略的目次,然后运转下面的号令:
该号令会正在暂时目次下创筑一个名为 exmaples 的目次,其实质如下图所示:
您可能用习用的 IDE 或者编辑器掀开这些 Python 源码文献来查看代码,这里枚举了少少常用的战略写法,以便您急迅上手战略编写的 API。
咱们现正在以buy_and_hold.py战略为例,轻易批注一下战略的几个组成局限。当然您也十足可能跳过下面的代码批注,直接到下一个闭键,先看一下回测引擎能对战略做哪些阐述,输出了哪些数据。
# 顾名思义,这是一个“买入并持有”的轻易战略。正在这个战略里,咱们将正在战略开端时买入安好银行,并持有到战略完结。
# 正在这个技巧中编写任何的初始化逻辑。context对象是由引擎修建并传入的,这个对象内在了闭于全盘战略的音信,
# 正在这里界说了一个好似“全部变量”的变量。由于这个context对象实例会涌现正在其余回调中,于是正在其余函数中
# 告诉引擎该战略的股票池包括了什么股票,正在这里股票池惟有“安好银行”一个,您还可能传入一个列外或一个
# 创筑一个变量,用来判别是否曾经推行过买入操作。由于行情会接续触发回调,于是须要战略自行判别是否
# 日记会直接打印正在号令行(圭表输出)中,您可能通过将输出流转发到文献的办法将日记保留下来。
# 这个回调模仿的是每个生意日开盘前愿望推行的少少操作,比方对昨天收盘后的状况做少少解决来引导这日的生意,
# 这是前面提到的行情解决回调,也是全盘战略的主题局限。行情是以K线的办法传入的,每当战略收到一个新的行情
# (正在回测的状况下,便是下一个时辰单元的K线计算好)时,这个函数就会被触发一次。
# 除了context变量除外,bar_dict便是含有行情音信的一个字典构造,它的key是合约代码,值是引擎内界说的
# Bar构造,包括了常睹的开盘价、收盘价、最高最低价等音信,详细寓意可能参考下面的链接:
# 咱们先判别买入的逻辑是否曾经触发过,假使没有触发过,诠释是第一次收到行情,那么就举行买入
# order_percent而且传入1代外买入该股票而且使其占领投资组合的100%
# 好似前面的before_trading,这个回调函数模仿了每个生意日收盘后须要举行的少少解决。
到这里,您曾经计算好了运转回测所需的完全条目,可能计算运转回测了。咱们仍旧以前面提到的buy_and_hold.py——一个轻易的买入并持有战略为例。
和-o号令来分裂输出csv方式的通知和pickle方式的 Python 内存序列化文献。更众的装备参数可能通过下列号令查看:rqalpha-plus run --help
至此您曾经结束了完全 RQSDK 的装备流程,并运转了一个战略。这里总结一下几个闭头的号令,假设您曾经装备了知足条目的 Python 情况,实在安置 Ricequant SDK 瑕瑜常轻易的。
(opens new window)得到安置指引。下面扼要列出 Miniconda 的安置步调(细心:本章所述的效力只实用于大大都用户。假使您已对 Anaconda 很是熟识,或者已有习用的情况,十足可能不按本章节所述技巧装备情况):#下载 Miniconda
,或C:\ProgramData\Miniconda3,可正在安置历程中手工更改)。将下列值逐一增加到Path情况变量中(细心正在实践操作的光阴根据您的实践安置状况来更改目次):
Python 虚拟情况是 Python 供给的一种依赖统治办法,它许可您正在统一台电脑上运用分别版本的 Python、分别版本的依赖来拓荒分别的序次。情况之间彼此独立,互不插手,还可能任性切换。
等)就都只会影响这个虚拟情况了。假使要退出虚拟情况,可能直接正在情况激活的形态下运转conda deactivate号令。
本节仅以 Windows 10 体系为例,更众闭于怎样运用 conda 号令统治虚拟情况的实质可能参考conda 官方文档——情况统治
激活您的 Python 虚拟情况,然后运转conda install python=3.9来安置最新的 Python 到该虚拟情况。#中邦境内安置加快计划pip 默认下载源供职器正在外洋,从中邦境内拜候速率会比拟慢。保举正在全部畛域内更改默认 pip 下载源到邦内的清华镜像,将会对安安装置速率有很是鲜明的擢升,
PyCharm 行为 IDE(集成拓荒情况),自带 python 外明器和虚拟情况统治效力,开箱即用。
PyCharm 默认的内置效力极为雄厚(Git、数据库援救、框架援救等),无需手动装备插件便可直接运用。
PyCharm 内置了正在业界无出其右的静态代码审查(code inspect)效力。
假使没有 python 情况 ,编辑器右下角会有进度条提示 python 的安置进度。
若暂时工程装备的虚拟情况中还未安置 RQSDK,可能直接正在 PyCharm 中挪用终端(terminal)安置,PyCharm 会自愿正在改终端激活先前装备好的虚拟情况。
若暂时工程精确装备了虚拟情况,且虚拟情况中安置了 RQSDK,正在 py 文献中输入“import rq”时便可能看到 PyCharm 给出的代码提示
#11. 怎样正在 Apple Silicon(M1)平台的 Mac 上安置 RQSDK?
从 1.4.1 开端,RQSDK 开端供给为 M1 平台原生编译的版本(
(opens new window),并正在该 conda 创筑的虚拟情况中依据寻常的安置流程安置 RQSDK 。如您暂不须要用到 RQOptimizer,且愿望具有更好的推行本能,您可能采用安置 ARM 版本。您只须要安置ARM 版本的 conda
(opens new window),并正在该 conda 创筑的虚拟情况中安置 RQSDK 即可。#版本变卦更新 rqsdk 及闭系产物版本的操作,睹前文更新 sdk 的版本局限的先容。
5. RQAlpha 期货账户 cash 估计有误6. 更新分钟 bundle 卓殊题目7. 期权分裂下单时,总平仓数目可高出持仓数目的题目
2)逾额收益最长回撤延续期(excess_max_drawdown_duration)
2)控制融资买入标的,用户可采用是否开启融资买入标的的控制;当开启控制时,股票账户不成买入融资融券股票列外外的股票
1)rqalpha config 中 matching_type 的默认值改为 None,显示遵照回测频率自愿采用
4)成交市值控制:用户传入暂时可用资金或初始头寸,举行成交市值占总市值百分比的拘束
2. 优化了 tick bundle 的下载本能和存储空间占用1. 修复了正在成立初始化持仓后举行分钟、tick 回测时报错的题目
转载请注明出处。