我们知道,目前在量化研究(主要指回测,快速验证,而非交易或生产阶段)阶段,行业主流的工具语言是Python,Matlab,R,Julia等偏动态语言(Julia动静均有),其次就是C++,Java,C#….等静态语言。

Rust是Mozilla开发的注重安全、性能和并发性的编程语言,也是一门近年来倍受关注、颇俱现代气质、颇俱创新、颇俱务实的系统级编程语言。基于对Rust的诸多特性的初步理解,我个人认为,Rust可能很适合用在量化的交易或生产阶段,因为可以很好降低交易代码中潜在的BUG,也容易进行生产调试。当然,其挑战是,是否能得到行业上认可。比如,绝大部分的交易的接口在未来的很长时间还会以C++方式显现。

今天,主要探讨一下,Rust是否适合量化研究,即好用,而不管行业是否认可。

我最简单的想法是,如果用Rust重写Julia研究框架,两者在策略开发效率和策略运行速度上有什么不同?如果有性价比上提升,那就是说明适合的,反之则不适合。

Rust资源库可以参考:

https://github.com/kud1ing/awesome-rust

一、基础探讨

1、数据组织模块
(1)大部分是从第三方的CSV文件 => 统一成标准化源数据格式(CSV)。
(2)标准化的源数据格式(CSV) => MySQL, Sqlite3或SQLServer等,或HDF5 等策略基础数据。
(3)策略基础数据 => 策略的Bar/Tick格式。
(4)相关数据更新程序。

Rust 基本上具备以上相关的库,具体如下:
BurntSushi/rust-csv =>csv。
Chrono 0.2.25 =>Date,Time
aldanor/hdf5-rs =>HDF5
blackbeam/rust-mysql-simple =>MySQL
linuxfood/rustsqlite — Sqlite3 =>Sqlite
serde =>serialize, deserialize

综合评价: Rust的可行指数:4星。
Python: 5星
Julia :4星

2、策略组织模块
(1)数据组织表达力。
(2)IDE。 => 策略组织编写是否便利。
(3)相关基础统计工具包。 => 报表输出

Julia有Dict结构、Array,而Rust有 HashMap、Vec. 两者有泛型。Rust和Julia,Python等在数据组织的表达力肯定没有问题的。

IDE。Rust和Julia都可以用Atom,至少我是这样。但使用上,Julia占优。而Rust,我目前还结合着Atom和Shell在用,虽然没有Julia方便,但基础上影响不大。

Julia的统计工具包,虽然比Matlab,Python,R差了一个数量级,但比Rust还有很有优势的。Rust的相关统计包非常少,功能也非常有限。估计轮子大部得重新造。要么只有等了。不过相信,很快就有新的包出来。总之,Rust在这个方面生态缺限会对报表输出模块产生较大的影响。

综合评价: Rust的可行指数:2星。
Julia: 4星
Python:5星

3、策略输出模块
(1)相关画图工具包。 => 交易结果展示
(2)IO。 =>流水输出到CSV或Excel,便于查找和比对流水是否正确。

Rust画图有gnuplot,也可以考虑matplotlib(实际上是matplotlib-rs)。但是和Julia的Gadfly、PyPlot、Plots、Winston相比,Rust的画图库还比较初级,选择余地也很小。

在画图上,R、Python还是要大赞一下,值得各语言学习,精品多,选择余地大。

综合评价: Rust的可行指数:1星。
而R、Python: 5星。Julia :3星。

二、实践比较

4、策略实现效率
(1)同一个CTA策略,我用Julia写,策略需要用1000行,那么Rust代码量会是多少?
(2)同一策略实现,不同语言所花的时间。比如用Julia实现,从写到输出正确的结果,所用半小时,Rust是多少?

5、策略运行效率
(1)比如,同一个CTA策略,Julia运行下来需要10秒,Rust需要多少秒?
(2)在不同的数据量级(100万、1000万级或1亿级别Bar/Tick),这个会差多少?

Rust: 用于量化研究的尝试探讨相关推荐

  1. 计算机体系结构:量化研究方法:第5版

    <计算机体系结构:量化研究方法:第5版> 基本信息 原书名:Computer Architecture:A Quantitative Approach,Fifth Edition 作者: ...

  2. BciPy: 一款基于Python用于BCI研究的开源软件

    ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 进行脑机接口(BCI)研究对技术和软件有很高的要求.为了加速BCIs的开发和可访问性,研究人员开发了BciPy,一个基于Python的用于BCI研究的开源软件 ...

  3. xpress-mp优化实例精选_量化研究每周精选-20170711

    本周为大家精选了5项机器学习/深度学习在量化投资中的相关资源,机器学习/深度学习是偏实践性学科,只有不断实践才能有所收获,纸上得来终觉浅,绝知此事要躬行!BigQuant拥有海量的数据和主流开源框架, ...

  4. 异质化社群量化研究4丨RATE OF CHANGE WITH BANDS

    致力于量化策略开发,高质量社群,交易思路分享等相关内容 Rate Of Change With Bands 大家好,我是Le Chiffre.今天给大家带来的是第4期异质化社群的量化研究内容--ROC ...

  5. 【基金量化研究系列】基金绩效归因模型(三)——基于CAPM、T-M、H-M、C-L模型的基金绩效归因研究

    文章目录 1. 引言 2. 模型介绍 2.1 CAPM模型 2.2 T-M模型 2.3 H-M模型 2.4 C-L模型 2.5 H-M模型 V.S. C-L模型 3. 实证分析 3.1 数据选择 3. ...

  6. 学 Python 爬虫,你可以研究下 GoPUP, 一个用于学术研究的小爬虫库

    今天是持续写作的第 22 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 熟练的使用 Python 第三方库,00 后程序员必备神器. 每天对着电脑 10 多个小时,畅游在互联网的 ...

  7. 高斯计如何用于生物医学研究

    高斯计经常用于制造 QC 和测试应用.我们看到使用量不断增加的另一个领域是医疗领域.这些仪器不仅用于测试 MRI 机器的磁场均匀性和振幅,而且还用于学术实验室,科学家们正在使用磁场研究未来的生物医学诊 ...

  8. 什么是股票量化研究?

    谈到股票量化研究领域,肯定少不了有自动交易系统的支撑,像平时能将股票池中的数据挖掘出来也能熟能生巧的进行自助量化研究,包括数据接口系统的开发使用都是受到量化的影响,那么,如何看待股票量化研究? 像平时 ...

  9. 【基金量化研究系列】基金绩效归因模型——Brinson多期归因模型

    文章目录 1. 引言 2. Brinson单期归因模型 2.1 模型框架 2.2 公式推导 3. Brinson多期归因模型 3.1 模型框架 3.2 公式推导 4. Brinson模型的应用场景 4 ...

  10. 【基金量化研究系列】大类资产配置研究(二)——股债二八轮动策略

    文章目录 1. 引言 2. 股债二八轮动策略 3. 动态再平衡股债二八轮动策略 4. 基于python的策略实现 4.1 策略代码 4.2. 运行结果实证分析 5. 总结 写在最后 1. 引言 在上一 ...

最新文章

  1. 全连接条件随机场_最新:通沪铁路一期连接上海虹桥站和上海站,二期连接浦东机场和上海东站...
  2. 使用虚拟机安装Linux系统常见的错误以及解决方案
  3. 【leetcode】27.RemoveElement
  4. zk ui_高级ZK:异步UI更新和后台处理–第1部分
  5. php 匹配图片路径_php正则匹配图片路径原理与方法
  6. raft2020年更新_ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型
  7. 仿芒果TV微信小程序
  8. (转)Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源
  9. 用bat批处理程序通过DOS命令行删除所有的空文件夹
  10. SQLServer之修改标量值函数
  11. STM32F103 mbed输出互补pwm
  12. Flutter 本地小说阅读器
  13. 树莓派搭建DLNA客户端,使用gmediarender,DLAN render。
  14. 大数据新闻推送你怎么看_如何看待大数据精准推送,使人的视界越来越窄?
  15. 离谱!诺奖得主被曝40多篇论文造假!还涉及国内高校学者!
  16. 嵌入式Linux小项目之图片编解码播放器(5)
  17. c语言流水灯程序详细讲解,用c语言编写单片机流水灯程序详解
  18. zr 10联测 day1
  19. 9,共模抑制比一-不受输入信号中共模波动的影响。【如何分析共模CM抑制比。】
  20. 第二周总结(2018-03-05~2018-03-09)

热门文章

  1. 程序语言POJ 2406 Power Strings
  2. Windows 2003 + ISA 2006+单网卡×××配置(3)
  3. 卷积神经网络CNN原理以及TensorFlow实现
  4. powerDesigner 把name项添加到注释
  5. NOI2018退役记
  6. php 加密解密算法
  7. JavaScript备忘录
  8. 去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码
  9. [QT]文件夹过滤问题
  10. 分享正在构想的开源门户/B2B框架理念 与现有流行的门户系统/B2B系统有很大不同...