溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python還是C++?---您的量化策略應(yīng)該用哪種編程語言

發(fā)布時(shí)間:2020-06-29 15:14:07 來源:網(wǎng)絡(luò) 閱讀:1211 作者:51zhenge 欄目:編程語言

您是否需要為了寫個(gè)簡單的策略就死磕半本 C++ Primer 呢?


我們已經(jīng)了解了中國期貨交易所與投資者之間通訊模式,在這種模式下一個(gè)高效的量化交易系統(tǒng)應(yīng)當(dāng)采用“事件驅(qū)動(dòng)”式設(shè)計(jì),即系統(tǒng)需要訂閱行情并監(jiān)聽各種“事件”(或者“消息”,比如成交回報(bào)或賬戶的資金狀況等)并作出相應(yīng)的響應(yīng)。

在事件驅(qū)動(dòng)的設(shè)計(jì)模式下,為了實(shí)現(xiàn)我們的交易策略,我們需要選定一個(gè)編程語言。到底是用一種編寫方便、但是需要解釋器的腳本語言,比如Python,還是用比較傳統(tǒng)的、編寫復(fù)雜、需要編譯的編程語言,比如C++呢? 這是剛踏上量化交易征程的投資者們經(jīng)常面臨的問題。

Python還是C++?---您的量化策略應(yīng)該用哪種編程語言

為了比較這兩類編程語言的優(yōu)劣,我們可以考慮以下因素:

1, 開發(fā)敏捷性:

用腳本語言來描述策略思想更加容易,實(shí)現(xiàn)同樣的邏輯所需要的代碼量會(huì)更少。當(dāng)您有一個(gè)還不是很成熟的想法時(shí),使用腳本語言可以很方便地去修改和測(cè)試這個(gè)想法。您也不需要為了很小的一點(diǎn)改動(dòng)而重新編譯整個(gè)系統(tǒng)。在開發(fā)敏捷性上,腳本語言,如Python更勝一籌。

2, 執(zhí)行速度:

編譯后執(zhí)行的C++速度更快,在對(duì)速度要求更高的場景下有優(yōu)勢(shì)。

3, 可靠性:

C++為取得更快執(zhí)行速度往往也伴隨著大量使用指針而帶來的內(nèi)存泄露問題,容易造成整個(gè)系統(tǒng)的崩潰。而Python自帶“垃圾回收”機(jī)制,一個(gè)設(shè)計(jì)良好的程序不會(huì)因?yàn)槿魏我恍姓Z句而使整個(gè)系統(tǒng)崩潰。在可靠性上,Python更有優(yōu)勢(shì)。

4, 資源開銷:

在專業(yè)的量化交易機(jī)構(gòu)中,策略分析師通常只需要研究策略的思想,公司還會(huì)專門配備IT開發(fā)團(tuán)隊(duì)來用C++來實(shí)現(xiàn)策略交易的執(zhí)行。而小型機(jī)構(gòu)或個(gè)人投資者就沒法這么奢侈,他們有限的資源和時(shí)間通常需要同時(shí)兼顧策略的開發(fā)和交易的執(zhí)行。Python,借助一些現(xiàn)成的平臺(tái)工具,比如真格量化,可以比較快捷地實(shí)現(xiàn)策略研發(fā)和交易執(zhí)行,對(duì)資源有限、“身兼數(shù)職”的投資者來說是更好的選擇。

5, 學(xué)習(xí)曲線:

C++學(xué)習(xí)曲線過長,里邊不少艱深的概念,比如指針、虛函數(shù)、模板等讓初學(xué)者一頭霧水,即使是科班出身的專業(yè)人士也時(shí)常面臨挑戰(zhàn)。很可能投資者在真正能夠著手用C++設(shè)計(jì)策略前,需要學(xué)習(xí)大量與策略毫無關(guān)系的計(jì)算機(jī)理論。在這個(gè)過程中的各種挫折可能就讓投資者打了退堂鼓。而與之相比Python非常簡單易學(xué),即使是非計(jì)算機(jī)專業(yè)人士稍作努力就能迅速上手,能夠集中精力去設(shè)計(jì)策略。

綜合看來,除非對(duì)執(zhí)行速度有絕對(duì)高的要求,對(duì)于中小投資機(jī)構(gòu)和個(gè)人投資者,Python這個(gè)腳本語言多數(shù)時(shí)候是更好的選擇。即便是專門針對(duì)高頻策略,需要將其邏輯用C++編碼以獲取更高的執(zhí)行速度,在策略研發(fā)和小規(guī)模實(shí)盤測(cè)試階段,Python也能為您節(jié)約大量的時(shí)間和人力成本。而提供海量數(shù)據(jù)和高性能交易服務(wù)器的真格量化還能將用Python進(jìn)行策略研發(fā)和量化交易執(zhí)行的過程變得更加簡單。

下邊我們可以用圖表來歸納一下Python和C++的異同:
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言
Python還是C++?---您的量化策略應(yīng)該用哪種編程語言

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI