您好,登錄后才能下訂單哦!
您是否需要為了寫個簡單的策略就死磕半本 C++ Primer 呢?
我們已經了解了中國期貨交易所與投資者之間通訊模式,在這種模式下一個高效的量化交易系統應當采用“事件驅動”式設計,即系統需要訂閱行情并監聽各種“事件”(或者“消息”,比如成交回報或賬戶的資金狀況等)并作出相應的響應。
在事件驅動的設計模式下,為了實現我們的交易策略,我們需要選定一個編程語言。到底是用一種編寫方便、但是需要解釋器的腳本語言,比如Python,還是用比較傳統的、編寫復雜、需要編譯的編程語言,比如C++呢? 這是剛踏上量化交易征程的投資者們經常面臨的問題。
為了比較這兩類編程語言的優劣,我們可以考慮以下因素:
1, 開發敏捷性:
用腳本語言來描述策略思想更加容易,實現同樣的邏輯所需要的代碼量會更少。當您有一個還不是很成熟的想法時,使用腳本語言可以很方便地去修改和測試這個想法。您也不需要為了很小的一點改動而重新編譯整個系統。在開發敏捷性上,腳本語言,如Python更勝一籌。
2, 執行速度:
編譯后執行的C++速度更快,在對速度要求更高的場景下有優勢。
3, 可靠性:
C++為取得更快執行速度往往也伴隨著大量使用指針而帶來的內存泄露問題,容易造成整個系統的崩潰。而Python自帶“垃圾回收”機制,一個設計良好的程序不會因為任何一行語句而使整個系統崩潰。在可靠性上,Python更有優勢。
4, 資源開銷:
在專業的量化交易機構中,策略分析師通常只需要研究策略的思想,公司還會專門配備IT開發團隊來用C++來實現策略交易的執行。而小型機構或個人投資者就沒法這么奢侈,他們有限的資源和時間通常需要同時兼顧策略的開發和交易的執行。Python,借助一些現成的平臺工具,比如真格量化,可以比較快捷地實現策略研發和交易執行,對資源有限、“身兼數職”的投資者來說是更好的選擇。
5, 學習曲線:
C++學習曲線過長,里邊不少艱深的概念,比如指針、虛函數、模板等讓初學者一頭霧水,即使是科班出身的專業人士也時常面臨挑戰。很可能投資者在真正能夠著手用C++設計策略前,需要學習大量與策略毫無關系的計算機理論。在這個過程中的各種挫折可能就讓投資者打了退堂鼓。而與之相比Python非常簡單易學,即使是非計算機專業人士稍作努力就能迅速上手,能夠集中精力去設計策略。
綜合看來,除非對執行速度有絕對高的要求,對于中小投資機構和個人投資者,Python這個腳本語言多數時候是更好的選擇。即便是專門針對高頻策略,需要將其邏輯用C++編碼以獲取更高的執行速度,在策略研發和小規模實盤測試階段,Python也能為您節約大量的時間和人力成本。而提供海量數據和高性能交易服務器的真格量化還能將用Python進行策略研發和量化交易執行的過程變得更加簡單。
下邊我們可以用圖表來歸納一下Python和C++的異同:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。