回测RicequantDocs

您可以点击右上角的clone按钮复制到自己的策略列表中进行修改和测试,非常简单。

需要注意,您在首次创建策略的时候需要指定策略交易的品种(股票,期货,或者两者混合)。需要注意,一旦策略创建完毕,交易品种将不能变更。

策略算法编辑页面是运行回测的入口,如下图所示:

您可以在策略编辑页面中进行以下参数的设置:基础参数:

高阶设置:

在设置完回测参数之后,您可以点击'编译策略'来对策略进行编译,发现其中是否有错误;或点击'运行回测'直接运行回测。两者的区别如下:

点击"运行回测"将会带您进入完整的回测结果页面。如果您的策略有编译/运行错误,您将会被停留在改编辑页面以让您先解决问题。

您可以在编写策略时通过以下方式初始化设置自定义参数:

define_parameter('param1','float',1.3,'comment1')define_parameter('param2','int',10,'comment2')define_parameter('param3','bool',True,'comment3')define_parameter('param4','str','test','comment4')definit(context):#通过p这一关键字获取对应自定义参数logger.info(p.param1)logger.info(p.param2)logger.info(p.param3)logger.info(p.param4)defbefore_trading(context):passdefhandle_bar(context,bar_dict):passdefafter_trading(context):pass

平安银行的价格在2015-04-10为19.80,在除权除息以后的2015-04-13价格变为16.54,如果什么也不做,就会导致K线上的价格在2015-04-13突然降低,复权的作用就是为了让股价连续,消除价格和指标的走势畸变。

常见的复权机制有前复权和后复权。前复权就是保持现有的价格不变,将以前的价格缩减,在K线上的表现就是将除权除息日之前的K线向下移动;后复权就是保持先前的价格不变,将以后的价格提高,在K线上的表现就是将除权除息日之后的K线向上移动。

为了解决这一问题,米筐回测使用的数据采用了“动态复权”方式,以策略回测当前日期为基准进行前复权。用同一个例子来说明:回测2016年-2017年,数据会使用策略回测当前日期(即2017年)的复权因子进行前复权,这样就可以排除未来数据的干扰。更加直观的图像如下图所示:

目前米筐的API提供两种不同的获得历史数据的方式:history_bars();get_price()。其中history_bars()返回的是动态复权的数据;get_price()返回的是前复权的数据,您可以根据自己的需求选择不同的方法。

您可以在策略编辑页面"更多"选项下进行基准合约的设置,基准合约可以设置为空。在初次创建策略的时候,包含股票的策略默认基准合约都是沪深300指数000300.XSHG;单独期货策略默认没有基准合约。

在进行期货交易时,您可以通过设置保证金倍率来进行保证金的调整,这一倍率需大于0。

调整依据基准是交易所规定的最低保证金比例,可以通过instruments这一方法查询到。您可以在策略编辑页面"更多"选项下进行保证金倍率设置。该设置在单一股票类型策略中不会出现。

在新版策略框架中,原有通过context.commission设置佣金费率的方式已经被废弃,不再生效。您需要在策略参数高级设置界面中进行佣金倍率的设置,1即代表为默认佣金费率的一倍。该倍率不会影响最低佣金以及印花税的收取标准。

备注系统支持在策略代码中按照期货合约品种自定义佣金费率和平今费率(此设置在模拟交易中同样生效):

__config__={"base":{"future_info":{#期货品种"SC":{#平仓费率"close_commission_ratio":0.0001,#开仓费率"open_commission_ratio":0.0002,#平今费率"close_commission_today_ratio":0,#BY_MONEY为按照名义价值收取,BY_VOLUME为根据成交合约张数收取"commission_type":"BY_MONEY",}}}}期权交易费用收取方式和期货类似,初始默认费率表如下请参考:

交易费用参考上金所交易条款,初始默认费率,如下请参考:

在最新的版本中,我们加入了允许用户自定义撮合机制的功能。您可以在策略编辑页面"更多"选项下选择不同的撮合机制。目前提供的撮合方式有以下三种:

1.当前收盘价。即当前bar发单,以当前bar收盘价作为参考价撮合。

2.下一开盘价。即当前bar发单,以下一bar开盘价作为参考价撮合

3.已方最优。tick回测专用[仅限期货],市价单将以己方最优报盘价格成交(无己方报盘时以最新价成交)。

4.对手方最优。tick回测专用[仅限期货],以发单时下一个tick对手方最优报盘价格作为参考价撮合成交(无对手盘时以最新价作为参考价)。

5.最新价。tick回测专用,市价单将以最新价成交

一个完整的撮合机制需要包括两个方面:参考价与投资者在下单时的委托方式。投资者可以选择的委托方式包括有限价单和市价单。限价单(LimitOrder)如果买单价格>=参考价,或卖单价格<=参考价,以参考价加入滑点影响成交。市价单(MarketOrder)直接以参考价加入滑点影响成交。

对于分钟回测与日回测来说,默认成交数量都不超过当前bar成交量的25%。一旦超过,市价单会在部分成交之后被自动撤单;限价单会一直在订单队列中等待下一个bar数据撮合成交,直到当日收盘。当日收盘后,所有未成交限价单都将被系统自动撤单。您可以在策略编辑页面"更多"选项下进行是否开启限制成交量,以及开启之后成交百分比的设置。对于tick回测来说则没有成交量的限制。

所以在“下一开盘价”的撮合方式下,handle_bar内发单之后立刻通过cancel_order对该订单进行撤单操作,是一定会撤单成功的。但在“当前收盘价”的撮合方式下则很可能撤单失败,因为“当前收盘价”中下单之后立刻撮合成交。

需要注意

举例来说,策略A设置每周一开盘进行调仓操作,先卖后买。那么,以下这种方式在分钟回测中无法实现卖出资金立刻释放的(在开启验资的风控情况下,可能导致后面的买入操作因资金不足而拒单):

#scheduler调用的函数需要包括context,bar_dict两个参数defrebalance(context,bar_dict):order_shares('000001.XSHE',-100)order_shares('601998.XSHG',100)definit(context):scheduler.run_weekly(rebalance,weekday=1)有如下几种情况无法完成下单:

另外需要注意的是,如果当时市场处于涨停或跌停这种单边市情况,买单(对应涨停),卖单(对应跌停)是无法成交的。尽管bar数据中可能成交量不为0.判断单边市的标准我们采用的是:当前bar数据的收盘价等于涨停价,则当前市场处于涨停状态。跌停也是类似处理。

为了更好模拟实际交易中订单对市场的冲击,我们引入滑点的设置。您可以在策略编辑页面"更多"选项下进行滑点设置,该设置将在一定程度上使最后的成交价"恶化",也就是买得更贵,卖得更便宜。目前支持的滑点类型有百分比和跳/手,百分比:按照成交价的一定比例进行恶化,取值范围[0,1),例如,当股票市价为10元,参数设为0.1,则回测时买入价为10+10*0.1=11元;跳/手:按照最小价格变动单位对成交价进行恶化,例如,上例中设置值为5,最终成交价将变成10.05

注意,滑点默认为0,原有的默认0.246%的滑点值以及通过context.slippage设置的方式被废弃。

开启该功能之后,策略回测完毕将会在回测详情页面的"性能分析"选项卡下查看策略运行性能报告。需要注意的是,开启该功能将会导致策略运行效率的下降。

在回测中您无须担心拆分对股票价格带来的影响因为我们已经在数据的预处理中准确地帮你做了这个工作。

在股息事件中有四个关键的日期:

1.方案实施公告日:公司公布股息分配方案的日期。

2.股权登记日:在股权登记日这一天收盘时仍持有或买进该公司的股票的投资者可以享有此次股息分红。

3.除权除息日:股权登记日的下一个交易日即是除权除息日,该日证券交易所会计算出股票的除权除息价,以作为投资者在除权除息日开盘的参考。

4.股息到帐日:现金股息划拨到投资者资金账户的日期。

当您的投资策略在股权登记日时仍持有分股息的股票,那么您的投资策略将有资格参与此次股息分红。在除权除息日结束的时候您投资组合中的DividendRecivable会增加对应持有股票的股息分红数目。然后在股息到帐日那天DividendRecivable将会被搬入投资组合中的AvailableCash-您最终拿到了应收股息分红的金额,并且可以用这笔钱进行再投资了。

红利再投资俗称利滚利,是指基金进行现金分红时,基金持有人将分红所得的现金以当天基金价格直接用于购买该基金,增加原先持有基金的份额。

开启该功能以后,基金分红将按照当日净值折算成基金份额。

通常可以通过日志来了解程序的行为,或者用日志类解决程序中暗藏的问题。同样的,您也可以在您的策略中通过日志来协助开发与调试策略。

譬如,您希望在第一个交易日打印一条日志,把这一天发单的情况打印出来。为了实现这一功能,您只需如下图所示在代码中调用日志类即可:

需要注意,回测中系统只会保存开始的10000条记录,多出的信息将无法被保存。在实盘模拟中,每天的日志上限是1000条。

支持股票、期货、期权、可转债、场内基金合约的日/分钟/tick级别的回测,上金所现货日级别回测。不同品种的标的在发单接口、费用计算、账户和仓位计算等方面有所差异。

支持A股和ETF、LOF等场内基金回测

支持期货回测

支持商品、股指、ETF期权回测(需开通量化企业版)。

支持可转换债券、场内公开交易的可交换债券、分离交易可转债(债券等)的回测(需开通量化企业版)。

支持上海黄金交易所交易的黄金、白银、铂金等现货合约的回测(需开通量化企业版)。

当您输入了这个组合键之后,Ricequant在线IDE就会进入股票代码搜索和自动完成模式,接着您可以输入任何一种进行搜索和自动补全:

如果您创建的是单一的期货策略,则必须在策略初始化的时候订阅(subscribe)有效期货合约。由于期货有到期日,所以您需要保证在回测期间,始终都有正在交易的合约被订阅。

您可以通过在'我的策略'下点击'向导式策略生成器'来通过向导式生成策略,如下图:

您可以通过选股设置实现投资域的筛选,并利用各类指标设置选股条件,最后对选出的股票进行排序。界面如下图:

该部分不仅支持不同股票池的偏好设置,还支持板块、行业、ST股这三个细分投资域的偏好设置。

界面左边是米筐提供的所有指标的展示区域,右边是您所选择指标的设置区域。基于购物车理念,您可以更加方便地对您选择的指标进行参数调整,界面如下图:

您可以通过点击选择指标,所选出的指标会右边“我的指标”中展示,并进行相应的设置。选股指标包含五个分类,具体详情如下:

其中,财务指标与财务数据的差异为,财务数据是原始数据,财务指标是基于财务数据得到的指标。

可用于排序的指标有四类,分别为行情指标、技术指标、财务指标、财务数据,比选股因子少了形态指标。

您可以利用选股指标对股票池粗筛选出的股票进一步进行筛选。您可在选股条件部分对选股指标的数值范围进行设置,如下图:

您可以在该部分进行如下功能的设置:

其中,对于技术指标,您可基于自己的偏好调整其对应的参数。

为了支持更多个性化规则,您也可以点击“添加自定义规则”,通过比对两个指标的数值大小,筛选出符合您条件的股票。

对于您筛选出的股票,您可以从排序指标中选出用于排序的指标,在排序条件部分对所选指标进行升序或降序的处理,并赋予不同的权重,从而实现对股票的排序。对于技术指标,您可以对其参数进行偏好设置。如下图:

您可以在模型选择中设置您策略所需要的模型,米筐提供两种模型,分别为定期轮动、条件触发。

定期轮动为定期调仓交易模型,您可以基于选出的股票,设置调仓周期、最大持仓股票数量。该模型会定期在调仓日卖出不符合选股条件的股票,等权买入符合条件的股票。界面如下图:

对于条件触发模型,您可以设置买入条件、卖出条件。界面如下:

区别于定期轮动模型,条件触发模型将调仓周期分为了三个周期,分别为选股周期、买入周期、卖出周期。

买入条件:

您可以在买入条件设置选股周期、买入周期、最大持仓股票数、个股最大持仓比重,同时可以通过对行情、技术指标、财务指标、财务数据、形态指标设置买入条件。这部分提供的指标及指标设置情况可参考选股指标、选股条件。

卖出条件:

您可以在卖出条件设置卖出周期,同时也可设置行情、技术指标、财务指标、财务数据、形态指标。这部分提供的指标及指标设置情况可参考选股指标、选股条件。

您可以在“风险控制”部分对策略的风险进行设置。风险控制支持对止盈止损、大盘择时(开仓)、大盘择时(平仓)的设置。如下图:

风险控制可以实现对用户策略的整个过程风险的全面控制。在开仓前,可以通过大盘择时来判断是否买入;在买入后,可以通过止盈止损和大盘择时(平仓)实现事后风控。

您可以在“策略回测”部分对回测的参数进行相应的设置,如下图所示:

可以设置的参数如下:

在设置完回测参数之后,可通过‘保存'按钮来保存您的所有设置;点击"运行回测"将会带您进入完整的回测结果页面,您可以查看更加详细的策略回测分析结果,帮助您对策略的表现实现更细致的评估。

当回测运行没有出错,回测结果页面将会载入您的投资组合的各种交易、盈亏和风险信息。

下图是回测结果的介绍:

回测收益率:策略在期限内的收益率。

基准收益率:相同条件下,一个简单的买入并持有基准合约策略的收益率(默认基准合约为沪深300指数,这里假设指数可交易,最小交易单位为1)。

每日收益率:通过投资组合权益计算出的日收益率。

最大回撤(maxdrawdown):在回测期内,在任一交易日往后推,策略总权益走到最低点时收益率回撤幅度的最大值。最大回撤是评估策略极端风险管理能力的重要指标。其计算方式如下:

夏普率(sharperatio):衡量策略相对于无风险组合的表现,是策略所获得风险溢价的度量——即如果策略额外承担一单位的风险,可以获得多少单位的收益作为补偿。

索提诺比率(sortinoratio):衡量策略相对于目标收益的表现。其使用下行波动率作为风险度量,因此区别于夏普率。在目前的计算中,我们使用无风险组合收益作为目标收益,以此作为区分向上波动和向下波动的标准。

信息比率(informationratio):衡量策略相对于市场基准组合的表现。一般用于评估纯多头的主动交易策略(包括阿尔法策略和基准择时策略)。需要注意的是,信息率不适用于多-空结合的对冲策略的表现评估。

在我们提供的三个风险调整后收益指标中,信息率用于评估投资组合相对于市场基准组合的表现,一般适用于纯多头的主动交易策略(包括阿尔法策略和基准择时策略);夏普率用于评估投资组合相对于无风险组合的表现,一般适用于多-空结合的交易策略(例如市场中性策略或配对交易策略),或没有公认市场基准组合的投资品种的交易策略(例如期货CTA策略)。

索提诺比率使用下行波动率作为风险度量,因而有别于信息率和夏普率。下行波动率区分了收益向上波动和向下波动两种情况,并认为收益向下波动才代表风险。因此,索提诺比率的优点,在于其使用的风险度量更为切合我们实际投资中面对的风险;而其缺点则是不如信息率和夏普率常用,认知度较低,且其目标收益(区分收益波动是向上还是向下的标准)的设定是任意的,并不依赖于任何基准组合(不同于信息比率)。因此,在横向对比不同策略或基金业绩时,我们需要使用统一的目标收益来区分向上波动和向下波动。在实际计算中,我们以无风险组合收益作为索提诺比率的目标收益。

THE END
1.博时黄金博时黄金ETF联接C(002611)基金行情新浪财经好基推荐 前海开源再融资股票 加自选 近3月收益 31.05% 购买 咨询 天弘中证电子ETF联接A 加自选 近3月收益 33.88% 购买 咨询 沪深股票、基金、债券、港股、美股、国内期货、外汇、黄金等行情,除有特别标明外,均为实时行情;其他行情至少延时15分钟。新浪财经免费提供的行情数据以及其他资料均来自合作方,仅作为http://finance.sina.com.cn/fund/quotes/002611/bc.shtml
2.COMEX黄金(GC00Y)行情中心提供COMEX黄金(GC00Y)股票的行情走势、五档盘口、逐笔交易等实时行情数据,及COMEX黄金(GC00Y)的资讯、公司公告、研究报告、行业研报、F10资料、行业资讯、资金流分析、阶段涨幅、所属板块、财务指标、机构观点、行业排名、估值水平、股吧互动等与COMEX黄金(GC00Y)有关的信https://quote.eastmoney.com/globalfuture/GC00Y.html
3.慕课网Git代码托管平台代码仓库 高性能远端 Git 仓库 提供安全稳定的代码存储环境 分支管理 便捷的分支管理、保护功能 代码审查 清晰的代码提交历史 分列视图代码逐行对比体验 任务系统 完善的任务管理、问题跟踪 合并请求处理过程,仓库协作者 协同开发 文件支持 支持多种格式在线预览 https://git.imooc.com/
4.股城股票行情002813路畅科技25.71-0.38-1.50% 300556丝路视觉33.73-0.47-1.41% 603596伯特利84.060.050.06% 002847盐津铺子74.410.761.01% 603676卫信康10.27-0.18-1.78% 300658延江股份12.03-0.19-1.60% 601858中国科传9.02-0.20-2.27% 603157*ST拉夏1.830.010.54% 603916苏博特28.31-1.37-5.09% 002806华锋股份13.890.100.71% 300565科https://hq.gucheng.com/
5.黄金股(517520)历史行情股票行情中心行情图表 实时行情推荐 成交明细 分价表 历史行情 基金资料 净值分析 十大重仓股 基本资料 主要财务指标 黄金股(517520) 2024-11-19 15:00 实时行情 成交明细 分价表 历史行情 龙虎榜数据 从至按日按周按月 日期开盘收盘涨跌额涨跌幅最低最高成交量(手)成交金额(万)换手率 https://q.stock.sohu.com/cn/517520/lshq.shtml
6.上市公司查询上市企业信息查询企业股票代码查询企查查是官方备案的企业征信机构,为您提供全国企业信息查询,包括企业工商信息查询,信用信息查询,经营状况查询等相关信息。查企业,查老板,查风险就上企查查!http://ipo.qichacha.com/
7.中国黄金股票的代码导读:中国黄金股票的代码是600489。黄金股票是黄金投资的延伸产品,又叫黄金的纸上交易,现在基本上以黄金实物交易,黄金股票交易,黄金现货交易为主。 在财经领域,中国黄金作为贵金属行业的佼佼者,其一举一动都牵动着市场的神经。对于,这是一个基础且关键的信息点。 https://www.9218.com/gupiao/14122.html
8.黄金有哪些股票代码理想股票技术论坛想要了解黄金投资的人们常常会关注黄金股票代码,通过投资黄金行业股票来参与黄金市场的波动。在金融市场中,有一些特定的股票代表着黄金产业,是投资者追逐黄金投资机会的重要标的。在选取黄金股票时,比较关键的指标包括股票的估值水平、公司的盈利能力、行业背景等。通过https://www.55188.com/tag-3026398.html
9.中国黄金的股票代码是多少?股票知识问答中国黄金的股票代码是600489。中国黄金是中国黄金集团有限公司的简称,中国黄金集团有限公司的主要业务涉及有色金属的勘察设计、资源开发、冶炼、加工、贸易;辐照加工业和相关工程技术服务等。中国黄金是集地质勘探、矿山开采、选矿冶炼、产品精炼、加工销售、科研开发和工程设计与建设于一体的综合性大型矿业公司。 0 0 进入https://www.51credit.com/wenda/855613.html
10.美国黄金股票的代码以及黄金股票的走势在美股市场,黄金股票的走势一直很平稳,前些年由于原油价格下降,很多依靠能源为主的经济城市和国家经济水平下降,例如加拿大的卡尔加里(公寓),这个城市的经济下降最多,但是,就在国际经济市场不景气的情况下,黄金的价格并没有下降,而且黄金的成交量也逐年上升,马克思说,黄金天然是货币。黄金具有价值,不会随外部自然环境http://www.beimeigoufang.com/newsd/newsdetail_378713.html
11.educoder:Python初探(六,七,八)print("黄金价值{:.2f}".format(jz)) 第7关:股票代码判断 任务描述 证券代码采用6位数字编码,编码规则定义如下: 编写程序,根据用户输入的6位股票编码判断其所属的版块。若代码不符合以上规则,显示错误编码。要求能循环输入判断,直到用户输入000000为止。 https://blog.csdn.net/weixin_62174595/article/details/126622150
12.股票代码查询股票代码查询一览表金投股票如何查股票代码?股民如果是在网上交易,打开股票软件的界面,键盘输入这个上 比亚迪股票代码多少 比亚迪股份在内地和香港都有上市,因此有两支股票代码,分别是:A股:002594( 什么是股票代码 股票代码用数字表示股票的不同含义。股票代码除了区分各种股票,也有其潜在的 3 01股票代码查询https://stock.cngold.org/zt/gpdmcx.html
13.赤峰黄金(股票代码:600988)赤峰黄金(股票代码:600988) 赤峰黄金(股票代码:600988)公布赤峰黄金2024年半年度报告摘要。https://www.360doc.cn/article/70951250_1132780878.html
14.赤峰黄金(股票代码:600988)赤峰黄金(股票代码:600988) 赤峰黄金(股票代码:600988)公布赤峰黄金2024年半年度报告摘要。http://www.360doc.com/content/24/0831/13/70951250_1132780878.shtml
15.股票代码里边的黄金一眼识别垃圾股!股来自财经擒龙者股票代码里边的“黄金”一眼识别垃圾股!股票代码600、601或者603开头,是沪市主板688开头是科创板00开头是深市主板(去年4月6日后,中小板和主板合并)30开头则是创业板股票名称加一个“次”字,说明上市不到一年加N,表示当天上市的新股加C,表示刚上市不到5个交易日加U,表示公司虽然上市,但还没有盈利,是亏损状态,注https://weibo.com/3738223382/MrKAgbv7z
16.中国黄金(600916)股票行情,行情首页中财网提供中国黄金(600916)实时行情动态分析,全面报道中国黄金(600916)基本资料及重大新闻、行业资讯,浏览中国黄金(600916)财务数据、行情数据,公司公告,重大事件。https://quote.cfi.cn/600916.html
17.金叶珠宝·股票代码:000587官网品牌介绍:金洲慈航集团股份有限公司(股票代码:000587)始创于1994年,旗下子公司金叶珠宝集团,是一家集黄金珠宝产业链的上市企业,业务涵盖研发设计、加工制造、批发零售、品牌加盟及电子商务、黄金金融等。2011年8月18日,金叶珠宝通过*ST光明家具(股票代码:00[全部] http://www.sczw.com/brand-50861/
18.华夏中证沪深港黄金产业股票ETF(159562)基金主页,基金净值,收益率标签:ETF关联基金:博时黄金ETF易方达黄金ETF 华夏中证沪深港黄金产业股票ETF重仓股数据 股票代码股票名称持有份额(万股)仓位比例涨跌 600547山东黄金0.000011.82%-2.26% 601899紫金矿业0.000011.55%-1.33% 600489中金黄金0.000010.20%-2.61% 600988赤峰黄金0.00007.74%-2.38% https://www.dayfund.cn/fundinfo/159562.html
19.股票代码,股票名查询股票行情中心证券之星行情中心股票代码查询,股票名称查询,股票代码股票名称对照查询,包括沪A/沪B,深A/深B,权证代码名称和股票代码名称对照一览表,马上了解!https://quote.stockstar.com/stock/stock_index.htm