【量化交易】完整分析量化交易架構

自從開始接觸一些網友的問題後,發現大家很常見的問題就是對於非主觀交易或量化交易領域的內容有些誤解,最主要的就是在流程架構上的混淆,這系列文章將會仔細分析每個環節內容。


主觀交易與非主觀交易

在討論量化交易架構前,大家可以先想想你的投資交易決策流程是什麼?

先不論是技術分析派或是基本分析派,相信大家一定是看到了一些你認為有含金量的資訊,像是技術指標黃金交叉或是財報毛利率優於預期等,由這個資訊解讀判斷認為現在可以進場做多做空,再去考慮部位出場準則後,這就是一個完整的投資決策體系。

非主觀交易有些人也稱為量化交易(Quantitative Trading),即利用資料去佐證想法的正確性,例如將可以被定義出來的進出場訊號帶入歷史資料,確認想法在過去中能否發揮效果,背後的假設也是一個主觀,主觀假設未來的波動型態與過去是類似的,我比較想稱這一類叫做資料驅動交易(Data-Driven Trading)

量化交易的另外一個功用就是能夠克服人性的弱點,像是行為財務學(Behavioral Finance)中投資人的行為,普遍都是賺錢就急於想獲利了結,賠錢就變成長期投資,量化交易可以帶給我們資料驅動的進出場判斷,可以省去心理糾結的心力與時間。

我其實並不是哪一方的擁護者,因為我自己兩個方法均有操作,控制好資金比例,設好策略的停損。

最完整量化交易模式

我將量化交易模式分為研究與交易兩部份,因此兩類需要使用到的模式與資料型態有些不同,在此處為簡單的概念說明,後續將有完整的文章:

研究面

研究部份就是大家所熟悉的回溯測試(Backtesting)與參數最佳化的兩個動作,如同前面所提到的「利用歷史資料並給定可被定義的策略邏輯,回溯測試獲利情況或風險報酬比」,如績效不佳,可以試試看不同的策略參數,可能只是剛好挑到不好的參數而已,如果參數最佳化的狀況不夠穩定,那就可能需要重新設想另外的濾網或是策略了,反覆執行這種行為就是屬於量化交易的研究面。

交易面

在利用前面量化研究產生出可行的交易策略後,需要建立一個接收即時報價(Real-Time Quote),並進行計算與自動下單的程序,前面這句話已經提到了幾個關鍵字,這些都是我們必須要一一去克服的,例如即時報價源要使用API還是爬蟲,費用與穩定度要衡量,如即時報價源斷掉,是否有備源的即時報價源;即時計算參考指標,以技術指標為例,我們必須要能夠儲存過去的即時資料,使用暫存記憶體或是寫入資料庫(Database),同步就會考量到電腦效能的問題,另外下單的價格(Limit Order、Market Order)、委託單型態(ROD、IOC、FOK)、單位數與資金或保證金都必須即時進行計算。

結論

近期最常被問到的問題幾乎都是交易面,交易面的技術難度最高,在以上交易面問題都還沒概念前,切記先別使用自動下單交易,如果自動下出錯誤的委託單,後果不堪設想,初期還沒搞定前,可以先寫個自動傳送訊息或Email提示的功能,再用手動下單。

市面上很多課程都設計得好像很輕鬆就可以完成一台印鈔機一樣,自動分析並執行下單自動賺錢,大家也可思考如果那麼好賺的話誰還要去上班呢?


雷大的Python投資筆記電子報

歡迎訂閱雷大的Python投資筆記電子報,每週將會發布定期市場分析文章與不定期的專案研究文章:

  1. 國際金融市場分析
  2. 量化交易策略分享
  3. Python程式撰寫教學

立即訂閱最新文章