Lumaktaw sa pangunahing nilalaman
walk-forward analysisstrategy validationoverfitting
Walk-forward analysis para sa mga crypto strategy

Walk-forward analysis para sa mga crypto strategy

Ang isang backtest na nagpapakita ng 200% na taunang return ay nakalalasing na pakiramdam. Nakahanap ka na ng gintong strategy. Kaya lang, hindi pa pala — malaki ang posibilidad na ang nahanap mo ay isang strategy na perpektong naka-fit sa nakaraang data at mabibigo sa sandaling makaharap nito ang live na merkado. Ito ang problema ng overfitting, at mas maraming trading account ang sinisira nito kaysa sa mga maling market call.

Ang walk-forward analysis (WFA) ang panlaban dito. Isa itong mahigpit na validation methodology na sumusubok kung ang performance ng iyong strategy ay tunay o produkto lamang ng curve-fitting. Sa halip na subukan sa parehong data na ginamit mong pang-optimize, sistematikong sinasanay ng WFA ang isang segment ng data at sinusubok sa isang segment na talagang hindi pa nakikita — pagkatapos ay inuulit ang prosesong ito sa buong dataset mo.

Tuturuan ka ng gabay na ito kung paano i-implement ang walk-forward analysis nang hakbang-hakbang, magdisenyo ng mga robustness test na naglalantad ng mahihinang strategy, mag-apply ng mga statistical significance threshold, at bumuo ng komprehensibong validation checklist na naghihiwalay sa mga strategy na karapat-dapat i-trade sa mga strategy na dapat itapon.

Mahahalagang Punto

  • Ang simpleng backtesting sa historical data ay halos palaging nag-o-overstate ng performance dahil nahahanap ng optimizer ang mga parameter na nagkataong gumana sa partikular na data na iyon — hindi ang mga parameter na tumutukoy sa tunay na market edge.
  • Hinahati ng walk-forward analysis ang data sa mga rolling na in-sample (training) at out-of-sample (testing) window. Ang 3:1 na ratio (hal. 6 na buwan na optimize, 2 buwan na test) ay maaasahang panimulang punto.
  • Ang parameter stability testing — pag-iiba-iba ng bawat parameter ng ±20% at pagsusuri kung bumababa ang performance nang higit sa 50% — ang naglalantad kung ang strategy mo ay nakaupo sa isang robust na plateau o sa isang mahinang peak.
  • Kailangang subukan ang isang strategy sa iba't ibang pair, timeframe, at market regime (bull/bear/sideways) para makumpirma na hindi ito curve-fit sa iisang partikular na dataset.
  • Ang statistical significance ay nangangailangan ng minimum na 30 trade para sa pangunahing pagkamaaasahan at 100+ trade para sa mataas na kumpiyansa. Ang mas kaunting trade ay nangangahulugang maaaring random chance lang ang iyong resulta.
  • Ang isang totoong DCA strategy na nagpapakita ng 45% taunang return sa backtest ngunit 12% lang sa walk-forward analysis ay nagpapakita ng tipikal na performance gap na dulot ng overfitting.

Panganib sa trading

Ang mga halagang dolyar at porsyento sa gabay na ito ay mga halimbawang kalkulasyon, hindi rekomendasyon. Maaaring malugi sa crypto trading — maglaan sa bawat bot ng pondong kaya mong mawala, at basahin ang buong Pagsisiwalat ng Panganib bago mag-live.

Bakit Hindi Sapat ang Simpleng Backtesting

Kung nabasa mo na ang aming gabay sa Paano I-Backtest ang Iyong Crypto Trading Strategy, naiintindihan mo na ang mga pangunahing kaalaman sa backtesting. Ngayon, harapin natin ang pundamental nitong kahinaan: overfitting.

Ang Problema ng Overfitting

Nangyayari ang overfitting kapag ang mga parameter ng iyong strategy ay na-tune nang sobrang presiso sa historical data kaya't nahuhuli nito ang noise — mga random na pattern — sa halip na signal — tunay na kilos ng merkado. Ang isang overfitted na strategy ay mukhang henyo sa backtest ngunit gumuguho sa live trading.

Narito kung bakit ito nangyayari nang mekanikal:

Isipin na mayroon kang 12 buwang BTC price data at isang DCA bot na may 6 na configurable na parameter. Nagpapatakbo ka ng optimizer na sumusubok ng 10,000 kombinasyon ng parameter at pinipili ang isa na may pinakamataas na profit. Tiyak na makahahanap ang optimizer ng isang kombinasyon na "nag-predict" ng eksaktong dips at recoveries sa loob ng 12 buwang window na iyon — hindi dahil nakadiskubre ito ng tunay na pattern, kundi dahil sa 10,000 pagsubok, may kombinasyon na magkakataong tumugma sa random na noise sa data.

Analohiya: Ang paggulong ng dice nang 10,000 beses at pagkakita ng pagkakasunod-sunod kung saan ang paglabas ng 6 ay laging nauuna sa isang rally ng stock market ay hindi nangangahulugang ang dice ay nakaka-predict ng merkado. Sa sapat na data mining, palagi kang makahahanap ng mga huwad na korelasyon.

Ang mga Numero sa Likod ng Overfitting

Isaalang-alang ang isang parameter space na may:

  • 5 safety order configuration (3, 5, 7, 10, 12)
  • 5 step scale value (1.0, 1.2, 1.4, 1.6, 1.8)
  • 5 volume scale value (1.0, 1.3, 1.5, 1.8, 2.0)
  • 4 take-profit level (1.0%, 1.5%, 2.0%, 3.0%)
  • 3 initial deviation value (1.5%, 2.0%, 3.0%)

Iyan ay 5 × 5 × 5 × 4 × 3 = 1,500 kombinasyon. Ang pinakamahusay na performer ay halos tiyak na mag-o-overstate ng totoong performance. Sa 10,000+ kombinasyon (na sinusubok ng maraming optimizer), napakalaki ng panganib ng overfitting.

Ang pangunahing tuntunin ng strategy development: Huwag kailanman magtiwala sa mga performance number mula sa parehong data na ginamit para i-optimize ang strategy. Ang in-sample na resulta ay walang saysay para hulaan ang live performance. Ang out-of-sample na resulta lamang — mga test sa data na hindi pa nakikita ng optimizer — ang nagbibigay ng valid na performance estimate.


Walk-Forward Analysis: Hakbang-Hakbang

Nilulutas ng walk-forward analysis ang problema ng overfitting sa pamamagitan ng paglikha ng isang structured na proseso kung saan laging magkahiwalay ang optimization at testing.

Ang Apat na Hakbang na Proseso

Hakbang 1: Hatiin ang Iyong Data sa mga Window

Hatiin ang iyong kabuuang historical dataset sa mga sunod-sunod na pares ng window:

  • In-sample window (training): Ang data na ginagamit para i-optimize ang mga parameter
  • Out-of-sample window (testing): Ang data na ginagamit para subukan ang mga na-optimize na parameter — hindi kailanman nakikita ng optimizer ang data na ito

Hakbang 2: I-optimize sa In-Sample Data

Patakbuhin ang iyong parameter optimizer sa in-sample window lamang. Hanapin ang set ng parameter na may pinakamahusay na performance para sa partikular na panahong iyon.

Hakbang 3: Subukan sa Out-of-Sample Data

Kunin ang mga parameter na nahanap sa Hakbang 2 at patakbuhin ang mga ito — nang walang anumang pagbabago — sa out-of-sample window. Itala ang performance. Ito lang ang numerong mahalaga.

Hakbang 4: Gumulong Pasulong at Ulitin

I-slide ang buong window pasulong nang kasinghaba ng out-of-sample at ulitin ang Hakbang 1-3. Ipagpatuloy hanggang masaklaw mo ang buong dataset.

Visual na Representasyon ng Sliding Window

Narito kung paano mapoproseso ang isang 24-buwang dataset gamit ang 6-buwang in-sample at 2-buwang out-of-sample window:

PassIn-Sample (Optimize)Out-of-Sample (Test)
1Buwan 1-6Buwan 7-8
2Buwan 3-8Buwan 9-10
3Buwan 5-10Buwan 11-12
4Buwan 7-12Buwan 13-14
5Buwan 9-14Buwan 15-16
6Buwan 11-16Buwan 17-18
7Buwan 13-18Buwan 19-20
8Buwan 15-20Buwan 21-22
9Buwan 17-22Buwan 23-24

Bawat pass ay gumagawa ng isang out-of-sample na resulta. Ang iyong panghuling performance estimate ay ang agregado ng lahat ng 9 na out-of-sample na panahon — 18 buwan ng tunay na out-of-sample performance mula sa isang 24-buwang dataset.

Pansinin na nag-o-overlap ang mga in-sample window (gumagalaw ng 2 buwan bawat beses, hindi tumatalon ng 8). Nagbibigay ito sa iyo ng mas maraming out-of-sample data point, na nagpapataas ng statistical reliability ng iyong panghuling performance estimate. Ang trade-off ay ang computational cost — mas maraming pass ay nangangahulugang mas maraming optimization run.

Anchored vs Rolling Walk-Forward

Ang halimbawa sa itaas ay gumagamit ng rolling na approach kung saan gumagalaw pasulong ang in-sample window. Ang alternatibo ay ang anchored na approach kung saan laging nagsisimula sa umpisa ang in-sample window:

PassIn-Sample (Anchored)Out-of-Sample
1Buwan 1-6Buwan 7-8
2Buwan 1-8Buwan 9-10
3Buwan 1-10Buwan 11-12
4Buwan 1-12Buwan 13-14
.........

Ang rolling ay mas mabilis umangkop sa nagbabagong kondisyon ng merkado ngunit may mas kaunting training data bawat window. Ang anchored ay gumagamit ng mas maraming data bawat window (parami nang parami habang sumusulong ka) ngunit mas mabagal umangkop sa mga pagbabago ng regime. Para sa mga crypto market, kung saan madalas magbago ang mga regime, karaniwang mas gusto ang rolling.


Pagtatakda ng Sukat ng In-Sample Window

Ang sukat ng iyong in-sample window ay isa sa mga pinakamahalagang desisyon sa walk-forward analysis. Kapag namali ka rito, hindi maaasahan ang iyong resulta anuman ang ibang bagay.

Ang 3:1 na Panuntunan

Ang maaasahang panimulang punto ay isang 3:1 na ratio sa pagitan ng in-sample at out-of-sample window:

In-SampleOut-of-SampleKabuuang CycleKaso ng Paggamit
3 buwan1 buwan4 na buwanMabilis umangkop, panandaliang strategy
6 na buwan2 buwan8 buwanStandard na DCA at swing strategy
9 na buwan3 buwan12 buwanPangmatagalang trend-following strategy
12 buwan4 na buwan16 na buwanNapakatiyagang strategy na mababa ang frequency

Masyadong Maliit: Ang Problema ng Noise

Kung masyadong maliit ang iyong in-sample window (hal. 1-2 buwan), gumagana ang optimizer gamit ang limitadong data na maaaring kumakatawan lamang sa isang market regime. Ang mga parameter na na-optimize sa 6 na linggo ng bull market ay mabibigo sa sandaling lumihis ang merkado tungong sideways o bearish. Ang mga maliliit na window ay gumagawa ng hindi stable na mga parameter na dramatikong nagbabago sa bawat pass — isang red flag.

Minimum na gabay: Dapat maglaman ang iyong in-sample window ng hindi bababa sa 30 natapos na bot deal (trade). Kung nag-a-average ang iyong bot ng 2 deal bawat linggo, kailangan mo ng hindi bababa sa 15 linggo (~4 na buwan) ng in-sample data.

Masyadong Malaki: Ang Problema ng Adaptasyon

Kung masyadong malaki ang iyong in-sample window (hal. 18-24 na buwan), inaaverage ng optimizer ang maraming market regime. Ang resultang mga parameter ay isang kompromiso na gumagana nang "okay lang" sa lahat ng kondisyon ngunit hindi mahusay sa anuman. Sa crypto, kung saan ang mga paglipat ng regime ay biglaan at dramatiko, ang mga lumang parameter ay nag-iiwan ng pera sa mesa.

Maximum na gabay: Para sa karamihan ng crypto strategy, ang 9-12 buwan na in-sample data ang pinakamataas na hangganan. Lampas doon, ang pinakalumang data ay maaaring kumakatawan sa mga kondisyon ng merkado na sobrang kaiba sa kasalukuyan kaya't nagdadagdag ito ng noise sa halip na signal.

Isang praktikal na test: kung nagbabago ang mga optimal na parameter nang higit sa 30% sa pagitan ng sunod-sunod na walk-forward pass, masyadong maliit ang iyong in-sample window. Kung halos hindi ito nagbabago sa 6+ pass, maaaring masyadong malaki (o masyadong magaspang ang iyong parameter space). Ang katamtamang pagkakaiba — mga parameter na gumagalaw ng 5-15% sa pagitan ng mga pass — ay nagpapahiwatig ng magandang pagtatakda ng sukat ng window.


Parameter Stability Testing

Hindi sapat ang paghahanap ng "pinakamahusay" na set ng parameter. Kailangan mong beripikahin na ang iyong strategy ay nakaupo sa isang robust na plateau — isang rehiyon ng parameter space kung saan ang mga kalapit na parameter ay gumagana rin nang maayos — sa halip na isang mahinang peak — isang solong punto na gumagana nang henyo ngunit kung saan ang anumang maliit na pagbabago ay nagdudulot ng katastropikong pagkabigo.

Ang ±20% na Test

Para sa bawat na-optimize na parameter, subukan ang performance habang iniiba ang parameter ng ±10% at ±20% mula sa optimal nitong value. Suriin kung gaano kalaki bumababa ang performance.

Halimbawa: Nahanap ng iyong optimizer ang mga optimal na parameter na ito para sa isang BTC DCA bot:

  • Take profit: 1.8%
  • Step scale: 1.4
  • Volume scale: 1.5
  • Initial deviation: 2.5%

Ngayon subukan ang mga variation:

Parameter-20%-10%Optimal+10%+20%
Take Profit1.44%1.62%1.80%1.98%2.16%
Annual Return18.2%21.5%24.1%22.8%20.3%
Max Drawdown-12.1%-11.4%-10.8%-11.2%-12.5%

Ito ay isang robust na plateau: ang pag-iiba ng take profit ng ±20% ay nagpapabago ng annual return mula 24.1% tungong hanay na 18.2-22.8% — halos 25% na degradasyon sa pinakamasama. Stable ang strategy.

Ihambing sa isang mahinang peak:

Parameter-20%-10%Optimal+10%+20%
Take Profit1.44%1.62%1.80%1.98%2.16%
Annual Return3.1%14.2%38.7%11.8%-2.4%
Max Drawdown-28.3%-18.1%-8.2%-22.5%-35.1%

Ito ay isang mahinang peak: ang "optimal" na return na 38.7% ay bumabagsak tungong 3.1% o kahit negatibong return sa maliliit na pagbabago ng parameter. Ang strategy na ito ay curve-fit at mabibigo sa live trading dahil ang totoong kondisyon ng merkado ay hindi kailanman perpektong tumutugma sa mga na-optimize na parameter.

Ang 50% na degradasyon na panuntunan: Kung ang pag-iiba ng anumang solong parameter ng ±20% ay nagdudulot ng pagbaba ng performance nang higit sa 50%, mahina ang strategy at malamang overfitted. Ang pagbabago ng parameter mula 24% tungong 12% annual return ay 50% na degradasyon — nasa hangganan. Ang pagbabago mula 38.7% tungong 3.1% ay 92% na degradasyon — itapon ang strategy nang buo.


Robustness Testing sa Iba't Ibang Dimensyon

Ang isang strategy na gumagana lamang sa isang pair, isang timeframe, o isang market regime ay hindi robust — ito ay curve-fit. Ang mga tunay na market edge ay nananatili sa mga magkaugnay ngunit magkaibang kondisyon.

Dimensyon 1: Iba't Ibang Trading Pair

Kung ang iyong DCA bot strategy ay na-optimize sa BTC/USDT, subukan ang parehong parameter (o i-optimize muli) sa:

PairInaasahang Resulta kung RobustRed Flag
ETH/USDTKatulad na direksyon, bahagyang magkaibang magnitudeNegatibong return
SOL/USDTKatulad na direksyon, mas mataas na epekto ng volatilityNegatibong return
BNB/USDTKatulad na direksyon, magkaibang magnitudeGanap na magkaibang kilos

Interpretasyon: Ang isang robust na DCA strategy ay dapat gumana sa anumang liquid, large-cap na crypto pair — ang pinagbabatayang kilos (mean reversion pagkatapos ng dip) ay unibersal sa mga asset na ito. Kung ang iyong strategy ay nagpapakita ng 30% annual return sa BTC ngunit -5% sa ETH, malamang na naka-tune ang mga parameter sa mga BTC-specific na pattern na hindi nag-je-generalize.

Panuntunan: Subukan sa hindi bababa sa 3 magkaibang pair. Kung 2 sa 3 ay nagpapakita ng positibong out-of-sample return, may cross-pair robustness ang strategy.

Dimensyon 2: Iba't Ibang Timeframe

Ang mga parameter na na-optimize para sa 1-oras na candle data ay dapat magpakita ng katulad na direksyon ng resulta sa 4-oras at daily data. Magkakaiba ang magnitude, ngunit dapat pa ring kumikita ang strategy.

TimeframeAno ang NagbabagoAno ang Dapat Manatili
1h → 4hMas kaunting signal, mas malaking galaw bawat signalKabuuang profitability, direksyon ng win rate
4h → 1dMas kaunti pang signal, mas malaki pang galawPositibong expectancy, mga drawdown ratio
1h → 15mMas maraming signal, mas maraming noise, mas maraming false triggerDapat pa ring kumikita (maaaring mangailangan ng mas mahigpit na filter)

Red flag: Ang isang strategy na gumagana lamang sa 4h ngunit nabibigo sa parehong 1h at 1d ay malamang na na-optimize sa mga partikular na noise pattern ng 4h candle sa sinubukang pair.

Dimensyon 3: Iba't Ibang Market Regime

Ito ang pinakakritikal na test. Hatiin ang iyong data sa mga regime segment:

RegimeHalimbawang PanahonKatangian
Bull marketOkt 2023 - Mar 2024BTC mula ~$27K tungong ~$73K
Bear marketNob 2021 - Nob 2022BTC mula ~$69K tungong ~$16K
SidewaysHun 2023 - Set 2023BTC nasa hanay na $25K-$31K
Crash eventMar 2020 (COVID)BTC -50% sa 48 oras
RecoveryAbr 2020 - Hul 2020BTC $5K bumalik sa $12K

Dapat magpakita ang isang strategy ng:

  • Positibong return sa hindi bababa sa 2 sa 3 pangunahing regime (bull/bear/sideways)
  • Kontroladong drawdown sa panahon ng crash event (hindi katastropikong pagkabigo)
  • Makatwirang recovery performance pagkatapos ng crash
Dimensyon ng TestMinimum na KailanganMalakas na ResultaTanda ng Pagkabigo
Cross-pair (3+ pair)2 sa 3 pair na kumikitaLahat ng pair kumikita nang may katulad na magnitudeGumagana lang sa 1 partikular na pair
Cross-timeframe (3 TF)Katulad ng direksyon sa lahatKumikita sa lahat nang may inaasahang scalingKumikita sa 1, negatibo sa iba
Cross-regime (bull/bear/sideways)Positibo sa 2 sa 3 regimePositibo sa lahat ng 3 nang may inaasahang variationGumagana lang sa isang regime
Stress test (mga black swan event)Drawdown < 2x normalDrawdown < 1.5x normalGanap na sumasabog ang strategy

Stress Testing: Mga Black Swan Event

Sinasaklaw ng regular na backtesting ang mga normal na kondisyon ng merkado. Sinasaklaw ng stress testing ang mga event na sumisira sa mga strategy. Kung kaya ng iyong bot na makaligtas sa Marso 2020, sa pagbagsak ng FTX (Nobyembre 2022), at sa krisis sa bangko ng SVB (Marso 2023), malamang na makaliligtas ito sa anumang darating.

Mga Kritikal na Event na Dapat I-Replay

EventPetsaGalaw ng BTCTagalAno ang Sinusubok
COVID CrashMar 12-13, 2020-50% sa 48h2 arawKaligtasan sa matinding flash crash
China Mining BanMayo-Hun 2021-55% sa loob ng 6 na linggo6 na linggoMatagal na unti-unting pagbaba
LUNA/UST CollapseMayo 2022-35% sa 1 linggo1 linggoCrash na dulot ng contagion
FTX CollapseNob 2022-25% sa 1 linggo1 linggoPagkaubos ng liquidity dulot ng krisis sa tiwala
SVB CrisisMar 2023-10% tapos +25%2 linggoMatalim na V-recovery

Ano ang Susukatin sa mga Stress Test

  1. Maximum drawdown: Gaano kalalim bumababa ang posisyon? Isang DCA bot na may 5 safety order at $3,000 na kapital — naubos ba nito ang lahat ng order? Na-liquidate (kung futures)?

  2. Recovery time: Pagkatapos ng event, gaano katagal bago magsara ng kumikitang deal ang bot? Kung tumagal ang recovery ng 6+ buwan, epektibong naka-lock ang kapital.

  3. Liquidation check (futures lamang): Sa 3x leverage, naaabot ba ng crash ang iyong liquidation price? Ang COVID crash (-50%) ay magli-liquidate ng anumang long position sa 2x o mas mataas na leverage kung walang stop loss na nakalagay.

  4. Safety order utilization: Ilang porsyento ng safety order ang pumutok? Kung naubos ang lahat ng safety order na may natirang puwang, maganda ang laki ng configuration. Kung lumampas ang crash sa iyong pinakamalalim na safety order, kailangan mo ng mas malapad na spacing o mas maraming order.

Kapag nag-i-stress test, huwag lang suriin ang panghuling P&L — tingnan ang landas. Ang isang strategy na bumaba ng -40% intra-deal bago bumalik sa +1.5% na profit ay teknikal na "gumana," ngunit ang drawdown na iyon ay magdudulot sa karamihan ng trader na manu-manong i-panic-close ang bot. Ang isang magandang strategy ay dapat panatilihin ang intra-deal drawdown sa loob ng katanggap-tanggap na hangganan (karaniwang < 25% para sa spot, < 15% para sa leveraged na posisyon).


Statistical Significance

Ang isang strategy na nananalo ng 8 sa 10 trade ay mukhang kahanga-hanga. Ngunit sa 10 trade lamang, may 4.4% na posibilidad na ang isang random na strategy (50/50 na coin flip) ay gagawa rin ng 8 na panalo. Hindi iyon statistically significant. Kailangan mo ng sapat na trade para makatiyak na ang iyong resulta ay hindi dahil sa random chance.

Minimum na Bilang ng Trade

Bilang ng TradeStatistical ReliabilityRekomendasyon
< 10Napakababa — madaling maging random ang resultaHindi magagamit
10-29Mababa — may direksyon ngunit hindi maaasahanPanimula lamang
30-49Katamtaman — minimum para sa pangunahing konklusyonMinimum na threshold
50-99Maganda — makatwirang maaasahanKatanggap-tanggap
100-199Malakas — makabuluhan sa istatistikaMas gusto
200+Napakalakas — mataas na kumpiyansaIdeal

95% Confidence Interval sa mga Return

Sinasabi sa iyo ng isang confidence interval ang posibleng hanay ng tunay na performance ng iyong strategy. Narito kung paano ito kalkulahin at bigyang-kahulugan:

Formula (pinasimple para sa mga return):

CI₉₅% = R̄ ± 1.96 × (σ / √n)

Kung saan:

  • R̄ = average na return bawat trade
  • σ = standard deviation ng mga return bawat trade
  • n = bilang ng trade

Halimbawa: Ang iyong DCA bot ay nakatapos ng 80 trade na may average na return na 1.5% bawat deal at standard deviation na 0.8%.

CI₉₅% = 1.5% ± 1.96 × (0.8% / √80) = 1.5% ± 0.175%

Resulta: Maaari kang 95% na kumpiyansa na ang tunay na average na return bawat deal ay nasa pagitan ng 1.325% at 1.675%. Ito ay isang mahigpit at kapaki-pakinabang na interval dahil mayroon kang 80 trade.

Kontras: Parehong strategy ngunit 15 trade lamang:

CI₉₅% = 1.5% ± 1.96 × (0.8% / √15) = 1.5% ± 0.405%

Resulta: Ang 95% CI ay 1.095% hanggang 1.905% — mas malawak, mas hindi tiyak. Sa 15 trade, ang tunay na return ay maaaring 27% na mas mababa sa iyong nasukat na average.

At sa 8 trade lamang:

CI₉₅% = 1.5% ± 1.96 × (0.8% / √8) = 1.5% ± 0.554%

Resulta: Ang 95% CI ay 0.946% hanggang 2.054% — ang iyong tunay na return ay maaaring 37% na mas mababa. Sa 8 trade, sa esensya ay hindi mo alam ang iyong totoong performance.

Kapag sinusuri ang isang strategy, tingnan ang lower bound ng 95% confidence interval, hindi ang average. Kung ang lower bound ay positibo pa rin at katanggap-tanggap (hal. mas mataas sa iyong minimum na katanggap-tanggap na return threshold), karapat-dapat i-trade ang strategy. Kung malapit sa zero o negatibo ang lower bound, kailangan mo ng mas maraming trade bago mag-commit ng totoong kapital.


Tunay na Halimbawa: Overfitting na Natukoy

Talakayin natin ang isang kumpletong walk-forward analysis na naglalantad ng overfitting sa isang DCA strategy.

Ang Strategy

Isang DCA bot sa ETH/USDT na may sumusunod na parameter space:

  • Take profit: 1.0% hanggang 3.0% (0.5% na dagdag)
  • Safety orders: 3 hanggang 8
  • Step scale: 1.0 hanggang 2.0 (0.2 na dagdag)
  • Volume scale: 1.0 hanggang 2.0 (0.25 na dagdag)
  • Initial deviation: 1.5% hanggang 3.5% (0.5% na dagdag)

Kabuuang kombinasyon ng parameter: 5 × 6 × 6 × 5 × 5 = 4,500

Resulta ng Simpleng Backtest (12-Buwang Panahon)

Nahahanap ng optimizer ang pinakamahusay na parameter sa buong 12-buwang dataset:

  • Take profit: 2.5%
  • Safety orders: 5
  • Step scale: 1.8
  • Volume scale: 1.75
  • Initial deviation: 2.0%

Resulta: 45.2% annual return, 87% win rate, max drawdown -14.3%, 62 deal na natapos.

Mukha itong napakahusay. Ngunit totoo ba?

Walk-Forward Analysis (Parehong 12 Buwan)

Gamit ang 6-buwang in-sample, 2-buwang out-of-sample na rolling window:

PassIn-Sample PeriodOut-of-Sample PeriodIn-Sample ReturnOut-of-Sample ReturnOptimal TPOptimal Step
1Buwan 1-6Buwan 7-852.1% (taunan)8.3% (taunan)2.0%1.6
2Buwan 3-8Buwan 9-1048.7% (taunan)15.1% (taunan)2.5%1.8
3Buwan 5-10Buwan 11-1244.3% (taunan)12.8% (taunan)3.0%2.0

Ang mga Resulta

MetricSimpleng BacktestWalk-Forward (OOS Aggregate)
Annual Return45.2%12.1%
Win Rate87%79%
Max Drawdown-14.3%-19.7%
Profit Factor3.81.9
Deal na Sinuri6262

Ang walk-forward annual return ay 12.1% — 27% lamang ng 45.2% ng simpleng backtest. Nag-overstate ang simpleng backtest ng performance nang 3.7x.

Ano ang Nangyari?

  1. Lumipat ang optimal na parameter sa pagitan ng mga pass: Ang take profit ay umabot mula 2.0% hanggang 3.0%, ang step scale mula 1.6 hanggang 2.0. Ang "optimal" na parameter mula sa full-period backtest (TP=2.5%, Step=1.8) ay isang kompromiso na nagkataong mukhang maganda kapag inaverage sa buong panahon ngunit hindi talaga pinakamahusay para sa anumang partikular na sub-period.

  2. Nagbago ang market regime: Ang Buwan 1-6 ay katamtamang bullish (madalas na bounce = mataas na return para sa DCA). Ang Buwan 7-10 ay sideways na may mababang volatility (mas kaunting natapos na deal). Ang Buwan 11-12 ay isang matalim na correction (malalim na drawdown bago ang recovery). Ang mga parameter na na-optimize para sa bullish na yugto ay nag-underperform sa mga sumunod na yugto.

  3. "Suwerte" ang 45.2%: Nahanap ng full-period optimizer ang mga parameter na magkakataong tumugma sa partikular na pagkakasunod-sunod ng dips at recoveries sa 12 buwang iyon. I-shift ang data ng kahit 2-3 linggo lamang, at ang eksaktong mga parameter na iyon ay gagawa ng ibang-iba na resulta.

Karapat-dapat ba I-Trade ang 12.1%?

Posibleng oo — ang 12.1% na annual return sa isang DCA bot strategy, kung robust, ay isang kagalang-galang na resulta na nananalo sa karamihan ng passive holding strategy sa mga sideways/bear na merkado. Ang susi ay ang pag-unawa na ang 12.1% ang realistikong inaasahan, hindi ang 45.2%. Maaari mo nang suriin kung ang 12.1% ay nagbibigay-katwiran sa capital lockup, panganib, at fees.

Isang karaniwang ratio sa mga mahusay na dinisenyong strategy: ang walk-forward performance ay karaniwang 25-50% ng simpleng backtest performance. Kung ang iyong walk-forward return ay higit sa 50% ng backtest, hindi pangkaraniwang robust ang strategy. Kung mas mababa sa 25%, may matinding overfitting. Ang halimbawang ETH DCA sa 27% (12.1/45.2) ay nahuhulog sa mas mababang dulo — katamtamang overfitting, ngunit may edge pa rin ang strategy.


Ang 10-Puntong Validation Checklist

Bago mag-commit ng totoong kapital sa anumang bot strategy, dumaan sa checklist na ito. Dapat pumasa ang isang strategy sa hindi bababa sa 8 sa 10 na check para ituring na production-ready.

#CheckPamantayan sa PagpasaPaano Subukan
1Walk-forward OOS positiboOOS aggregate return > 0 sa lahat ng passPatakbuhin ang WFA na may 3:1 na IS/OOS ratio
2OOS ≥ 25% ng backtest returnRatio ng OOS/backtest return ≥ 0.25Ihambing ang aggregate OOS sa full-period backtest
3Parameter stability±20% na pagbabago ng parameter → < 50% na pagkawala ng performanceIba-ibahin ang bawat parameter nang isa-isa
4Cross-pair robustnessKumikita sa ≥ 2 sa 3 sinubukang pairSubukan sa BTC, ETH, at isang alt (hal. SOL)
5Multi-regime survivalPositibong return sa ≥ 2 sa 3 regimeSubukan sa bull, bear, at sideways na data segment
6Stress test survivalDrawdown < 2x normal sa panahon ng black swan replayI-replay ang COVID crash, FTX collapse na event
7Sapat na bilang ng trade≥ 30 OOS trade (≥ 100 mas gusto)Bilangin ang trade sa lahat ng WFA pass
8Positibong 95% CI lower boundLower bound ng 95% CI sa mga return > 0%Kalkulahin ang CI gamit ang formula sa itaas
9Profit factor ≥ 1.5 (OOS)Kabuuang OOS profit / kabuuang OOS loss ≥ 1.5Kalkulahin mula sa mga resulta ng WFA
10Realistikong fee/slippage modelKasama sa resulta ang 0.04-0.1% na fee bawat trade + slippageBeripikahin ang fee settings ng backtester

Pag-iskor sa Iyong Strategy

IskorPagtatasaAksyon
9-10Napakahusay — malakas na edge na may mataas na kumpiyansaI-deploy nang may standard na position size
7-8Maganda — malamang na totoong edge na may kaunting kawalang-katiyakanI-deploy nang may nabawasang position size, subaybayan nang mabuti
5-6Marhinal — maaaring may edge ngunit mahina ang ebidensyaPatakbuhin sa paper trading nang 1-3 buwan bago mag-commit ng kapital
3-4Mahina — mataas na panganib ng overfittingMuling idisenyo ang mga parameter ng strategy, subukang muli
0-2Bigo — walang ebidensya ng totoong edgeItapon ang strategy nang buo

Maraming trader ang lumalaktaw sa checklist na ito dahil kaakit-akit ang kanilang mga simpleng backtest na resulta. Ang isang strategy na nagpapakita ng 80% annual return sa backtest ay mahirap talikuran, kahit na nabigo ito sa 7 sa 10 validation check. Ang disiplina rito ang naghihiwalay sa mga sustainable na bot operator mula sa mga nagpapasabog ng kanilang account sa loob ng ilang buwan. Magtiwala sa proseso, hindi sa backtest.


Praktikal na mga Tip sa Pag-implement

Mahalaga ang Kalidad ng Data

Ang walk-forward analysis ay kasinghusay lamang ng data na ibinibigay mo rito. Tiyakin na ang iyong historical data ay:

  • May kasamang aktwal na wick (high/low), hindi lang open/close — madalas na napuputok ang DCA safety order sa mga intracandle wick
  • Walang gap o nawawalang candle (i-check sa iyong data provider)
  • Gumagamit ng konsistenteng paghawak ng timezone
  • Isinasaalang-alang ang mga exchange-specific na pagkakaiba sa presyo (ang Binance BTC vs Bybit BTC ay maaaring magkaiba ng 0.1-0.3% sa mga volatile na panahon)

Computational Cost

Nangangailangan ang WFA ng pagpapatakbo ng iyong optimizer nang maraming beses. Kung ang bawat optimization run ay tumatagal ng 5 minuto at mayroon kang 9 na WFA pass, iyon ay 45 minuto bawat strategy variant. Sa parameter stability testing (5 variation × 4 parameter = 20 karagdagang run), nakaharap ka sa 2+ oras bawat strategy.

Tip: Magsimula sa isang magaspang na parameter grid (mas kaunting kombinasyon) para sa unang WFA screening. Patakbuhin lamang ang fine-grained na optimization sa mga strategy na pumasa sa magaspang na screen.

Pag-iwas sa Look-Ahead Bias

Tiyakin na hindi aksidenteng gumagamit ng future data ang iyong backtester. Mga karaniwang pinagmumulan ng look-ahead bias:

  • Paggamit ng close price para sa order fill kung saan dapat ma-fill ang order sa open ng susunod na candle
  • Paggamit ng mga indicator na kinalkula sa buong dataset sa halip na rolling na kalkulasyon
  • Pagsasama ng impormasyon tungkol sa mga event (tulad ng FTX collapse) sa logic ng strategy bago pa ito nangyari

Kailan Muling Bebalidahin

Ang isang na-deploy na strategy ay dapat balidahin muli tuwing 3-6 buwan o kapag:

  • Lumihis ang performance mula sa walk-forward na inaasahan nang higit sa 2 standard deviation
  • Nagbago nang pundamental ang market structure (bagong regulasyon, malaking pagkabigo ng exchange)
  • Binago mo ang anumang parameter ng strategy

Para sa patuloy na optimization, tingnan ang aming gabay sa Pag-optimize ng Performance ng Trading Bot.


Mga Madalas Itanong

Paano naiiba ang walk-forward analysis sa simpleng out-of-sample testing?

Ang simpleng out-of-sample testing ay naghahati ng data sa isang training set at isang test set (hal. train sa 10 buwan, test sa 2). Ginagawa ito ng walk-forward analysis nang maraming beses gamit ang mga rolling window, gumagawa ng maraming out-of-sample na resulta sa iba't ibang kondisyon ng merkado. Nagbibigay ito sa iyo ng distribution ng out-of-sample performance sa halip na isang solong data point — mas maaasahan para sa pag-estimate ng totoong performance.

Anong in-sample to out-of-sample na ratio ang dapat kong gamitin?

Magsimula sa 3:1 (hal. 6 na buwan IS / 2 buwan OOS). Kung madalas mag-trade ang iyong strategy (maraming deal bawat araw), maaari kang gumamit ng mas maiikling window (3 buwan IS / 1 buwan OOS). Kung bihira itong mag-trade (ilang deal bawat buwan), gumamit ng mas mahahabang window (12 buwan IS / 4 na buwan OOS). Ang susing hadlang: dapat maglaman ang bawat OOS window ng hindi bababa sa 8-10 trade para maging minimal na makabuluhan ang resulta.

Mas malala ang aking walk-forward na resulta kaysa sa backtest — dapat ko bang talikuran ang strategy?

Hindi kinakailangan. Ang walk-forward na resulta ay laging mas malala kaysa sa backtest na resulta — normal iyon at inaasahan. Ang tanong ay gaano kalala. Kung ang WFA return ay 25-50% ng backtest return, malamang na may tunay na edge ang strategy. Kung ang WFA return ay mas mababa sa 10% ng backtest return (hal. nagpapakita ang backtest ng 50%, nagpapakita ang WFA ng 4%), matinding overfitted ang strategy at dapat idisenyong muli o itapon.

Ilang walk-forward pass ang kailangan ko?

Minimum na 4-5 pass para sa pangunahing pagkamaaasahan. Sa ideal, 8-12 pass para sa robust na konklusyon. Ang mas maraming pass ay nangangahulugang mas maraming out-of-sample data point, na nagpapahigpit sa iyong confidence interval. Sa mas kaunti sa 4 na pass, ang iyong aggregate na out-of-sample na resulta ay maaaring makiling dahil sa isang hindi pangkaraniwang maganda o masamang OOS na panahon.

Maaari ko bang gamitin ang walk-forward analysis para sa grid bot o iba pang non-DCA na strategy?

Oo. Ang WFA ay strategy-agnostic — gumagana ito para sa anumang parameterized na trading strategy. Ang grid bot, mean-reversion na strategy, momentum na strategy, at kahit ang signal-based na entry system ay lahat nakikinabang mula sa walk-forward validation. Magkapareho ang metodolohiya: i-optimize ang mga parameter sa in-sample data, subukan sa out-of-sample data, gumulong pasulong, ulitin.

Paano kung nagbabago nang drastiko ang aking optimal na parameter sa pagitan ng mga WFA pass?

Ang malalaking pagbabago ng parameter sa pagitan ng mga pass ay nagpapahiwatig ng isa sa dalawang bagay: (1) nagbago nang malaki ang market regime sa pagitan ng mga panahon (na tunay at mahalagang impormasyon), o (2) may maraming local optima ang iyong parameter space na may katulad na performance (tumatalon ang optimizer sa pagitan nito nang random). Para makilala, i-check kung konsistente ang direksyon ng pagbabago. Kung patuloy na tumataas ang take profit sa paglipas ng panahon, patungo sa mas mababang volatility ang merkado. Kung nag-o-oscillate ito nang random, maaaring hindi masyadong mahalaga ang parameter — na aktwal na magandang tanda para sa robustness.


Gumawa ng account

Isagawa ang kaalaman mo sa pamamagitan ng pagbukas ng Freya account ngayon.

Mag-register Ngayon
Ang content na ito ay para sa edukasyon lamang at hindi bumubuo ng financial advice. May kasamang malaking risk ang cryptocurrency trading. Huwag kailanman mag-invest ng higit sa kaya mong mawala.