回测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.COMEX黄金期货:一分钟成交647手1.77亿交易期货合约主力合约【COMEX 黄金期货合约成交量出现异动】COMEX 最活跃黄金期货合约在 12 月 11 日 12:35 - 12:36 这一分钟内,买卖盘面瞬间成交 647 手,交易合约总价值达 1.77 亿美元。具体可参考“数据库 - COMEX 黄金期货实盘成交量”。 Notice: The content above (including the pictures and videos if any) is uploadedhttps://www.163.com/dy/article/JJ4NVAP90519D4UH.html
2.COMEX黄金(GC00Y)行情中心最近访问:COMEX黄金 国际国内 交易所 品种 合约 查询 COMEX黄金GC00Y(2024-12-12 21:58:19)交易所:CME金属期货 期货行情外汇行情黄金期货COMEX黄金吧 2729.7 -27.0-0.98% 成交量:9.673万今开:2753.6最高:2761.3涨跌幅:-0.98%外盘:4.813万仓差:0 持仓量:37.35万昨结:2756.7最低:2728.5涨跌额:-27.0内盘:4.860http://quote.eastmoney.com/globalfuture/gc00y.html?_t_t_t=0.04864205463618321
3.年度报告:2008——2009年度国内黄金市场解析根据上海金交所AUT+D2008年交易数量和成交金额的统计来看,上半年,国内黄金交易情况紧跟国际市场现货黄金价格变化,呈现价格上涨,交易活跃;价格下跌,交易清淡的特点。 下半年,随着国际现货黄金价格调整幅度的加深和金融危机影响的逐渐扩散,市场对黄金需求热情明显增加。成交量下半年高于上半年29.16%,成交金额下半年高于上半年http://money.sohu.com/20090120/n261859414.shtml
4.现货黄金成交量实时数据统计分析报告:揭秘黄金市场走势与交易热度拳头往外打,胳膊往里弯。只有胳膊往里弯,拳头往外打才有空间和动力。股价下跌,实际上是为将来的https://www.55188.com/thread-27102532-1-1.html
5.OMETAL,长江现货有色OMETAL,上海有色金属行情,上海金属报价,上海上海期货交易所 伦敦期货(LME) 上海黄金交易所 纽约期货(COMEX) 开盘 收盘 库存 持仓 成交量 铜 铝 铅 锌 锡 镍 金 银 铂 钯评论分析导航 更多 早报 早评 晨会 午报 午评 晚报 机构看盘 周评周报 月报 综述 套利追踪 持仓分析 LME展望 LME报道 CMX报道 路透观点 金瑞期货 实达期货 现货综述 曼氏http://ometal.com/
6.现货黄金价格走势图策略分析先看“势”现货黄金交易分析在现货黄金投资市场,对金价走势图的趋势进行分析,是投资者做出明智决策的关键步骤。通过有效的趋势分析,投资者可以更好地预测市场的走向,从而制定相应的交易策略。本文将详细介绍如何分析金价的趋势,并探讨这种分析方法在实际交易中的应用。 首先,理解趋势图的基本构成是至关重要的。趋势图通常包括价格的走势、成交量、https://blog.csdn.net/sino_sound/article/details/142824751
7.黄金黄金投资黄金交易现货黄金短线操作建议:收敛突破,震荡上行,逢低吸纳①分析理由:日线突破收敛压力,避险情绪有所升温,同时美联储12月降息预期升温,美元依然维持在区间运行之中,支撑金价向上走强② 重点关注:美国CPI数据,美联储12月降息预期变化③ 阻力:2675.00,2688.00,2696.00 ④ 支撑:2650.00,2642.00,2630.00; 13:10 花旗看跌明年油https://gold.fx678.com/?category_id=4003973
8.黄金交易市场(精选十篇)黄金交易市场 篇1 2010年7月, 为促进黄金市场健康发展, 进一步完善金融市场体系, 发挥黄金市场在促进黄金产业发展中的重要作用, 中国人民银行、发展改革委、工业和信息化部、财政部、税务总局、证监会联合发出《关于促进黄金市场发展的若干意见》 (银发【2010】211号) (以下简称“意见”) , 虽然它以意见的形式出现https://www.360wenmi.com/f/cnkey3wg229e.html
9.黄金期货数据显示,当日黄金期货成交较活跃。截至收盘,共有9个合约成交,共成交54686手,成交额188.01亿元。 运行特点 编辑本段 运行特点:黄金期货6月和12月黄金期货相继成为主力合约(如图,白银期货也有类似特点)。 上海期货交易所,黄金期货品种上市后,逐渐形成了6月和12月黄金期货合约交替成为主力合约的特殊情况,截至2013年12https://www.qwbaike.cn/doc-view-6447.html
10.新手必看的现货黄金入门教程.pdf新手必看的现货黄金入门教程.pdf,如果对你有帮助,请下载使用! 现货黄金投资入门知识 现货黄金 (也叫国际黄金和伦敦金 )是即期交易,指在交易成交后交割或数天内交 割。 通常也称现货黄金是世界第一大股票。因为现货黄金每天的交易量巨大,日交易 量约为 20 万亿美元。因此https://max.book118.com/html/2021/0602/8077003100003105.shtm
11.上海金属网权威金属资讯门户【黄金/白银持仓量】截止9月13日,全球最大黄金ETF--SPDR Gold Trust持仓较上日减少0.27吨,当前持仓量为870.51吨。全球最大白银ETF--iShares Silver Trust持仓较上日增加29.8吨,当前持仓量为14575.29吨。(文华财经) 09:18 展开 【9月16日《人民日报》主要内容(3/3)】 10、绿色服贸,低碳理念深入人心(走进服https://www.shmet.com/
12.国际现货黄金国际现货黄金又叫伦敦金,因最早起源于伦敦而得名。伦敦金通常被称为欧式黄金交易。以伦敦黄金交易市场和苏黎世黄金市场为代表。投资者的买卖交易记录只在个人预先开立的"黄金存折账户"上体现,而不必进行实物金的提取,这样就省去了黄金的运输、保管、检验、鉴定等步骤。其买入价与卖出价之间的差额要小于实金买卖的差价https://baike.sogou.com/v8037867.htm
13.2014年黄金价格走势分析财经信息2014年黄金价格走势分析 前言 2014年国际黄金价受多方面因素的影响,起伏较大,但是涨幅乏力,仍然没有脱离2013年的颓势。 伦敦金(以下简称现货金)是由伦敦国际金融期货交易所提供的一种交易产品,2013年12月31日收盘报每盎司1,201.13美元;COMEX期金是纽约商品交易所(NewYorkCommodityExchange,Inc.)(以下简称美国期金)http://pystj.puyang.gov.cn/show.asp?id=384
14.黄金期货与现货价格之间的相关性研究古董,乱世黄金 ,说明了黄金抵御风险的作用强大三黄金期货的成交量和成交金额都在大幅稳步提高,规 模也在不断增大,随之而来的便是问题,其中最为重要的便是风险问题三于是乎,研究黄金现货与黄金期货之间存在的联系与相互影响作用便成为一个热门话题三由于任何期货对于其现货都有相对的影响,所以某些投资者和金商能够https://wenku.baidu.com/view/7f3c289a6237ee06eff9aef8941ea76e58fa4ade.html