2023-05-28|閱讀時間 ‧ 約 3 分鐘

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

筆者是用Python撰寫數據分析、歷史回測、以及實單交易程式。標題的套裝軟體就是常見的TradingView、MultiChart、MT5等等專門為了程式交易而生的語法以及軟體。今天主要想討論一下這兩者的差別以及優劣。
首先我們來看一下,常見的套裝軟體開發策略的步驟吧!
  1. 套入歷史資料
  2. 套用教學範例策略
  3. 自己透過想法調整一些策略細節
  4. 透過參數最佳化找出適當的報酬率曲線
  5. 再研究如何自動化,實單交易
以上述的步驟來看,來講一下Python的劣勢,很明顯的一點就是,沒有辦法在程式小白的階段馬上進行回測實作,以我自己而言,除了程式以外,很多金融觀念需要摸索一陣子。就以回測來說,搞清楚每個績效的計算公式,或是資金槓桿怎麼設計,都要想過。這一點套裝軟體上是佔有優勢的,很多人可能還不清楚完整的細節,就可以開始運作策略了,等到發生問題再來回頭解決。
這是Multichart參數最佳化的畫面,方便我們針對策略裡面的參數進行最佳化的運算,找到符合最佳績效的參數集。
不過凡事一體兩面,Python有劣勢也有優勢,另外來談談Python自寫交易策略的優勢吧,大家可能最常聽到的就是可以用機器學習應用在各領域,投資投機領域也是。Python可以有許多創造性的做法!不過我自己沒有使用任何Python回測套件
以我目前有在使用的交易策略中,都是使用Python實做出來的,由於我自己不是非常勤勞的量化分析者,所以一直在追求一個簡易的框架,可以快速找到多種策略
其實最重要的是跳脫參數最佳化的框架
講一下我自己實做的方法:
  1. 套入歷史資料
  2. 算出交易指標,例如:均線
  3. 制定策略(又稱特徵),不過不會馬上進行績效驗證,例如:價格站上均線、黃金交叉等
  4. 產生出一個策略池(又稱特徵池),簡單來說就是一堆策略
  5. 將策略排列組合,最佳化找出適當的報酬率曲線
  6. 再研究如何自動化,實單交易
流程圖如下:
在這一個架構下,最重要的就是第5步策略排列組合,因為有可能A策略本身沒有用,但是A策略與F策略進行聯合判斷,就會創造1+12的化學反應,以下面這個實做為例:
這是策略排列組合最佳化的畫面,依照不同的評價指標(評價策略優劣的指標),找到符合最佳績效的策略組合
以上這些,好像就是自寫程式的好處,什麼奇形怪狀的需求都可以試著解決,而不是要依循的一個框架做事。
這邊分享自己的一些實做淺見,希望這樣的架構可以讓大家多思考一下,還有很多部分需要思考,例如目標函數(評價策略優劣的指標)到底該怎麼選,不過本文主要著重在回測差異。以及單利、複利所帶來的優劣、多策略管理,這些都是實做後會遇到的問題,這些會陸續分享。
更多關於Python程式交易的相關文章,歡迎到我的部落格查看。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.