量化策略一般用什么平台回测?分别有什么优劣势?
1 tb,文华
2 建模软件:R,matlab,python
3 C++,C#
4 小众平台:MQ,OQ
5 公司自己开发的平台
分别有什么优劣,如果是5,相比1-4有什么优势,谢谢!
回复内容:
处理合约换月回测这件事,就pass了市面上几乎所有平台。而这件事在商品里又极其重要。 @Cheney 已经说得很详细了,我来补充一下MQ和OQ,这两个软件我都用过。先说OQ吧,前身是由俄国人开发,用于物理实验。后来被米国人收购,改成了量化交易软件QuantDeveloper,主要针对是小型到中型的机构客户。后来以QuantDeveloper为原型,发展了SmartQuant套件,其中OpenQuant 3X为旗舰产品,结合QuantBase(数据解决方案)、QuantTrader(交易解决方案)、QuantRouter(多账户、分账户、跨市交易解决方案)。
------------------------------------------我为什么是分割线呢------------------------------------------------------
以下我只是互联网的搬运工:
OpenQuant产品技术特点
运行平台:Windows .NET
主要编程与脚本语言:C#
OpenQuant 和 Visual Studio可用于策略编辑
Visual Studio可用于调试(通过VS的附加到进程)
QuantBase可处理每秒100万次I/O操作(取决于硬件)
QuantBase支持多数据源
QuantRouter支持多路输入与输出
利用FIX和API接口,支持超过20家服务供应商提供的历史数据、实时行情和交易服务。



------------------------------咦,我为什么又是分割线呢--------------------------------------------------
看起来很牛逼是不是,呵呵,本韭菜要告诉你,资料不齐全,很多特性需要自己写代码进行实验,我们是折腾了半年,才算摸透。妈的,就在这个时候,quantbox突然宣布OQ3不再更新插件。强制升级到openquant2014,巨多坑又得重新填一遍。openquant2014带来很多先进的策略研发、管理理念。我这里就不一一多说了。
-----------------------------------妈的,我又是分割线--------------------------------------------------------
MagicQuant呢,号称是清华大学的教授带领研发的量化交易平台(你懂的)。呵呵,我都有QuantDevoloper源码你信吗?此处省略十万行代码。
不管他怎么来的,关键好不好用呢?说实话,比起文华、tb,B格还是要高很多的。交易速度快(据说比OQ还快一点点),正宗编程语言,库多,易扩展自定义功能。相比oq的不足,就是稳定性差点儿,没oq那么强大的套件组合。
------------------------------------------------我发誓,我是最后一个分割线-------------------------------------
咦,说好的回测平台呢?哎妈,答跑偏了。这两个软件的回测,肯定oq2014是要强大很多的。你可以自己写撮合器对接到回测引擎上,配合oq2014每秒200万次的事件处理引擎来回放最小粒度的数据,尽可能真实的还原交易当时发生的事情,避免掉入逻辑陷阱。
但是,本韭菜告诉你,但是,你觉得有必要搞这么复杂吗?你弄个macd上穿下冲、弄个双均线、弄个布林通道、弄个kdj金叉银叉、弄个理想论坛抄过来的奇形怪状的图形来做回测,你也去写一个撮合器,你就折腾吧。
本韭菜建议,加减乘除能搞定的,用文华TB。微积分、线性代数、概率统计、博弈论、神经网络、机器学习除了matlab、python你还能用啥。缠论、周易、易经、易筋经、金刚经、大日如来真经,你都快成仙了还来做交易干嘛。
建模分析后有潜力的,写成oq代码,用tick数据回放一遍。前后一致的,用小资金实盘,实盘数据不断和oq回放和matlab建模分析结果做跟踪对比,再逐渐加码。
另外,再提一个很好用的软件multicharts,功能强大,老少咸宜,专业的非专业的通吃。
传送门:MultiCharts 中国版,我不是安利。 不需要注明出处,可随意转载。 1.TB是现在比较专业的程序化使用的,编写语言是和C差不多的,功能比较强大;文华财经是自己开发的麦语言,相比TB编写简单多了,适合初学者入门。
2.建模来说,三个语言都差不多。Matlab在数值计算上没的说,它就是为此而生的,但同样面临软件过于臃肿、计算效率相对低下的问题。R使用的不多,但个人觉得与其学习R还不如学习Python。所以更为推荐使用python进行实现,因为python的可扩展性与兼容性,以及可读性更胜一筹,更容易与工程狮沟通,据我了解高盛、摩根等Quant部门现在大多使用python进行建模。
3.C++,C#在处理速度上胜过上述三种语言,但其在建模以及数值计算等方面有所欠缺。对于非计算机专业或者编程基础不扎实的人,并不推荐使用此语言进行建模。当然如果实盘玩高频,或是对交易时间有极高要求的,建议使用此语言,或者直接使用FPGA进行实现,不过这也涉及到你服务器存放的位置,服务器硬件条件、网速以及交易商本身的速度等多方面因素。有些跑题,在此不详谈!
4.小众平台OQ、MQ,都没有使用过,不做评价。
5.对于自己开发平台,个人觉得要看公司规模,以及人员配置等。最主要的是使用目的。如果像你所说只是用于回测,个人觉得开发的成本,以及后续的维护成本过高。并不推荐中小型公司以及非金融公司自行搭建。正如楼上推荐,可以使用况客,Ricequant - Beta,优矿,JoinQuant聚宽量化交易平台,Quantopian等量化平台。
I. 十分推荐在Quantopian上面进行学习,毕竟国外的量化交易好几十年了,其中很多帖子还是值得参考的,虽说并不是很适合中国股市,但也会激发一些灵感。当然纯英文,并不是每个国人都喜欢。并且交易规则与国内不同,学习模型可以,回测就算了吧。
II.JoinQuant聚宽量化交易平台,Quantopian本土化产品之一,沿用了Quantopian的设计理念,基本可以与Quantopian进行自由切换,但回测速度相比Quantopian有巨大提升(谁用谁知道),社区活跃,支持多个回测同时进行,有模拟交易的微信提醒。JoinQuant最打动我的就是客服的响应时间,十二点多问问题还有人回复,搞得我以后都不敢晚上问问题了,怕我一个问题影响别人睡眠- -!。个人觉得JoinQuant与Quantopian一同使用,可算是双剑合璧,模型通吃吧。
III.优矿,Quantopian本土化产品之二,背靠通联数据,数据比较齐全,但很多是付费的,这点很蛋疼,但也能理解,毕竟通联就是靠这生存的。回测速度相比JoinQuant慢,界面比较清新,也算弥补了回测慢的不足。数据齐全但调用API多而杂,大量的冗余,基本用什么查什么,好多属性存在多个API中,使用也是仁者见仁智者见智吧。
VI. Ricequant - Beta,Quantopian本土化产品之三,用的不多,只有一点感觉,他们该换PM了。
V.况客应该是四家中唯一一个使用R语言的平台,具体没用过,因为感觉R搞搞学术,自己建模还可以。一旦结合工程,就不适用了,没有哪个工程师会迁就你去学R,除非你是大牛! [原]代表最前沿R语言技术的云端量化平台:况客科技 R SDK 试用
前言
况客是张丹老师的一个创业项目,张丹老师是一位资深的R语言用户,著有《R的极客理想》系列书籍与系列博文,在R语言工程化的道路上有很多值得我们学习的,可以说张丹老师代表着R语言技术的最前沿。这一次,我们来体验一下张丹老师的最新作品,重点介绍一下云端量化平台的使用体验。
试用打开,况客的console,令我眼前一亮的就是自动化统计报表+Rstudio-Server计算环境,参考 前文 基于RStudio Webinars的统计报告Web化与工程化实践总结,完美结合了科学计算环境+RMarkdown输出,这意味着即使我关掉了浏览器,计算现场也会原封不动的保留。
Rstudio环境参考前文 RStudio Server环境快速配置教程在Rstudio环境中,我们甚至可以引入 Git版本控制、shell脚本、Shiny应用、Project工程化等等。我猜想,况客平台上的Rstudio也许也是基于Docker生成的虚拟环境。
在shell中我们甚至可以看到网络配置
~$ ifconfig eth0 Link encap:Ethernet HWaddr 02:42:ac:11:2f:77 inet addr:172.17.34.8 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::42:acff:fe11:2f77/64 Scope:Link UP BROADCAST RUNNING MTU:9001 Metric:1 RX packets:60686 errors:0 dropped:0 overruns:0 frame:0 TX packets:33607 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:24220177 (24.2 MB) TX bytes:52749143 (52.7 MB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
5的优点: 回测平台的好处就是把策略部分和回测运行部分分开,而策略部分只需要用API函数调用历史数据并下单,所以最重要的是平台提供的API函数必须适用于任何策略,所以自己的平台可以很方便的增加API。(比如对于天朝市场就要加入涨跌停板API,以及还有提取行业、成分股等API。要是别人的shitty platform,什么?你想加新的API?那你准备一个星期把它们的源码看一遍吧)另外,回测速度要快。自己写的平台肯定是把一切能够向量化的东西都给向量化了,而别人写的可能就能偷懒就偷懒,这个在速度上一般是10倍以上的差距。(比如order这个函数,有良心的平台肯定要向量化啊) 推荐一个不会编程的人也可以用的个股策略研究工具-量化大师,这是我们团队的一个小作品,也许目标人群可能不像楼上这些专业人士,因为牛逼的人都在自己编程自己实现很多模块。我们这个小工具是帮助不会编程的用户的,用户只需按照标准的交易系统规则,一步步的将买卖规则,仓位管理等规则组装,一键回溯即可,目前app已经实现了一些常用的技术指标回测,接下来还会实现多标的策略创建和回测,有兴趣的可以体验体验。
量化大师iOS下载: https://itunes.apple.com/cn/app/gu-piao-tou-zi-liang-hua-da/id1102702990?l=en&mt=8 Qt,wealth-lab,优点嘛,不用各种import,入门容易,缺点都是一样的,没有各种import,扩展性差 .net platform
先用 R 做基本的观察
然后C#直接写
接口模块构建好 也就第一次累点 以后只需要改逻辑
好处是不用学习别的平台的语言,并且很自由,自己写的调试放心。有问题知道在哪。 人生苦短,我用聚宽 我只是好奇QQ也有回测平台?

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

scilab和matlab的区别:1、注释符号;2、预设变量的表示;3、操作符的用法;4、矩阵的定义与调用;5、程序的编辑与执行;6、数据类型;7、函数库;8、图形界面;9、社区支持与生态系统;10、跨平台兼容性;11、价格。详细介绍:1、注释符号,在Scilab中,注释是用“//”引导,而在Matlab中,注释是用“%”引导;2、预设变量的表示,在Scilab中等等。

1获取鼠标在全屏位置屏幕左上角为坐标原点,获取鼠标位置和获取鼠标像素颜色建议和while循环或者timer函数结合使用:importjava.awt.MouseInfo;mousepoint=MouseInfo.getPointerInfo().getLocation();mousepoint=[mousepoint.x,mousepoint.y]2获取当前剪切板内容importjava.awt.Toolkitimportjava.awt.datatransfer.DataFlavorclip=

matlab停止运行命令的方法:1、选择一个程序,点击运行图标;2、点击上方的暂停图标,暂时停止程序运行;3、点击退出调试即可强制停止正忙的程序。

在MATLAB中,您可以使用 "set" 函数来修改图形的坐标轴属性。详细介绍:1、修改坐标轴的范围:set(gca, 'XLim', [0 10], 'YLim', [0 10]);2、修改坐标轴的标签:set(gca, 'XLabel', 'My X-axis', 'YLabel', 'My Y-axis');3、修改坐标轴的刻度等等。

fprintf是MATLAB中用于格式化输出的函数。fprintf的基本语法为“fprintf(fileID, format, A)”,其中,fileID是一个标识符,用于指定要写入的文件,如果要将数据写入到命令窗口中,则可以使用1作为fileID的值,format是一个字符串,用于指定输出的格式,A是要输出的数据。

大家知道matlab怎么运行m文件吗?下文小编就带来了matlab运行m文件的方法教程,希望对大家能够有所帮助,一起跟着小编来学习一下吧!1、首先打开matlab软件,选择左上角的“打开”,如下图所示。2、然后选择要运行的m文件,并且打开,如下图所示。3、在窗口按F5来运行程序,如下图所示。4、我们可以在命令行窗口和工作区看运行结果,如下图所示。5、直接点击“运行”也可以运行文件,如下图所示。6、最后可以在命令行窗口和工作区看m文件的运行结果,如下图所示。上面就是小编为大家带来的matlab怎么

MATLAB是一种广泛应用于工程和科学领域的流行编程语言,但由于其灵活性和适应性,Python正迅速成为许多程序员的首选语言。如果您想将MATLAB代码转换为Python代码,一开始可能会感到非常困难。然而,通过正确的知识和方法,您可以使这个过程变得更加容易。以下是一些步骤,帮助您将MATLAB代码转换为Python:步骤1:熟悉Python语法Python和MATLAB具有独特的语法,因此在开始转换代码之前,您需要熟悉Python语法。花一些时间了解Python语法基础知识,包括变量、数据类型

griddata函数用于在给定的(X,Y)坐标上插值相应的Z值,从而将一组三维数据(x,y,z)网格化。它的用法为“griddata(x, y, z, xi, yi, method)”。
