暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

量化策略研究与开发用哪种语言好?

kdb中文教程 2020-12-22
739

"交易机构趋向于Python和C++的组合",再加上一个数据库。而用kdb+/q一个就能全搞定,因为它既是开发语言又是数据库,它比c++简单但速度接近c++甚至超过c++,信不信由你。


本文转自闪策科技。原文:


想要从事量化策略研究与交易的初学者碰到的第一个问题就是编译语言工具的选择。

对于没有编程基础的新手,选择任何一个语言进行策略开发,都有不小的学习成本。

更重要的是,选择了一门语言,接下来开发环境、数据接口与平台、同业之间的交流、遇到问题后的支持、甚至是团队成员的招聘,都跟着被“套牢”。所以从一开始就必须慎重对待。

量化交易员面临的大致选择有:C/C++/Java/C#/R/Matlab/Excel等等。

从应用场景而言,R\Matlab适合于策略研究,Python,C++、C#适合用于策略开发。

从开发难度而言,Python和Matlab都比较容易,Java和C++麻烦一些。

从运行速度而言,C++、Java要快于Matlab和Python,所以追求执行效率的交易团队更多会使用C++进行策略的开发和交易。

另外,从量化资源而言,Python资源较多,可以找到很多开源框架,且 Python是免费的。

所以,Python对于初学者会更友好。

各个语言的层级,图源知乎

性能:汇编>系统级语言>应用级语言>脚本级语言

可读性:脚本级语言>应用级语言>系统级语言>汇编

我们从以下几个方面考虑简单做个对比。

01
学习成本

C、C++的特点是速度最快但要想用好,必须对计算机底层架构、编译器等等有较好的理解这是非计算机专业的人很难做到的。

一般来讲,量化交易中除了最终在生产环境下实现交易的程序,还有许多工作要投入到策略模型的开发、验证等工作中。

对于一个交易策略的想法,如果全部都采用C++,所耗费的开发时间和精力都是不划算的。而且,并不是每个人都能写C++,可能许多是纯金融或者没有程序开发的经验,那么要求他们用C++去对自己的策略进行验证就有些挑战。

Java受语言特征和开发环境限制,开发速度比较慢,代码量比较大,故不合适。

Excel面对GB级别的数据运行效率低,也不适用于处理数据样本较大的量化交易。

Python、R和Matlab学起来都简单,上手也快,可以说是“一周学会编程”。

R和Matlab(商业化产品,价格不太可爱)一般更适合做数据处理、运算,Python可以做的事情更多些,比如写个爬虫爬点数据,写个网页什么的,也可以面对处理实时行情的复杂情况。

Python有许多库可以用,只有你找不到的,没有你想不到,和量化这块结合比较紧密的有:

  • Numpy&Scipy:科学计算库,矩阵计算;

  • Pandas:金融数据分析神器,原AQR资本员工写的一个库,处理时间序列的标配;

  • pandas_datareader:国外股票宏观数据接口;

  • Matplotlib:画图库;

  • scikit-learn:机器学习库,包括一些数据预处理;

  • statsmodels:统计分析模块,线性回归;

  • TuShare:免费、开源的python财经数据接口包;

  • Zipline:回测系统;

  • TaLib:技术指标库;

02
易上手、便捷性

开始进行量化分析阶段,哪个语言用起来碰到问题最少,最方便省事?

用历史数据的回测举例。假设我们有2014年所有股票的全年日线,现在我们想看看600001的全年前10个最高股价出现在什么时候。

Python世界有个强大的pandas库,所以一句话就解决问题:



dailybar[dailybar [‘code’]==‘600001’].sort_values([‘close’].head(10)

R/Mathlab等科学语言也可以做到。

C/C++没有完备的第三方库。如果为了做大量的计算,要自己实现、维护、优化相应的底层算法,是一件很需要花费时间编译的事情。

03
实战效率

现在我们更进一步,要做实时行情分析和决策。

以A股的入门级L1数据为例,每3秒要确保处理完3000条快照数据,并完成相应的计算甚至下单。

这样的场景,C和C++可以快速响应。所以,行情软件比如大智慧、同花顺等客户端都是使用高效率的语言开发的,大部分的交易系统也是基于C和C++研发的。

Python的速度也可以满足一般的实时行情分析的需求,也有越来越多的平台接口Python化,只是如果追求低延时和高稳定,Python作为脚本语言并不是最佳的选择 。

总的来说 

Python可以更快地验证策略,C++可以更快的执行你的策略。所以,越来越多的交易机构趋向于Python和C++的组合。

交易系统的设计上也需要充分考虑到不同交易团队的编译语言,比如闪策科技在策略与交易系统的交互上,可以支持使用不同开发语言的团队使用。

语言就是一种工具,没有最好的语言,只有最合适的语言,策略好不好最重要的还是交易模型思维的可行性。

以上,希望可以帮助到大家。

参考资料:

作者:汪彦冰
https://www.zhihu.com/question/28378292/answer/157062208

作者:李伟振
https://www.zhihu.com/question/22211032/answer/137290158

作者:窦福成
链接:
https://zhuanlan.zhihu.com/p/22113760

作者:find goo
链接:
https://www.zhihu.com/question/25404359/answer/154094045


数据库
文章转载自 kdb中文教程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

PHP网站源码黔西南网站优化推荐潜江百姓网标王报价观澜优化多少钱荆门模板网站建设新乡网络营销价格营口模板推广推荐六安网站推广工具价格河源seo优化报价淄博SEO按天扣费价格西安seo优化报价巢湖品牌网站设计哪家好甘南网站优化推广横岗网站优化按天计费清徐百度网站优化公司红河网站设计价格白城网站制作设计哪家好布吉百度爱采购哪家好丹竹头百度关键词包年推广辽源SEO按天收费多少钱阜新设计网站价格昌吉网站优化软件哪家好呼和浩特网站设计模板哪家好海西网站建设推荐朔州营销网站哪家好罗湖企业网站设计公司福田推广网站多少钱衡阳网站改版价格内江网页设计邯郸百度网站优化排名推荐济源网站优化推广价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化