• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

选股策略回测用 Matlab 好还是用 Python 好?

python 搞代码 4年前 (2022-01-09) 53次浏览 已收录 0个评论
文章目录[隐藏]

已有过去十多年所有A股的日线数据(数据大概也就几百兆大小),想对一些策略进行回测,看下其收益率,最大回撤等等。python正在自学,学了大概一个多月,会一些基本的编程。matlab没接触过。想问下策略回测用哪个工具效率更高?
— — —
补充一下,下面有人提到几百兆数据不大,然而我在用python处理这些数据的时候经常提醒我memoeyError,请问应该怎么解决这个问题?

回复内容:

首先十年的日级别数据量的确不大,使用Python来说的话不应该出现memoryerror,应该是在编程方面需要再多留意,我们在Ricequant上使用的分钟数据大概是200-300个GB左右,也是Python和Java共同合作完成的。

语言只是一个语言,兴许会有各种语法的不同,但是在谈语言的时候我们需要了解背后的工具箱和社区,以及它为什么处理一些事情比另外的一些语言要好。

本身Python初期用来做金融回测等是应该被放弃的,用来开发策略也应该是被放弃的,因为相比matlab的矩阵运算来做开发,实在是太方便了。只不过后来Python推出了series、pandas等一系列的强悍library,pandas的语法基本在“无耻”地模仿matlab和R,而pandas的开发者正是美国大名鼎鼎的对冲基金AQR,因此使data crunching和对数据的一些操作大大便利,此外,又包装了海量的开源社区的数学和科学计算库,也能处理各种的machin learning等等的问题。

从科学计算的语言的发展来看,从最初的人们对浮点数计算的需求加入了fortran,再一路进行,让工具更加的让科学计算容易再容易(Python也封装了大量早期的数学家们用fortran写的数学计算基础库,这些经历了几十年的考验、加速等等):

我们来看下python目前的科学技术栈:

  • numpy: basic array manipulation – 基础的数组处理
  • scipy: scientific computing in python, including signal processing and optimization – 科学计算,包括信号处理和优化等
  • matplotlib: visualization and plotting – 几行代码就可以做图形化显示了
  • IPython: write and run python code interactively in a shell or a notebook – 互动式编程环境,这是能将来替代掉matlab的一个必备,即在一行一行代码的输入、显示过程中学习、改进
  • pandas: data manipulation – 最重要的矩阵运算等
  • scikit-learn: machine learning – 机器学习

但是随着以后的发展Python的开源属性就会体现的越来越强大,可以让更多的人享受到其便利和贡献进来,包括Quantopian也放出了zipline的python回测框架,只需要引入yahoo数据即可进行回测,并且Python的速度由于跟C的很好的结合可以达到非常快的速度,而且可以将来和其他系统很容易整合对接实盘交易接口。

由于欧美已经有很多的投行和对冲基金在往Python的技术栈靠拢,因此选择了Python即掌握了一门重要的工具,并且无需跟一家私有化公司进行捆绑。

当然,最后的最后,所有的python回测你都可以来Ricequant – Beta上完成,我们支持海量的市场、财务数据,还有不断加入的和大数据公司合作的舆情数据等等,同时策略回测完还可以做实时模拟交易,享受到实时数据的计算。在云平台上已经支持了几乎所有的Python科学计算库,无需花时间安装、测试等等。我没钱,支持免费开源
抛开版权不说,初期入手策略测试、数据分析用matlab非常方便
但是策略测试方法、框架弄清楚后,要做正规的回测,还是Python方便,这里的正规是指严格的事件流驱动,虽然速度慢,但是避免未来函数影响、接近实盘的逻辑。Python在这方面已经有很多库了,quantopian的zipline应该算鼻祖了,国内的优矿网和ricequant都跟zipline很像,另外还有知乎大神的vn.py,PyAlgoTrade等语言就是用来干活的,中间文件用HDF5或者csv转存,需要时间序列分析的时候上R.毕竟Python的sm库

本文来源gaodai.ma#com搞##代!^码网(

还是很烂的,但是PCA和大量的多因子计算,Python R MATLAB都差不多。

回测讲究并发效率和一些多参数回测的参数调优以及一些MC方法的估计时,py运行效率(相对于MATLAB)会高一些

总体来说,别太把语言当回事,就跟吃饭用筷子还是勺子还是叉子,要根据食材来几百兆数据算个锤锤啊……64位下的Python吃个几GB内存也不会咋地啊……如果真报错,记得检查一下代码和算法有没有什么问题。万一原始数据几百兆但是算法里来个空间复杂度指数级那也没救不是么……

同样的东西,如果matlab上跑得起,Python一般也跑得起;万一跑不起,拆分一下跑并行,两者也都能做到。建议对编程不了解同时也没打算怎么学编程的用matlab之类;反之对编程有兴趣想学的选Python。随便用什么,几百G的数据很小了,当然你要是直接readfile之类读整个文件。。。
最简单的就是数据导入到数据库里,mysql,postgresql之类,然后就easy了。我有两个员工用matlab,但我自己一般用python和R如果有钱买授权可以选matlab,如果没钱建议不要用盗版,python非常好用2个都可以,但是没有数据,所以用天软吧!就题主的介绍,我建议选择python,
一、Python已经在学习了,matlab还没有学习

二、Python是开源的,并且也有很多量化交易平台使用python语言,比如我在使用的
joinquant.com,之前自己在本地做回测时也经常出现题主说的memoeyError ,现在我不再需要担心,JoinQuant的工程狮们已经帮我解决了,并且这里的回测不限制内存,而且还有我最喜欢的模拟交易微信提醒功能。

三、必须要说Python是量化投资利器,优点慢慢介绍。

题主主要目的是想对一些策略进行回测,看下其收益率,最大回撤等,其实这就是所谓的Quant Researcher,对他们来说,编程和量化策略缺一不可。和Quant dev不同,Researcher需要的更多是一种量化策略的解读、分析、开发新策略的能力。

题主还需要增加自己的python编程能力,最基础的是数据分析是必须的。一些参考资料分享给你
推荐一些量化投资学习资料(持续添加中…)
推荐一些Python入门学习资料(持续添加中…)
【资料分享】Python、研究报告、计量经济学、投资书籍、R语言等!(Book+Video)
【散沙】Python科学计算系列

我是从matlab转过来的初级Quant Researcher,斗胆总结分享一下自己的python学习路径

首先是python的基础知识:
python的基本知识一定要熟练掌握,尤其是python中非常好用的迭代器和解析
【量化投资利器Python】基本语法-数据类型1之列表【量化投资利器Python】基本语法-数据类型2之字典
【量化投资利器Python】基本语法-数据类型3之元组、集合
【量化投资利器Python】条件与循环-if、while、for
【量化投资利器Python】神奇的迭代器和解析
【量化投资利器Python】基本语法-函数

接下来是常用的基本类库
时间库


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:选股策略回测用 Matlab 好还是用 Python 好?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址