Dangers of Backtesting - jaeaehkim/trading_system_beta GitHub Wiki
Motivation
- ๋๋ถ๋ถ์ Quant Researcher๋ค์ Backtest๋ฅผ Research Tool๋ก ์๊ฐํ๋๋ฐ ์ด๊ฒ์ ์๋ชป๋์๋ค.
- Backtest๋ฅผ ์ฌ๋ฌ ๋ฒ ์คํํ๊ฒ ๋๋ฉด ์ ํ ํธํฅ์ ๊ฒฐ๊ณผ๋ก ๋๋ถ๋ถ ๊ฒฐํจ์ ๊ฐ๊ฒ ๋จ. (Bailey, Borwein, Lopez and Zhu, 2014)
Mission Impossible : The Flawless Backtest
Backtest?
- ํ์์ ๊ด์ : ์ญ์ฌ์ ์๋ฎฌ๋ ์ด์
- ์๋ฏธ : ์ด๋ค ์ ๋ต์ด ๊ณผ๊ฑฐ ์์ ๊ตฌ๊ฐ์ ๋ฐ์ดํฐ์ ์ ์ฉ๋๋๋ผ๋ฉด ์ด๋ค ์ฑ๋ฅ์ ๋ํ๋์๊น? -> ์คํ(Experiment)์ด ์๋ ๊ฐ์ค(Hypothesis)
- ์คํ : ํ๊ฒฝ ๋ณ์๋ฅผ ํต์ ํ ํ ์คํ์ ๋ฐ๋ณตํด ์ ๋ฐํ ์์ธ-๊ฒฐ๊ณผ ๊ด๊ณ๋ฅผ ์ถ๋ก ํ๋ ๊ฒ
- ์คํ์ด ์๋ ๊ฐ์ค์ ์ด๋ค ๊ฒ๋ (์ค์ฆ์ ) ์ฆ๋ช ์ ํ ์ ์๋ค.
- ํ์์ฑ : ๋ฒ ํ ํฌ๊ธฐ / ๊ฑฐ๋๋ / ๋น์ฉ์ ๋ํ ๋ณต์๋ ฅ / ์๋๋ฆฌ์ค์ ๋ํ ํ๋ ์ธก๋ฉด์์์ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ(sanity check)
- ์๋ฏธ : ์ด๋ค ์ ๋ต์ด ๊ณผ๊ฑฐ ์์ ๊ตฌ๊ฐ์ ๋ฐ์ดํฐ์ ์ ์ฉ๋๋๋ผ๋ฉด ์ด๋ค ์ฑ๋ฅ์ ๋ํ๋์๊น? -> ์คํ(Experiment)์ด ์๋ ๊ฐ์ค(Hypothesis)
Seven Sins of Quantitative Investing (Luo et al. 2014)
- Survivorship bias
- ํฌ์ univers๋ฅผ ํ์ฌ ๊ฒ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํ์ฌ ์ํ,ํ์ฐ ์ฆ๊ถ์ ๋ํ ์ ๋ณด ๋ฏธ๋ฐ์
- Look-ahead bias
- ํ ์์ ์์ ๊ณต๊ฐ๋์ง ์์ ์ ๋ณด๋ฅผ ๊ทธ ์์ ์์ ํ์ฉํ ์ ์์๋ ๊ฒ์ฒ๋ผ ์คํ. point in time ์ผ๋ก ๋ฐ์ดํฐ filling
- Storytelling
- ํน์ ๋๋ค ํจํด ์ ๋นํ
- Data minig and data snooping
- ๋ชจ๋ธ์ ํ ์คํธ ์งํฉ์์ ํ๋ จ ํน์ ๋ฆฌ์์ฒ๊ฐ ์ฌ๋ฌ ๋ฒ ๋ฏธ๋ ์ ๋ณด๋ฅผ ํ์ธํ ๊ฒ์ ์์ ๋ ๋ชจ๋ฅด๊ฒ ๋ชจ๋ธ์ ๋ฐ์
- Transaction costs
- ๊ฑฐ๋๋น์ฉ ์๋ฎฌ๋ ์ด์ ์ ์ ๋ฐํ๊ฒ ๊ตฌํํ๋ ๊ฒ์ ์ด๋ ค์ฐ๋ ๊ฑฐ๋๋น์ฉ์ ๋จ์ํ๊ฒ๋ผ๋ ๋ฐ์ํ์ง ์์ผ๋ฉด ์ํ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ์ฐฉ๊ฐํ๊ฒ ๋จ.
- Outliers
- ์์์ ๊ทน๋จ์ ๊ด์ธก๊ฐ์ ์ผ๋์ ๋๊ณ ์ ๋ต ์๋ฆฝ
- Shorting
- ๋งค๋ ํฌ์ง์ ์ทจํ๋ ๊ฒฝ์ฐ์ 1)๋์ถ ๋น์ฉ, 2)๊ฐ์ฉ ๋์ถ๊ธ๊ณผ ์ฌ๊ณ , ์๋์ ์์์ ์ข ์๋์ด ์๋๋ฐ ์ด๋ฅผ ๋ฐ์ํ๊ธฐ๊ฐ ์ฝ์ง ์์
Even if your Backtest is flawless, It is probably wrong
- ์์ seven sins๋ฅผ ์ด๋ฏธ ์๊ณ ์๊ณ ์ด๋ฅผ ํผํ๋ ค๊ณ ๋
ธ๋ ฅํ์ด๋ ์๋ง ์๋ชป ๋์ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
- ์ด์ : ๊ทธ๋ฐ ๋ ธ๋ ฅ์ ์ํด์๋ ์๋ ๋์ ์๋ง ๋ฒ์ Backtest๋ฅผ ์คํํ๋ค๋ ๊ฒ์ด๊ณ , ๋์ผํ ๋ฐ์ดํฐ์ ์ ๋ํด ์์ฐจ๋ก ํ ์คํธ๋ฅผ ์ํํ๋ค ๋ณด๋ฉด ๋ฐ์ํ๋ ํต๊ณ์ ์ํ์ ๊ฐ๊น์
- ์ด๋ฅผ ๋ง๊ธฐ ์ํด์ ์ด๋ป๊ฒ ํด์ผํ ๊น?
Backtesting is not a Research Tool
- Backtest OVerfitting์ ๋ค์์ Backtest์ ๋ํ "์ ํ ํธํฅ"์ผ๋ก ์ ์ํ ์ ์๋ค. ์ฃผ์ด์ง ๋ฐ์ดํฐ ์์์ ์ข ์์ ์ด๊ธฐ ๋๋ฌธ์ Recommendation Method๋ฅผ ํ์ฉํ ๋์ "์ ํ ํธํฅ"์ ์ค์ผ ์ ์์ ๋ฟ์ด์ง๋ง ์ด๋ ์ค์ ์์ ๋งค์ฐ ํฐ ์ฐจ์ด๋ก ์ด์ด์ง๋ค.
Recommendation Method
- Feature Importance๋ฅผ ์ ๊ทน ํ์ฉํ๋ ๊ฒ
- Feature๊ฐ ์ค์ํ๋ค๊ณ ๊ทธ๊ฒ์ด ํฌ์ ์ ๋ต์ ํตํด ์ด์ต์ ์ฐฝ์ถํ๋ค๋ ๊ฒ๊ณผ ๋์น๋ ์๋. Feature Importance != Performance
- ML Model์ ์ํด ๋ฐ๊ฒฌ๋ ํจํด์ ์ฑ์ง์ ์ดํดํ๋ ๊ฒ์ ๋์์ ์ฃผ๋ ๊ฒ์ด ์ฃผ์ ๋ชฉ์
- ์ฌ๋ฐ๋ฅธ Feature Importance๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด (Data Structures, Labeling, Sample Weights, Ensemble Methods, Cross Validation in Model)์ ์ฐ๊ตฌํ๊ณ ์ด ๋ชจ๋ ๊ณผ์ ์ Backtest ํ๊ธฐ ์ ์ ์ด๋ค์ง๋ค. Backtest๋ฅผ ํ๊ณ ๋์๋ ํ์ธ๋ง ํ ๋ฟ์ด๋ค.
- ํต์ฌ : Feature Importance๋ Backtest๋ฅผ ํ๊ธฐ ์ ์ ๋์ถ๋๋ค๋ ์
- Backtest์ ๋ชฉ์ : ๋์ ๋ชจ๋ธ์ ํ๊ธฐํ๋ ๊ฒ. ์ฆ, Backtest์ ์์กดํด ๋ชจ๋ธ์ ์กฐ์ ํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์๊ฐ ๋ญ๋น
- ํน์ ์ฆ๊ถ์ ๋ํ ๊ฒ์ด ์๋ "์ ์ฒด ์์ฐ ๋ถ๋ฅ"๋ "ํฌ์ ์์ญ"์ ๋ํ ๋ชจ๋ธ์ ๊ฐ๋ฐ
- ML model๋ก ํ๋ ๊ฒฝ์ฐ๋ Bagging์ ์ ๊ทน ํ์ฉํ ๊ฒ
- Backtest๋ ํญ์ ๋ง์ง๋ง์ ์งํํ๊ณ , ๋ฐ์ดํฐ์ ์ ์ํํ ๋ชจ๋ ๋ฐฑํ ์คํธ๋ฅผ ๊ธฐ๋กํด ๋ฐฑํ ์คํธ ๊ณผ์ ํฉ ํ๋ฅ (PBO)์ ์ถ์ ํ ๊ฒ
- "์ญ์ฌ์ ์๋ฎฌ๋ ์ด์
"์ด ์๋ "์๋๋ฆฌ์ค ์๋ฎฌ๋ ์ด์
"์ ์ํํ ๊ฒ
- ์ฌ๋ฌ ์๋๋ฆฌ์ค์ ๊ณผ์ ํฉ ๋๋ ๊ฒ์ ๋ ์ด๋ ต๋ค. ์ญ์ฌ์ ์๋ฎฌ๋ ์ด์ ์ ํ๋์ ์๋๋ฆฌ์ค์ ํธํฅ๋๊ฒ ๋๋ค. ํด๋น ๋ฐฉ๋ฒ์ Backtesting through Cross Validation์ผ๋ก ์ํํจ
- Feature Importance๊น์ง ๊น์ด ์ฐ๊ตฌํ ๋ค Backtest ๊ฒฐ๊ณผ๊ฐ ์ข์ง ์๋ค๋ฉด ๋ฐ๋ฐ๋ฅ๋ถํฐ ๋ค์ ์์ํ๋ผ.
Strategy Selection
- Cross Validation ๊ธฐ๋ฒ์ ์ฌ๋ฌ Part์ ์ ์ฉํ ์ ์๋๋ฐ ์ด๋ฏธ Cross Validation in Model์ Feature Selection๊ณผ Hyper Prameter Tuning์ด ์ฃผ๋ ๋ชฉ์ ์ด๋ค.
- Cross Validation์ Strategy Selection & Backtesting์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ํ์ฅํ ์ ์๋ค.
- CV๋ฅผ Strategy Selection์ ํ์ฉํ๋ฉด PBO(Probability of Backtest Overfitting)์ ๊ณ์ฐํ ์ ์๊ณ , CV๋ฅผ Backtesting์ ํ์ฉํ๋ฉด ์ฌ๋ฌ Scenario Simulation์ ํ ์ ์๊ฒ ๋๋ค.
- Motivation
- ์ผ๋ฐ์ ์ผ๋ก๋ ์ฌ๋ฌ ๋ชจ๋ธ์ด ์๊ณ ๊ฐ ๋ชจ๋ธ์ ๋ํ ์ญ์ฌ์ ์๋ฎฌ๋ ์ด์ (like Walk-Forward)์ ์งํํ๋ค๋ฉด ์๋ฎฌ๋ ์ด์ ๊ฒฐ๊ณผ๋ ๋ชจ๋ธ ๊ฐ์๋งํผ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด ์ ์ฒด ๊ธฐ๊ฐ์ ๋ํ Sharpe Ratio ๊ฐ๋ ๋ชจ๋ธ ๊ฐ์๋งํผ ๋์ค๊ฒ ๋๊ณ ์ด๋ฅผ Ranking์ผ๋ก Top N๊ฐ๋ฅผ ๋ฝ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ Strategy Selection ๋ฐฉ์์ด๋ค. Walk Forward๋ก ๋์จ Sharpe Ratio ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉด Overfitting์ ์ทจ์ฝํ๋ค.
- CV in Strategy Selection : Calculate PBO thorugh the CSCV(Combinatorially Symmetric Cross-Validation) (Bailey et al, 2017a)
-
N๊ฐ ๋ชจ๋ธ์ ๋ํ Performance(Ex.Return) Series๋ชจ์ ํ๋ ฌ M์ ๊ตฌ์ฑ (T X N)
-
- ํ๋ ฌ M์ ์๋ก ๊ณตํต ์์๊ฐ ์๋ ๋์ผํ ์ฐจ์์ ๊ฐ๋ ์ง์ S๊ฐ์ ๋ถํ๋ ฌ๋ก ๋ง๋ ๋ค. M_s (T/S X N)
-
- M_s์ ์กฐํฉ์ผ๋ก ํฌ๊ธฐ๊ฐ S/2์ธ C_s๋ฅผ ๋ง๋ ๋ค (S/2 X N) ๋๋จธ์ง ์งํฉ์ ์๋์ผ๋ก ๊ฒฐ์ ๋จ.
- ์๋ฅผ๋ค์ด, ํ๋ ฌ M์ด 100 X 10 ์ด๊ณ S=20์ด๋ฉด M_s๋ 5 X 10์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ์ด๋, C_s๋ M_s์ ์ ํ ๊ทธ๋ฃน์ด๋ฏ๋ก 20C10๊ฐ์ ์กฐํฉ์ด ์๊ธด๋ค. C_s์ ์์ ํ๋๋ฅผ c๋ผ๊ณ ํ๋ค. ์์ ํ๋์ ํ๋ ฌ ํฌ๊ธฐ๋ 50X100์ด ๋๋ค.
- M_s์ ์กฐํฉ์ผ๋ก ํฌ๊ธฐ๊ฐ S/2์ธ C_s๋ฅผ ๋ง๋ ๋ค (S/2 X N) ๋๋จธ์ง ์งํฉ์ ์๋์ผ๋ก ๊ฒฐ์ ๋จ.
-
- c์๋ M_s๊ฐ 10๊ฐ๊ฐ ์์ผ๋ฏ๋ก ์ด๋ฅผ Sequence๋ฅผ ์ด๋ฆฌ๋ฉด์ ํ๋์ Matrix J๋ก ๊ตฌ์ฑํ๋ค. (Sequence๋ฅผ ์ ์งํ๋ฉด 1๊ฐ ๋ฐ์ ์์ฑํ์ง ๋ชปํจ)
- c์ ์์ง ์์ ๋๋จธ์ง M_s๋ฅผ ํ์ฉํด Matrix J Bar๋ฅผ ๊ตฌ์ฑํ๋ค.
-
Matrix J๋ฅผ ํ์ฉํด Performance Metric์ ๊ณ์ฐํ๋ค.
- ๊ฐ ์ด์ด Return์ ๋ํ๋ธ๋ค๋ฉด ๊ฐ ์ด๋ง๋ค Sharpe ratio๋ฅผ ๊ณ์ฐํด๋ผ ๊ฒ์ด๊ณ N์ฐจ์์ ์ฑ๋ฅ ํต๊ณ๋ ๋ฒกํฐ R์ ๊ตฌ์ฑํ ์ ์๋ค. R์ n๋ฒ์งธ ์์๋ J์ n๋ฒ์งธ ์ด์ ์ฑ๋ฅ์ผ๋ก ์ฐ๊ฒฐ๋๋ค.
-
- n_star๋ J์์ ๊ฒฐ์ ๋ ๊ฐ์ด๋ค.
-
Matrix J Bar๋ฅผ ํ์ฉํด ์ฑ๋ฅ ํต๊ณ๋ ๋ฒกํฐ R Bar๋ฅผ ๊ตฌ์ฑํ๋ค.
-
- R Bar์์ n_star๊ฐ ์๋์ percentage ์์ w_c๋ฅผ ๊ณ์ฐํ๋ค. (์ ๋์ ์์๋ r_c)
-
- logit์ ๋์ ๊ฐ์ ๊ฐ์ง ์๋ก IS์ OOS์ performance์ ์ผ๊ด์ฑ์ ๊ฐ๋ ๊ฒ์ ์๋ ค์ค
- logit์ ๋์ ๊ฐ์ ๊ฐ์ง ์๋ก IS์ OOS์ performance์ ์ผ๊ด์ฑ์ ๊ฐ๋ ๊ฒ์ ์๋ ค์ค
-
C_s์ ๋ชจ๋ c์ ๋ํด ์์ ๊ฐ์ ๊ณ์ฐ์ ์งํํ๋ค. ๊ฐ c๋ง๋ค logit์ ๊ณ์ฐํ ์ ์๋ค.
- PBO๋ฅผ ๊ณ์ฐํ๋ฉด ์ด๋ OOS๋ณด๋ค ์ฑ๋ฅ์ด ๋จ์ด์ง๋ IS ์ต์ ์ ๋ต๊ณผ์ ์ฐ๊ณ๋ ํ๋ฅ ์ ๊ณ์ฐ
-
Application to Quant System
- PBO๋ฅผ ๊ณ์ฐํด๋ ๊ทธ ํ๋ฅ ์ด ์ด๋์ ๋์ ์๋ฏธ๋ฅผ ํ์ ํ๊ธฐ๋ ์ฝ์ง ์๋ค. ๊ณ์ํด์ Tracking ํ์ง ์๋ ์ด์.
- ๋์1) C_s์ ๋ชจ๋ c์ ๋ํด ๊ทธ J์ J Bar์์์ ๋ณํ์ ์ ๋๋ฅผ n๊ฐ ์ด์ ๋ํด ์ ๋ถ ๊ณ์ฐํ์ฌ ํ๊ท ์ ๋ด์ด ๊ทธ๊ฒ์ Top Strategy๋ฅผ ์ ์ ํ๋ ์์ผ๋ก ๊ณ์ฐ ๊ฐ๋ฅ
- ๋์2)
- ๋์1)์ ๋ฐฉ์์ CV in Backtesting์ ํตํด ํด๊ฒฐํ ์ ์๋ ๋ถ๋ถ์ด๊ธฐ๋ ํ๋ค.
- N๊ฐ์ ๋ชจ๋ธ์ ๋ํด Walk-Forwardํ ๊ฒฝ์ฐ์ CPCV๋ฅผ ํ ๊ฒฝ์ฐ๋ฅผ ๋น๊ตํด์ PBO๊ฐ ์ค์ด๋ค์๋์ง๋ฅผ Checkํ๋ ๋ฐฉ์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.