RiceQuant米筐量化交易平台。深圳米筐科技有限公司致力于打造亚太区最出色的量化交易平台,在我们的平台上,您可以使用我们提供高效的工具和准确的数据去构造您的策略,并进行回测以及优化,而无需担忧基础架构及数据质量问题。

常见问题

我们希望这个页面可以回答您的大部分的疑问,包括从我们这个平台是在做什么,到技术,到数据。如果您的疑问不在下面的回答中,请不要犹豫立刻发邮件:给我们。如果您想看策略编程细节,请参考:API文档


Ricequant在做什么?

Ricequant平台是亚太地区第一个提供可以在浏览器里面做量化、算法回测以及以后可以做分析和实盘交易的平台,注册登录即可使用。在我们的平台上,您可以编写简单的分析、交易代码运行投资策略,而不需要手动落单并且受到情绪的影响。我们坚信人人皆可为宽客(Quant),通过自己编写的策略进行投资收益。

您可以这样使用Ricequant,其中斜体部分表示即将会推出的功能:

  1. 高质量的数据 - 我们每年投入近百万用于数据购买、加工和存储上。每天收盘以后做自动化清洗和处理提供最好的数据给用户。
  2. 便利的研究平台 - 我们免费提供在线的IPython Notebook研究平台,提供分钟级别的数据、财务数据和各式各样的其他数据方便进行数据查询和研究,更预先安装了种类繁多的各种Python库。
  3. 顶级回测体验 - 我们支持A股、ETF、LOF和分级基金的回测,包括日和分钟级别的回测,展示结果非常丰富,界面友好,所有数据都会在云端保存和便于读取、分析
  4. 极致的实时模拟交易 - 我们提供最准确、实时的沪深A股、ETF甚至分级基金的实时模拟交易,支持基于tick级别的撮合。
  5. 量化交流社区 - 提供社区给大家分享、讨论,一起成长
  6. 量化交易比赛 - 我们提供完善的提交、排名系统,比赛获胜者我们会投入实盘资金进行奖励和孵化,我们会定期选拔好的策略和宽客进入我们的基金管理项目。也会把优秀的获胜者推荐给私募实习。

我们的团队成员背景有在世界顶尖的交易系统开发公司ORC、巴克莱投行的衍生产品交易组、腾讯云以及百度等工作过,因此我们所做的是一个真实的强大的云端交易、分析平台,所有的API设计都经过了仔细考虑,贴合真实交易市场的应用,我们希望用我们的经验和努力给中国乃至亚太地区带来一个极致体验的云端量化平台和社区。

Ricequant是免费的吗?

我们承诺回测功能和社区都是免费开放给所有人使用。将来实盘交易兴许会收取一点月费用以我们的运营,但是价钱没有最终决定,一开始的Beta版实盘交易也会是免费的。

我的算法是否安全?

你的算法是100%安全的。我们承诺我们会尽最大的努力确保您的宝贵的算法财富保密并且保证他们是安全的。任何用户的算法都是最宝贵的财产,我们非常严肃对待用户的策略安全问题。

有几点简单的承诺:

  1. 我们绝对不会看您的策略,您的策略是在我们的https加密协议下传输至我们的云端并且进行加密保存,只有知道您的密码才可以访问到,而您的密码也是加密处理的。如果有不认识的人号称需要知道您策略,请一定注意防范,除非您需要Ricequant的员工协助debug解决问题,否则我们绝对不会主动向你索要策略代码。

  2. 您的策略单独运行在自己的沙盒中,我们参考了Chrome的沙盒制作机制在linux服务器的最底层隔绝了其他人的策略访到您的策略沙盒的可能性。也意味着您的策略运行与保存在自己的绝对安全和私密空间,具体技术细节可以参见我们的博客的安全技术细节披露

  3. 每年年底我们会邀请外面的审计来我们这里进行IT审计,确定并披露我们是否违反我们所宣称的。

  4. 我们的目标是做好第三方的量化交易平台,我们并不会参与通过交易赚钱,正是我们的角色造成不会去触碰用户宝贵的策略。我们自己的员工除了需要测试需求不会参与实盘交易,如有参与也会公开自己的策略及收益细节。

  5. 您的密码永远以加密形式保存,我们绝不会明文保存密码

谁拥有我的策略?

您拥有您的策略。所有您所编写、创造的东西都归属于您。Ricequant不会占有您的策略、您的研究报告甚至您的数据,但是您自己拥有。

除非您选择公开分享您的策略,比如发布到社区中与他人讨论,那么很明显这将不是一个秘密了,但是您仍然拥有所有权,可以选择随后隐藏不公开或删除掉。

数据?

Ricequant有什么数据?

我们目前提供日级别和分钟级别的A股、ETF、LOF、分级基金、商品期货、股指期货和国债期货的市场数据和400+指标的财务数据,以及各式各样的其他宏观数据甚至是即将发布的电商数据等。从2005年至今有10年。当天的数据在当天收市以后晚上会计算以后上传到我们平台以供大家使用。

日级别和分钟级别的历史交易数据分别有股票成交的最高、最低、开盘、收盘价,以及交易量、交易总额。

历史市场交易数据包括所有的被交易的公司的股票,并且也包括后来已经退市的公司的股票。为了避免幸存者偏差这样做是非常重要的。如果没有完整的数据的话,您的回测中就很难测试出所买的股票破产的情况并且造成的严重损失。

财务数据来自于巨灵财经,我们做了细化的整理而让数据的调用更加便捷,数据的命名更加直观,以及我们制作的各项财务数据的说明,而在我们的平台上可以免费使用。财务数据最早开始于1988年,是深发展的第一份财报,一直到最新的财务数据您都可以调用到,包含了460个不同的指标。

关于实盘模拟交易,我们针对实时行情数据进行大量的优化,内部数据更新速度可以快到 5-7微秒(micro second),我们会将一分钟内收到的成交做一个汇总生成分钟线(Minute Bar)然后发送至您的策略,您的策略在实盘模拟交易中可以享受到最极致真实的模拟和体验,并且从回测到模拟交易基本不需要更改任何的代码。

更多的信息您可以看Ricequant数据部分。

每日的盘后历史数据什么时候更新?

我们有大量的数据,由于数据的来源不同,因此每项数据的更新时间都不同,我们会尽量保证绝大部分数据在每天的8:30以前都处理完毕,能让大家在开盘前使用到昨天的数据更新。

你们支持外汇、期权、期货吗?非A股市场?

目前来说我们支持A股,期货。

但是由于我们以前做过大部分亚太地区交易所的DMA经验,我们从一开始的架构就考虑到了和多市场接轨的可能性,从FIX接口中学习做起了一套同一个API但是可以做到兼容A股、美股、港股甚至期货、期权市场。

开始写策略

如何开始写策略?

  1. 点击这里看到一个简单的基础策略。
  2. 点击右上角的“Clone”按钮讲策略Clone到您自己的算法列单中
  3. 点击“编译策略”按钮,你将会经过短暂的等待看到右侧会显示编译结果是否有错误,如果通过了会有一个收益曲线画出来。您也可以继续按“运行回测”进行完整的回测,看到各项完整的数据指标。
  4. 现在您也可以开始修改代码,尝试把“stockCode”修改成平安银行吧,可以用ctrl + i (windows用户)/ command + i(mac用户)启动搜索和股票代码补全功能。
  5. 点击“编译策略”按钮。您将会开启平安银行的回测。
  6. 就这么简单,开启您的量化之旅吧!

如何开始学习写python?

Python是非常容易上手的并不要求计算机编程科班出身的背景,在知乎上也有著名的Python女神,一位女生没有任何编程背景自学会了Python。而学会这门强大的编程语言也会让你在平时的工作中不在惧怕海量的数据处理,也可以让计算机自动化帮你处理一些事情。我们虽不是一个学习Python编程的网站,但是我们很乐意看到我们整个社区的Python水平提高的。

在Ricequant上写交易和分析策略您并不需要苦涩的计算机底层知识,更多的是学习如何适应神一般的数据处理库比如numpy、pandas等,也可以使用到技术分析的talib,统计方面的statsmodel等。而我们也帮您解决了Python的基础搭建问题,不需要再为什么是UTF-8解码,什么是pyenv环境等问题所困扰,you can just come and coding!

我相信以下的资料可以帮助到大家快速学习和上手Python知识:

关于pandas、talib等库的学习,建议您可以跟随我们逐渐推出的tutorial来学习。

我如何有灵感开始编写策略呢?

我觉得最好的方法是去访问下我们的社区看下已有的别人的分享的策略,亦或是API文档中的范例算法部分

如果你遇到问题,请不要犹豫在我们的社区上面发帖求助亦或是讨论,兴许就会有和你在做类似策略的同伴出来发言一起探讨了。

我不会Python,你们是否会考虑支持R或者Matlab?

我们现在已经全面支持了Python,我们也会在以后考虑R的可能性,但是matlab由于是商业软件,我们不会考虑加入。

不过如果你遇到编程问题,我们很乐意帮助,请不要犹豫在我们的社区发帖。

我可否使用我自己的IDE进行编程?

您当然可以在本地编写代码,但是暂时我们并没有开放我们的Ricequant SDK,因此使用我们的线上IDE效率会更高:我们做了大量的代码自动补全的优化,以及甚至本地IDE都无法做到的股票代码的自动补全等。

如果你实在是无法忍受在线代码编辑器并且深深热爱你的本地IDE,也请不要犹豫email我们,如果需求量比较大我们也会考虑开放Ricequant SDK的接口,当然您还是要编写以后复制黏贴过来到线上运行,否则无法使用我们的免费数据。

回测

回测是如何运算的?

# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):
    pass

# before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):
    pass

每天或者每分钟的历史数据会来驱动您的策略。如果您的策略触发了买/卖单,那么这个买/卖单会在此时被触发发送。另外您是无法获取到当前时间点之后的任何数据的,我们这样做是为了避免前瞻偏差(look-ahead bias)带入您的策略。

分钟回测可以达到多快?

策略编写完成以后一般会开始使用分钟数据进行回测,为了检测涨停板、跌停板等情况是否会造成拒单以及更真实地模拟真实市场,当使用分钟级别的数据的时候往往会遇到耗时很久的问题,而我们专门为此做了自己的时间序列数据库(time series DB),我们也很自豪地在此公布我们的时间序列数据库的性能数字,如果您对我们的时间序列数据库产品感兴趣的话,也欢迎联系我们

这也是为什么我们的回测总是同类型产品中最快和最稳定的。

Ricequant使用什么作为基准组合?

我们目前默认使用的基准-沪深300(csi 300 )很好地反映了中国A股市场的整体走势并且有足够长的时间用于回测,所以我们把它作为平台回测算法的基准参照。同时您也可以随意调整您想要比较的基准策略的标准,如一只股票亦或是ETF。

回测是如何成交单的?

这是一个非常复杂的问题,并且暂时来看没有一个完全正确的方法。如果没必要我们实在不太想在这里细说,但是我们希望整个平台能够更加透明公开才能健康发展... 我们尽力展开谈一下,如您有更好的想法欢迎联系我们提出意见。

我们的回测系统竭尽所能尝试用最贴近真实市场来计算您的策略落单可能造成的真实影响。当你落了一个单并且成交之后,您的落单会对市场造成一定的冲击:买单会驱动价格上扬,卖单会驱动价格下降。这个价格的冲击很大程度上决定自成交单的量和目前的总成交量的比例。而如果您的落单过大,超过了目前这个时间点的所有总成交量,您的落单当然是无法被全部成交的,一般来说在任何一分钟您的落单无法成交超过目前市场上1/4的成交量。我们将这些都做进去了我们的滑点模块,细节您可以看滑点文档

回测中的编译和完全运行有什么区别呢?

简单来说:编译运行的会比完全运行快一些。编译运行的主要目的是让您可以更快地发现自己的一些编程错误亦或是快速检验收益率变化。而完全运行绘画出完整的各种曲线、风险计算以及丰富的落单、仓位细节,甚至还有每个时间段的收益、风险值,您可以通过这份报告自己研究去改进自己的算法。

你们如何跟踪拆分、分红等变化?

在回测中我们采用的是“真实价格”成交,成交价格均为当时实际价格。当遇到拆分与分红时,我们会调整你的总权益和总股本以满足拆分或分红后的情况。 在回测中使用history_bars()调用数据时我们采用了 “动态复权” 方式, 以策略回测当前日期为基准进行前复权。详情请见复权机制

实时模拟交易

模拟交易的作用?

模拟交易的数据与实盘数据是同步的,并且我们会提供实时的模拟撮合服务,因此您可以进一步检验策略的有效性。另外您打开微信通知或邮件通知以后,也可以根据收到的实时通知来进行手动落单达到实盘交易的目的。

模拟交易使用什么数据源?

模拟交易使用的是实时更新的Level-1数据,大概会有3-5秒的延迟。

如何进行模拟交易?

1.首先您需要编写一个策略,然后您会发现提示您需要进行一次完整的分钟回测才可以启动模拟交易:

图片描述

2.运行完一次完整的分钟回测以后,您可以在回测的结果页面直接启动模拟交易:

图片描述

3.或者可以从策略列表页面进行启动:

图片描述

4.启动之后可以在策略列表看到启动了的模拟交易策略的状态:

图片描述

5.启动之后的模拟交易策略需要至少等待第一个交易日启动才会有更新:

图片描述

如何开启微信通知?

1.点击开启微信通知

图片描述

2.弹出微信订阅号的二维码,拿出手机扫码吧:

图片描述

3.扫码成功,将您的微信和米筐信号进行捆绑:

图片描述

4.当产生交易信号以后就会进行实时推送到您的微信端:

图片描述

点击之后更能看到详细的策略表现哦!

如何把实盘模拟交易信号本地拿到?

可以通过我们的github上的rqopen client开源项目以及http的restful API接口实现,将您的实时模拟交易信号拿到本地做自己的实盘交易或者智能投顾交易了!具体的文档说明可见RQOpen文档

研究

研究的作用?

相对于回测,研究模块可以通过Ipython Notebook的工具进行互动式编程,提供更大的自由度,您可以更好的进行数据挖掘和通过对数据的互动验证自己的交易思想,详情可见研究文档。 研究模块支持以下功能:

  1. 互动式编程,实时查看数据调取和运算结果
  2. 支持自定义库
  3. 支持使用matplotlib/seaborn/bokeh等Python库进行画统计图等
  4. 支持Markdown和代码进行混排
  5. 方便的代码补全
  6. Notebook可以分享到社区或者进行下载,方便交流

研究可以使用哪些数据?

免费使用上述提到的所有的Ricequant提供的数据。

研究和回测如何打通?

回测中可以使用get_csv函数拿到研究模块的数据。 您也可以利用我的rqalpha直接在研究中进行回测并调优参数,详情请见Ipython运行回测的三种回测方式

常见错误

我们收集了一些常见的社区反馈的错误,汇集于此,便于日后的查阅:

落单交易量不应该超过当天(该分钟)交易量的25%

这个错误造成的原因是因为我们的撮合引擎只会为你的回测中的单成交当天(日回测)或该分钟(分钟回测)的总交易量的25 %,如果超出这个交易量的话市价单会被拒掉。这个错误不是您的代码或者系统的错误,是因为该股票的市场容量(市场交易量)无法达到,这个是我们无能为力的,从一个侧面也帮忙验证了某些投资标的的市场容量是否能够达到您的投资金额。

目前可以使用限价单 - limit order来解决,限价单的话会在分钟回测进行中帮你一天之内和优于限制价格的成交价的单数进行成交,直到一天结束的时候把该限价单仍旧没有成交完的部分取消掉。

什么样的策略是一个好策略

从策略本身的角度看,好策略应该有清晰的理论背景,思路和逻辑,同时在市场上有一定自适应性。

从回测的结果来看,我们关注较多的通常是相对于基准的回报率,beta值,sharpe值,最大回撤以及策略的收益波动率。由于市场和产品种类的不同,交易的频率和时间的长短,以及策略的性质不同-市场中性,有对冲或者完全单边,回测数据的衡量标准也很难统一定量。比如越是高频,交易时间越短,单位时间内交易次数增多,sharpe值就会增高,反之亦然。所以不能单纯以数据来直接比较两个策略的优劣。

从一个量化对冲基金选择合适策略的角度来看,一个优秀的量化策略应该保持市场中性(市场关联度很低),也就是策略本身的设计要包含对冲部分。其次表现应该具备稳定性,表现在高sharpe和低回撤,最后,单位时间内的交易次数应该保持稳定,空仓时间不宜过长,也不宜过度交易。

以市场中性,中低频率,回测时长数月以上的股市量化策略来说,一个不错的策略的beta绝对值在0.3以内,sharpe在1-1.5以上,回撤和收益波动率都能控制在10%以内。当然,还需要综合考量策略的逻辑、数理和经济学原理,数据并不是唯一的标准。

关于具体的风险数值的描述,您可以参见风险文档部分

关于Ricequant

Ricequant如何收费?

目前Ricequant是免费的,而且我们非常愿意以后都将回测以及普通的模拟交易功能免费开放使用,让大家更容易的实现策略想法,与他人交流。

将来我们会开放实盘交易功能对接券商,我们将会对实盘交易收取合理的费用以维护我们的运营,以便我们可以开发出更强大的功能,提供更多的数据给大家使用,这也意味你们可以使用更强大工具赚钱。

如果Ricequant现在不收费,我们如何研发和运营呢?

我们拿到了源码资本的天使投资。我们使用这笔投资搭建了现在的平台,我们当然也希望以后能转型成一个能够盈利的项目。

Ricequant都有谁在做?

Ricequant由Kangol和Licco最先在业余时间编写了大量核心交易系统代码,他们来自于世界上最早开始做交易系统的公司ORC Software,很多这里的员工也参与建设了Nasdaq、港交所的核心系统,以及很多著名投行、对冲基金的交易系统,他们把业界经验想带给这个平台让所有人使用到便捷、强大的交易系统。

随后也有腾讯云、IBM云计算、新加坡巴克莱投行交易组、百度的多年经验的资深工程师和Quant加入,也有香港中文大学等名校的毕业生加入,还时不时有世界各地(美国、新加坡、日本)留学的博士、硕士加入我们做实习等。

正因为我们多元化的团队组建,才能搭建出一个金融和计算机相结合的云平台。如果您想知道更多,可以在关于我们页面关注我们的Linkedin等。

我可以实盘交易吗?

Ricequant目前支持大同证券一键下单,通过模拟交易信号实时生成订单,一键提交。我们也即将支持更多的券商。

实盘交易已进入测试阶段,我们放出实盘交易功能以后,没有什么可以阻止你实盘交易!去我们合作的主流券商开个户,登录Ricequant,开启你在模拟交易中测试好的策略,开动吧!剩下的交给市场去检验了。

以下是我们的整体架构以及对接数据和交易的图示:

图片描述

Ricequant的后续发展

实时模拟交易、实盘交易,持续地改进更好的在线编辑器、更好的社区环境、更多的数据源、更快的运算速度,我们会努力前行!您也可以关注我们市场更新的首页的roadmap部分。

这是高频交易吗?

不是。云平台做高频交易并不靠谱,就算系统延迟非常快,云服务器和券商之间的网络延迟就已经毁掉了这一切。

但是,我们的平台的核心系统是非常快的,如果部署了单独服务器是可以做高频交易的:

衡量高频交易系统(以及任何实时系统)的指标通常有两个,一个是延时,一个是吞吐量。延时指标在高频交易中主要就是指两方面,一个是解析交易所行情并转化为系统能理解的格式所花的时间;另一个是当策略引擎收到这个行情时到做出的反应(发出订单)被送上网络的时间。吞吐量也有两方面,一个是指每秒能解析多少次交易所行情更新,另一个是策略每秒钟最多能对多少数量的行情做出反应。 在我们的系统中,解析交易所行情最多花费10微秒左右,策略引擎的反应时间在50微秒左右,整体的系统内延时(从行情到达内网到订单离开内网)可以做到150~200微秒左右(大部分为内部网络延时)。行情解析的吞吐量在每秒30万条以上,一个简单的策略吞吐量在每秒3万次左右,当然还要取决于策略逻辑;总吞吐量在每秒10万次左右(可同时运行多个策略)

如此快的速度来源于我们以前做交易系统大量优化JVM的经验,如果您对此类服务感兴趣也可以单独邮件Email我们聊合作机会。

我如何添加图片做头像?

去到自己的资料页面,点击默认头像就会弹出上传图片窗口,上传以后就会修改。

正在运行中的策略 0