◢ 回測 - 參數最佳化的迷思(附程式碼) ◣
找到「歷史報酬率」好的策略很簡單
但是找到「未來報酬率」好的策略非常難。
為什麼?
原因在於做了過多的參數枚舉與優化,當樣本數夠大,自然會有極端的數據產生,就像是夜路走多了會碰到鬼,人多必有白癡,樹多必有枯枝,就像是量子力學中,波函數坍縮成我們所處的現實,代表著均值,但在極端的多重宇宙樣本中,你也有可能是總統,代表著眾多巧合下的極端事件。
本文用口語的方式,帶你瞭解如何判斷過擬合的演算法
牛頓從蘋果落地的現象,發現了萬有引力,F=ma,因為實驗的雜訊很小(風、熱能散失等等),才能有經典、簡潔的公式,然而把牛頓的實驗,換到財經領域時,可能就不是這麼管用了,當我們在建模時,價格的雜訊遠大於規律
我們很有可能是優化雜訊,而非優化價格的規律!
要怎麼辨別這兩者的不同呢?
我們可以先從直觀的角度出發,究竟歷史上成功的偉人,Bill Gates、Steve Jobs、Elon Musk,這些科技巨擘,他們之所以能夠有今天的成就,是一連串的巧合,還是他們有一些人格特質,促使他們的成功?另一個極端的例子,假如今天某人中了樂透彩而一夕爆富,那很明顯,他很可能是多重宇宙中,非常成功的一個版本,但他的成功,可能並非來自他的人格特質,而是來自運氣。運氣跟命運,看似哲學,但跟策略過擬合有著極大的關連!
模型的過擬合,就像是簽樂透彩,只要參數夠多了,總會中獎。所以策略績效好,究竟是不是運氣好?最重要的關鍵,就是要確保「實驗是有效的」。如何定義實驗是有效的呢?
我們提供了兩篇文章,讓你瞭解防止 overfitting 的方法:
👉避免過擬合的演算法介紹:
https://pse.is/overfitting1
👉演算法的實驗以及程式碼:
https://pse.is/optimization2
深入淺出的介紹,
製作精良的代碼,
需要你多多按讚分享,好東西讓好朋友知道!
#python
#backtesting
#optimization
同時也有2部Youtube影片,追蹤數超過40萬的網紅我要做富翁,也在其Youtube影片中提到,設計好Algo後一定要進行優化,Eva 會教大家幾個基本概念,學識如何畫分 In / Out Sample,如何影響結果。想知道更多關於 Algo Trading 的教學,記住留意 #我要做程式交易。 #Optimization #優化 #InOutSample ================...
「python backtesting」的推薦目錄:
- 關於python backtesting 在 FinLab財經實驗室 Facebook 的精選貼文
- 關於python backtesting 在 FinLab財經實驗室 Facebook 的最讚貼文
- 關於python backtesting 在 FinLab財經實驗室 Facebook 的最佳貼文
- 關於python backtesting 在 我要做富翁 Youtube 的最讚貼文
- 關於python backtesting 在 我要做富翁 Youtube 的精選貼文
- 關於python backtesting 在 Backtesting.py - Backtest trading strategies in Python 的評價
- 關於python backtesting 在 kernc/backtesting.py - GitHub 的評價
- 關於python backtesting 在 The Top 150 Backtesting Open Source Projects on Github 的評價
- 關於python backtesting 在 《介紹一個Python快速backtest策略嘅方法part 2》... 的評價
- 關於python backtesting 在 Python finding reoccuring values in list (backtesting) - Stack ... 的評價
- 關於python backtesting 在 python library for backtesting buying and selling multiple cryptos 的評價
- 關於python backtesting 在 python trade metatrader 5 github api backtesting stock ... 的評價
- 關於python backtesting 在 backtrader, 用於交易策略的python Backtesting庫 - 开发99 的評價
- 關於python backtesting 在 Backtrader strategy github 的評價
- 關於python backtesting 在 Macd Python Github 的評價
- 關於python backtesting 在 Backtesting python github 的評價
python backtesting 在 FinLab財經實驗室 Facebook 的最讚貼文
Python 回測模組分享
昨晚睡不著
研究一下市面上的 Python 回測模組
找到了一款神作: vectorbt
https://github.com/polakowo/vectorbt
.
近期看到最驚艷的回測 package
沒有之一
.
這種 vectorized backtesting 的 package
通常功能比較簡單,
有時候過度封裝,
還不如直接用 numpy、pandas 搭配 ffn 寫就很好了
.
但 vectorbt 的封裝是有意義的
內部使用 numba 加速,
效能比使用numpy、pandas 還要快太多了,
.
原本參數暴力枚舉10000次,可能要好幾分鐘,
但使用 numba 只要幾秒,
真的差太多了,
.
但 使用 numba 通常有一個缺點
就是 numba 必須將 numpy 程式碼包起來,
可能會影響程式的可擴展性
.
但這個 package 竟然神奇的
可以兼容pandas和numpy的操作,
讓原本 pandas 的技術不用因為新框架而砍掉重練
太完美了!
python backtesting 在 FinLab財經實驗室 Facebook 的最佳貼文
免費看:「比特幣新課程更新囉」!
教你做:「三年報酬20倍的策略」!
.
最近快要創新高了呢!
.
假如覺得太佛想要付費...
此文章形式的課程不會收費
主要是謝謝大家長久以來的支持!
只要幫忙多多分享即可~
.
另外要記得按讚追蹤
才能看到最新的單元喔!
.
課程單元:
.
1. 基本面:為什麼要投資比特幣:
https://www.finlab.tw/python-bitcoin-trading-why-bitcoin/
.
2. 歷史資料:用 Python 獲取比特幣價格:
https://www.finlab.tw/btc-crawler-py/
.
3. 買賣訊號:根據歷史價格製作買賣點:
https://www.finlab.tw/btc-trading-signal/
.
4. 策略研發:策略模擬回測 衡量獲利狀況:
https://www.finlab.tw/btc-simple-sma-backtesting/
.
5. 基本面指標:比特幣非常精準的指標原理:
https://www.finlab.tw/best-indicator-bitcoin/
.
6. 指標看盤介面教學:
https://www.finlab.tw/btc-tradingview-intro/
.
7. 三年20倍的策略優化技巧:
https://www.finlab.tw/btc-backtesting-optimization/
.
8. 入金的策略、心理準備
https://www.finlab.tw/btc-deposit-how/
python backtesting 在 我要做富翁 Youtube 的最讚貼文
設計好Algo後一定要進行優化,Eva 會教大家幾個基本概念,學識如何畫分 In / Out Sample,如何影響結果。想知道更多關於 Algo Trading 的教學,記住留意 #我要做程式交易。
#Optimization #優化 #InOutSample
======================
1) 程式交易新手會+試堂:https://edu.money-tab.com/eva-algo-sharing
2) 我要做股神APP下載:http://onelink.to/mtapp
3) 緊貼我們社交平台,不錯過任何免費分析/教學:
YouTube頻道: https://youtube.com/channel/UCdWNwPuaS1o2dIzugNMXWtw?sub_confirmation=1
Facebook專頁:https://facebook.com/203349819681082
python backtesting 在 我要做富翁 Youtube 的精選貼文
1) 程式交易新手會+試堂:https://edu.money-tab.com/eva-algo-sharing
2) 我要做股神APP下載:http://onelink.to/mtapp
3) 緊貼我們社交平台,不錯過任何免費分析/教學:
YouTube頻道: https://youtube.com/channel/UCdWNwPuaS1o2dIzugNMXWtw?sub_confirmation=1
Facebook專頁:https://facebook.com/203349819681082
==============================
Filtering(過濾法)是程式交易中一個常用又兼效用顯著的優化方法,今次 #我要做程式交易,Eva 會以 #Multicharts 內置的 #MovingAverage 作為示範,透過簡單的過濾,便成功提升勝率差不多三分之一,交易次數更降低接近一半。想了解更多 Filtering 的使用方法請留言,或到我們的分享會和 Eva 交流。
喜歡我們的節目,請 Like 及 Share,讓更多人接觸我們平台。
#AlgoTrading #程式交易 #MultiCharts
python backtesting 在 kernc/backtesting.py - GitHub 的推薦與評價
mag_right: :chart_with_upwards_trend: :snake: :moneybag: Backtest trading strategies in Python. - GitHub - kernc/backtesting.py: Backtest trading strategies ... ... <看更多>
python backtesting 在 The Top 150 Backtesting Open Source Projects on Github 的推薦與評價
The Top 150 Backtesting Open Source Projects on Github. Topic > Backtesting. Backtrader ⭐ 7,562 · Python Backtesting library for trading strategies. ... <看更多>
python backtesting 在 Backtesting.py - Backtest trading strategies in Python 的推薦與評價
Backtesting.py is a Python framework for inferring viability of trading strategies on historical (past) data. Of course, past performance is not indicative ... ... <看更多>