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

閱讀時間約 2 分鐘
  • 文內如有投資理財相關經驗、知識、資訊等內容,皆為創作者個人分享行為。
  • 有價證券、指數與衍生性商品之數據資料,僅供輔助說明之用,不代表創作者投資決策之推介及建議。
  • 閱讀同時,請審慎思考自身條件及自我決策,並應有為決策負責之事前認知。
  • 方格子希望您能從這些分享內容汲取投資養份,養成獨立思考的能力、判斷、行動,成就最適合您的投資理財模式。
筆者是用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+1>2的化學反應,以下面這個實做為例:
這是策略排列組合最佳化的畫面,依照不同的評價指標(評價策略優劣的指標),找到符合最佳績效的策略組合
以上這些,好像就是自寫程式的好處,什麼奇形怪狀的需求都可以試著解決,而不是要依循的一個框架做事。
這邊分享自己的一些實做淺見,希望這樣的架構可以讓大家多思考一下,還有很多部分需要思考,例如目標函數(評價策略優劣的指標)到底該怎麼選,不過本文主要著重在回測差異。以及單利、複利所帶來的優劣、多策略管理,這些都是實做後會遇到的問題,這些會陸續分享。
更多關於Python程式交易的相關文章,歡迎到我的部落格查看。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
在影像處理中,我們總是想要讓特徵更加明顯一點,可以使用銳利化的方式將特徵的邊緣增強,提升影像的細節,圖像銳利後就會有提升解析度的感覺。 拉普拉斯運算子是一種常用於影像增強的方法之一,特別是用於提高影像的邊緣和細節。 在OpenCV中,你可以使用cv2.Laplacian函數來應用拉普拉斯運算子。
Thumbnail
網路爬蟲(web crawler),也叫網路蜘蛛(spider) 是一個強大的自動化工具,可以自由瀏覽、擷取訪問網頁的各項資訊,例如:新聞文章、電商商品價格,當專案中需要添加外部數據或進行大量資料收集時,網路爬蟲就是一個非常實用的工具。
Thumbnail
上一篇我們有介紹如何爬取Goodinfo的資訊並統計分析,還沒閱讀的朋友建議先行閱讀,再進入此篇章會比較容易上手唷,傳送門如下: 🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率 為什麼要做資料視覺化? 相信圖文甚至影音箱對於文字來說更為吸引我們進
Thumbnail
美股“股息成長”選股模型python歷史資料實測, 年化報酬率34.8% beat SPY 13.3%
Thumbnail
如何觀察一家個股的好壞,最直觀的方式就是查詢其財務報表,像是資產負債表或是現金流量表等等,但這些報表中存在著密密麻麻的眾多指標,真的是會讓人看了頭昏眼花,而且也真的是極少數人才會每個指標都關注,大多的人一定都是觀察幾個自認為比較重要的指標而已吧,因為我就是如此,因此今天我們就來學習如何一鍵輕鬆查詢報
Thumbnail
今天繼續我們股市LINE BOT的訊息顯示教學,繼上次我們查詢了平均股利的資訊後,這次我們來製作如何查詢歷年股利的部份,其實大同小異,就差在爬取的網站資料差異而已,那我們就開始今天的教學吧!!
Thumbnail
  python這個程式語言,還有一項優點就是,擁有龐大的模組支援,所以在寫程式時可多利用網路上的模組,節省寫程式的時間。
Thumbnail
  寫程式最重要的目標就是讓重複的工作交給電腦去執行,解放雙手和精力去做重複的事情,今天要介紹的迴圈就是可以讓電腦重複執行程式直到條件結束的方式。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
在影像處理中,我們總是想要讓特徵更加明顯一點,可以使用銳利化的方式將特徵的邊緣增強,提升影像的細節,圖像銳利後就會有提升解析度的感覺。 拉普拉斯運算子是一種常用於影像增強的方法之一,特別是用於提高影像的邊緣和細節。 在OpenCV中,你可以使用cv2.Laplacian函數來應用拉普拉斯運算子。
Thumbnail
網路爬蟲(web crawler),也叫網路蜘蛛(spider) 是一個強大的自動化工具,可以自由瀏覽、擷取訪問網頁的各項資訊,例如:新聞文章、電商商品價格,當專案中需要添加外部數據或進行大量資料收集時,網路爬蟲就是一個非常實用的工具。
Thumbnail
上一篇我們有介紹如何爬取Goodinfo的資訊並統計分析,還沒閱讀的朋友建議先行閱讀,再進入此篇章會比較容易上手唷,傳送門如下: 🚪【Google Colab系列】以Goodinfo!為例,統計一段時間內的最高、最低殖利率 為什麼要做資料視覺化? 相信圖文甚至影音箱對於文字來說更為吸引我們進
Thumbnail
美股“股息成長”選股模型python歷史資料實測, 年化報酬率34.8% beat SPY 13.3%
Thumbnail
如何觀察一家個股的好壞,最直觀的方式就是查詢其財務報表,像是資產負債表或是現金流量表等等,但這些報表中存在著密密麻麻的眾多指標,真的是會讓人看了頭昏眼花,而且也真的是極少數人才會每個指標都關注,大多的人一定都是觀察幾個自認為比較重要的指標而已吧,因為我就是如此,因此今天我們就來學習如何一鍵輕鬆查詢報
Thumbnail
今天繼續我們股市LINE BOT的訊息顯示教學,繼上次我們查詢了平均股利的資訊後,這次我們來製作如何查詢歷年股利的部份,其實大同小異,就差在爬取的網站資料差異而已,那我們就開始今天的教學吧!!
Thumbnail
  python這個程式語言,還有一項優點就是,擁有龐大的模組支援,所以在寫程式時可多利用網路上的模組,節省寫程式的時間。
Thumbnail
  寫程式最重要的目標就是讓重複的工作交給電腦去執行,解放雙手和精力去做重複的事情,今天要介紹的迴圈就是可以讓電腦重複執行程式直到條件結束的方式。