Python歷史回測 vs 套裝軟體回測

其實最重要的是跳脫參數最佳化的框架,講一下我自己實做的方法....

筆者是用Python撰寫數據分析、歷史回測、以及實單交易程式。標題的套裝軟體就是常見的TradingView、MultiChart、MT5等等專門為了程式交易而生的語法以及軟體。今天主要想討論一下這兩者的差別以及優劣。

首先我們來看一下,常見的套裝軟體開發策略的步驟吧!

  1. 套入歷史資料
  2. 套用教學範例策略
  3. 自己透過想法調整一些策略細節
  4. 透過參數最佳化找出適當的報酬率曲線
  5. 再研究如何自動化,實單交易

以上述的步驟來看,來講一下Python的劣勢,很明顯的一點就是,沒有辦法在程式小白的階段馬上進行回測實作,以我自己而言,除了程式以外,很多金融觀念需要摸索一陣子。就以回測來說,搞清楚每個績效的計算公式,或是資金槓桿怎麼設計,都要想過。這一點套裝軟體上是佔有優勢的,很多人可能還不清楚完整的細節,就可以開始運作策略了,等到發生問題再來回頭解決。

這是Multichart參數最佳化的畫面,方便我們針對策略裡面的參數進行最佳化的運算,找到符合最佳績效的參數集。

參數最佳化畫面,引用自:https://www.touchance.com.tw/mc_post?idno=92

不過凡事一體兩面,Python有劣勢也有優勢,另外來談談Python自寫交易策略的優勢吧,大家可能最常聽到的就是可以用機器學習應用在各領域,投資投機領域也是。Python可以有許多創造性的做法!不過我自己沒有使用任何Python回測套件

以我目前有在使用的交易策略中,都是使用Python實做出來的,由於我自己不是非常勤勞的量化分析者,所以一直在追求一個簡易的框架,可以快速找到多種策略

其實最重要的是跳脫參數最佳化的框架

講一下我自己實做的方法:

  1. 套入歷史資料
  2. 算出交易指標,例如:均線
  3. 制定策略(又稱特徵),不過不會馬上進行績效驗證,例如:價格站上均線、黃金交叉等
  4. 產生出一個策略池(又稱特徵池),簡單來說就是一堆策略
  5. 將策略排列組合,最佳化找出適當的報酬率曲線
  6. 再研究如何自動化,實單交易

流程圖如下:

細節可以到直播分享裡面去聽,應該有講稍微清楚一點?

在這一個架構下,最重要的就是第5步策略排列組合,因為有可能A策略本身沒有用,但是A策略與F策略進行聯合判斷,就會創造1+1>2的化學反應,以下面這個實做為例:

這是策略排列組合最佳化的畫面,依照不同的評價指標(評價策略優劣的指標),找到符合最佳績效的策略組合

策略排列組合最佳化畫面

以上這些,好像就是自寫程式的好處,什麼奇形怪狀的需求都可以試著解決,而不是要依循的一個框架做事。

這邊分享自己的一些實做淺見,希望這樣的架構可以讓大家多思考一下,還有很多部分需要思考,例如目標函數(評價策略優劣的指標)到底該怎麼選,不過本文主要著重在回測差異。以及單利、複利所帶來的優劣、多策略管理,這些都是實做後會遇到的問題,這些會陸續分享。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *