Rust: 用於量化研究的嘗試探討_rust

來源:互聯網
上載者:User

我們知道,目前在量化研究(主要指回測,快速驗證,而非交易或生產階段)階段,行業主流的工具語言是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),這個會差多少?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.