導航:首頁 > 股市知識 > 用MATLAB求股票模擬交易回測

用MATLAB求股票模擬交易回測

發布時間:2024-06-20 11:32:52

A. 如何系統地學習量化交易

首先,我對這個問題是完全不知道怎麼回答,為此,我專門去請教了我的老師。


B. 做量化交易選擇什麼語言好呢

量化交易,就是把人能夠識別的信息變成數字,輸入給計算機程序處理,輔助或者代替人類的思考和交易決策。

初學者碰到的第一個問題就是工具的選擇。首先大部分交易員本來不會寫程序,選擇任何一個語言進行策略開發,都有不小的學習成本。更重要的是,選擇了一門語言,接下來開發環境、人員招聘、數據介面與平台、甚至同類人群之間的交流、遇到問題後的支持,都跟著被「套牢」。所以從一開始就必須慎重對待。

先給出答案:對於還沒有確定一套固定量化環境的,建議用Python。

量化交易員面臨的大致選擇有:C/C++/java/C#/R/Matlab/excel等。我們從以下幾個方面考慮簡單做個對比。

注意:這里假設你團隊規模在50人以下。

1 學習成本和應用的廣泛性

C、C++的特點是速度最快,但要想用好,必須對計算機底層架構、編譯器等等有較好的理解,這是非計算機專業的人很難做到的,對於做量化交易來說更是沒有必要。

Java本來是SUN的商業產品,有學習成本和體系的限制,也不適合。

Excel面對GB級別的數據無能為力,這里直接排除。

Python、R和Matlab學起來都簡單,上手也快,可以說是「一周學會編程」。但R和Matlab一般只用來做數據處理,而Python作為一門強大的語言,可以做任何事,比如隨時寫個爬蟲爬點數據,隨時寫個網頁什麼的,更何況還要面對處理實時行情的復雜情況。

2 開始做量化分析後,哪個用起來碰到問題最少,最方便省事?

用歷史數據的回測舉例。假設我們有2014年所有股票的全年日線,現在我們想看看600001的全年前10個最高股價出現在什麼時候。python世界有個強大的pandas庫,所以一句話就解決問題:

dailybar[dailybar [『code』]==『600001』].sort_values([『close』].head(10)

R/Mathlab等科學語言也可以做到。

C/C++沒有完備的第三方庫。如果為了做大量的計算,要自己實現、維護、優化相應的底層演算法,是一件多麼頭疼的事。

Python從一開始就是開源的,有各種第三方的庫可以現成使用。這些底層功能庫讓程序員省去了「造輪子」的時間,讓我們可以集中精力做真正的策略開發工作。

3 現在我們更進一步,要做實時行情分析和決策

以A股的入門級L1數據為例,每3秒要確保處理完3000條快照數據,並完成相應的計算甚至下單。這樣的場景,C和C++倒是夠快了。所以行情軟體比如大智慧、同花順等客戶端都是使用高效率的語言做的,但像客戶端那樣的開發量,絕大部分量化交易機構沒能力也沒必要去做吧。

python的速度足夠對付一般的實時行情分析了。其底層是C實現的,加上很多第三方的C也是C實現,盡管其計算速度比不上原生C程序,但對我們來說是足夠啦。

4 quant離職了,他的研究成果怎麼辦

Python是使用人群最多、社區最活躍的語言之一,也是最受quant歡迎的語言之一。如果你是老闆,你能更容易地招聘到優秀人材,享受到python社區帶來的便利。

附幾個量化中常用的python庫:

- Pandas:

天生為處理金融數據而開發的庫。幾乎所有的主流數據介面都支持Pandas。Python量化必備。

- Numpy:

科學計算包,向量和矩陣處理超級方便

- SciPy:

開源演算法和數學工具包,與Matlab和Scilab等類似

- Matplotlib:

Python的數據畫圖包,用來繪制出各類豐富的圖形和報表。

PS: Python也是機器學習領域被使用最多的語言之一。像tensorflow、scikit-learn、Theano等等對python都有極好的支持。

C. 如何利用matlab對交易策略進行回測

這個很簡單啊,我現在就在用matlab做期貨量化的回測呢
關鍵的構成:
一是:形成自己策略的思想和流程圖
二是:從TB或者其他軟體中導出需要的tick等級別的數據,根據自己的思想和流程圖編輯程序,最好多使用function函數句柄,是程序的可適性增強。
三是:繪制圖片,plot,mesh或者GUI,來觀測自己參數對策略的影響,進而進一步完善策略
四是:多用cell元胞數組,根據TB等回測報告形成自己的測試報告,比如空多盈虧,回撤等等。

D. 請問大家什麼軟體能夠用外部指標進行歷史回測

需要一些比較專業的統計軟體。第三方炒股軟體一般都做的不好,有些我拿更權威的統計軟體去計算,發現結果居然是錯的。這個是個人經驗(不過有點過時了,2012年嘗試的,估計那個軟體自己已經把錯誤更改了。)。


建議你做以下操作:


  1. 自己收集外部指標,並隨時更新。如果可以的話,自己建個資料庫。MYSQL之類的,免費而且非常容易上手。

  2. 選擇一款可以輕松將金融數據導出成標准格式的第三方炒股軟體。這個就是你自己的喜好了。大部分軟體,這方面做的還是不錯的,雖然要交費。

  3. 用一款比較專業的統計軟體,將兩者數據導入,然後按自己的想法,自由自在的做分析。你可以隨便選一款你自己使用著習慣的統計軟體。EVIEWS之類的太簡單,包含的東西太少了。高度建議你選擇一些自帶金融計量分析工具的軟體。建議你用以下統計軟體:

    1. MATLAB。這個上手超快,前提是你很好的學過線性代數,因為計算是以矩陣為基礎的。他自帶的financial econometrics tool box包含的東西非常廣,非常全。就算沒有,因為軟體自由度很高,所以可以輕松自己創造出一個。

    2. STATA。這個上手比上面那個還快。而且,不需要很好的線性代數,因為編程理念不是以矩陣為基礎的。自帶的金融計量的東西很多很全。更新也很快。缺點是,沒上面那個自由度高。某些全新的演算法和公式,你想用的話,自己寫出來比較費勁,效率也容易低。特別是你想做蒙特卡羅模擬實驗的時候。

    3. 其他的那些免費的統計軟體,比如R, OX之類的我並不建議。因為是免費的,所以用戶體驗做的並不好。

E. 怎麼獲取股票數據c++ api

基本都是自己封裝CTP介面,程序端實現多賬戶、多策略的行情信號接收和委託提交/回報處理。也可以用 QuantBox/QuantBox_XAPI · GitHub 這樣的封裝的比較好、多介面統一API的項目直接整合到程序化平台的項目中使用。

通過程序介面用證券、期貨賬號登錄後訂閱品種的行情,證券、商品期貨、股指期貨、期權(全真模擬,9號就有實盤行情)都可以接收交易所的快照數據(例如商
品、股指都是500ms一個快照,數據結構也比較完整)。然後交易平台可以把行情數據廣播給各個策略程序,程序根據量化策略的邏輯判斷是否下單?掛單的方
式如何?掛單失敗是否追單?如何追單?
策略程序判斷要下單,則提交指令到程序化交易平台,平台把各個帳號各個品種中策略的邏輯持倉匯總為實際持倉,然後通過介面提交委託,並且處理委託回報。
行情數據一方面廣播給策略程序,一方面自己存資料庫,存下來的數據通過完整性檢測後,可以自己合成低頻率的數據,如
1分鍾、30分鍾、1小時、日度等等,這些數據會被用於策略回測,也可以用於市場微觀結構的觀察和研究,例如可以通過優化掛單方式來降低交易滑點。
Matlab可以做一些回測,實盤可能是比較不易用的。一般可以用C++, Java, C#來利用CTP程序化交易介面實現實盤平台,策略研究推薦用R做數據分析、統計、處理、可視化、策略分析、自動報告,用Rcpp(R調用C++)或者直接C++實現高性能回測,用單機並行或集群實現批量回測。

閱讀全文

與用MATLAB求股票模擬交易回測相關的資料

熱點內容
炒股技巧學論壇 瀏覽:657
股票軟體收費軟體 瀏覽:162
馬克思是哪裡的人 瀏覽:522
股票期權對沖是什麼意思 瀏覽:556
公司賣殼後股票會漲嗎 瀏覽:453
炒股高潮模型 瀏覽:55
配資炒股怎麼開通 瀏覽:167
通達信炒股軟體如果交易 瀏覽:138
基金股票實時行情 瀏覽:213
為什麼五糧液的股票值得買 瀏覽:735
對於基金和股票理財的話術 瀏覽:566
股票交易筆記模板 瀏覽:880
授予員工股票期權會計處理 瀏覽:376
基金投資債券股票的區別 瀏覽:807
高鴻股份股票預測 瀏覽:264
7天的公司股票 瀏覽:318
在股市買的股票怎麼保存 瀏覽:788
公司法債券和股票的論述 瀏覽:202
勤上股份股票值得買嗎 瀏覽:58
買股票有分紅么 瀏覽:838