Backtesting és valóság: az a tökéletes várható érték hazudik neked
A backtested: 8R várható érték. Profitfaktor 3,5. 50 000 $ nyereség egy 10 000 dolláros számlán.
Élesben indulsz. Első hét: -2R várható érték. Profitfaktor 0,4. A számla 12 %-kal lejjebb.
Mi történt? A backtested hazudott.
🚨 Őszintén
A backtestek többsége puszta ábránd. Tökéletes teljesüléseket, nulla slippage-et, spread nélküli világot és olyan varázslatos belépőket feltételeznek, amelyek élő piacon nem léteznek.
Ha a backtested túl szép ahhoz, hogy igaz legyen, akkor nem is igaz. A zajra illesztettél, nem a jelre.
Ebben a leckében megtanulod:
- Miért bukik el a backtestek 90 %-a, amint élesbe kerül
- A 4 főbűn: túlillesztés, előretekintési torzítás, irreális költségek, túlélési torzítás
- Hogyan modellezd a slippage-et és a spreadeket úgy, hogy tényleg a valóságot tükrözzék
- Mintán belül és mintán kívül (az egyetlen ellenőrzés, ami számít)
⚡ Gyors eredmények holnapra (kattints a kinyitáshoz)
- Tegyél reális költségeket a backtestedbe — Számolj ügyletenként 0,03-0,05 % slippage-et, plusz a tényleges spreadet. Ha az eredmény összeomlik, az előnyöd hamis volt.
- Oszd fel az adataidat 70/30 arányban — Optimalizálj az adatok 70 %-án, és ellenőrizz azon a 30 %-on, amelyet soha nem láttál. Ha a mintán kívüli rész elbukik, ráillesztettél a görbére.
- Kereskedj 30 napig papíron, mielőtt élesbe mennél — Ha a papíreredmények lényegesen eltérnek a backtesttől, valami nem stimmel. Ne menj élesbe, amíg nem fedik egymást.
Valódi példa: hogyan lett egy 1,3R várható értékű „tökéletes” backtestből élesben -0,45R-es katasztrófa
Háttér: 2024 márciusában Chris (összetett példa) hat hónapnyi optimalizálás után kitörési stratégiát épített. A backtest hihetetlenül festett: 1,3R várható érték, 4,9-es profitfaktor, 67 % találati arány, 2 év SPY-adaton (2022-2023) tesztelve. 2024 áprilisában 50 000 $ került bevetésre. 2024 júniusára a számla 8 400 $-t bukott (-16,8 %). Íme a teljes boncolás.
A „tökéletes” backtest (2022-2023-as adatok)
| Mutató | Érték | Amit Chris gondolt |
|---|---|---|
| Összes ügylet | 156 | Rendes mintaméret |
| Találati arány | 67.3% (105W / 51L) | „Hihetetlen! Jóval az átlag fölött.” |
| Átl. nyereség / átl. veszteség | +2.4R / -1R | „Kiváló R:R, a nyertesek 2,4-szeresei a veszteseknek.” |
| Profitfaktor | 4.9 | „Profi szintű szám.” |
| Várható érték | Ügyletenként +1,3R | „Ez maga a Szent Grál.” |
| Legnagyobb drawdown | -8.2% | „Parányi drawdown. Rendkívül biztonságos.” |
| Teljes hozam (2 év) | +$40,600 (+406%) | „Ez az. Felmondok a munkahelyemen.” |
Chris optimalizálási folyamata:
- Kipróbált 50 különböző EMA-periódust (az EMA(34) bizonyult „tökéletesnek”)
- Kipróbált 20 ATR-szorzót a stopokhoz (az 1,47× ATR bizonyult „optimálisnak”)
- Kipróbált 15 célszintet (a 2,8R bizonyult „a legjobbnak”)
- A végleges stratégia: EMA(34)-keresztezés + 1,47× ATR stop + 2,8R cél
- Összesen kipróbált kombináció: 50 × 20 × 15 = 15 000 változat
Amit Chris nem tett bele a backtestbe:
- A slippage-et (tökéletes teljesüléseket feltételezett pontos árakon)
- A vételi-eladási különbözetet (nulla spreadet feltételezett)
- A jutalékokat (elfelejtette modellezni)
- A megbízások visszautasítását (100 %-os teljesülést feltételezett)
- A mintán kívüli tesztet (soha nem próbálta ki nem látott adaton)
Az éles kereskedés valósága (2024. április-június, 10 hét)
| Mutató | Backtest | Az éles valóság | Eltérés |
|---|---|---|---|
| Találati arány | 67.3% | 51.4% (19W / 18L) | 15,9 ponttal rosszabb |
| Átl. nyereség | +2.4R (+$1,200) | +1.8R (+$900) | 25 %-kal kisebb |
| Átl. veszteség | -1R (-$500) | -1.3R (-$650) | 30 %-kal nagyobb |
| Profitfaktor | 4.9 | 1.46 | 70 %-os összeomlás |
| Várható érték | +1.3R | költségek után -0,45R | -1,75R NEGATÍV |
| Legnagyobb drawdown | -8.2% | -21.4% | 2,6-szor rosszabb |
| Teljes hozam (10 hét) | +9 600 $ előrejelzett | -$8,400 (-16.8%) | 18 000 $ szakadék |
A teljes költségelszámolás: hová tűnt az a 18 000 $
| Költségtétel | Leírás | Hatás |
|---|---|---|
| 1. Túlillesztés (görbeillesztés) | Az EMA(34) + 1,47× ATR tökéletesen működött a 2022-2023-as adatokon, de a történelmi zajra volt optimalizálva. A 2024-es piaci körülmények = másfajta zaj. | -$6,200 |
| 2. Slippage (nem volt modellezve) | Ügyletenként átlagosan 0,08 % slippage × 25 000 $ átlagos pozíció × 37 ügylet oda-vissza = 1 480 $ slippage-költség | -$1,480 |
| 3. Vételi-eladási különbözet | SPY-spread 0,01 $ × átlagosan 500 részvény × 37 ügylet = 185 $. Opciók (a tőkeáttétel miatt): spread = 0,03 $ részvényenként × 100 részvény kontraktusonként × 20 kontraktus × 37 ügylet = 2 220 $ teljes spreadköltség | -$2,405 |
| 4. Jutalékok | Opciók: 0,65 $ kontraktusonként × 20 kontraktus × 37 ügylet × 2 (oda-vissza) = 962 $ | -$962 |
| 5. Visszautasított megbízások | 8 ügyletnél a limitáras megbízások sosem teljesültek (5 nyertes és 3 vesztes maradt ki). Nettó elmaradt haszon: 5 kimaradt nyertes egyenként +1,8R (-9R), mínusz 3 elkerült vesztes egyenként -1,3R (+3,9R) = -5,1R = 2 550 $ | -$2,550 |
| 6. Előretekintési torzítás | A backtest kódja close[0]-val számolta a belépőt, és ugyanannak a gyertyának a záróárán lépett be (élesben lehetetlen). Élesben a belépő a következő gyertya nyitóára. Átlagosan 0,3 %-kal rosszabb belépő = 2 775 $ romlás | -$2,775 |
| 7. Végrehajtási késés | A platform késleltetése + a megbízás átnézésének ideje = 2-8 másodperc csúszás. A gyors kitörések átlagosan 0,15 %-ot elszaladtak a teljesülésig = 1 387 $ slippage a késésekből | -$1,387 |
| TELJES ROMLÁS A BACKTESTHEZ KÉPEST: | -$17,759 | |
A matek:
- A backtest által előrejelzett nyereség (10 hét): +9 600 $
- Mínusz a romlási költségek: -17 759 $
- Várható éles eredmény: -8 159 $
- Tényleges éles eredmény: -8 400 $ — az elszámolás 250 dolláron belül eltalálja, ami valóban történt
Mit kellett volna tenni: az ellenőrzés rendesen
| Lépés | Amit Chris tett (rosszul) | Amit tenni kellene (jól) |
|---|---|---|
| 1. Az adatok felosztása | A 2022-2023-as adatok mindegyikét optimalizálásra használta | 2022-n optimalizálj, 2023-at tartsd félre a mintán kívüli teszthez |
| 2. Optimalizálás | 15 000 paraméterkombinációt próbált ki | Használj szokásos paramétereket (EMA 20/50, 2× ATR stopok). A próbálkozást tartsd 10 változat alatt |
| 3. Költségmodellezés | Nulla költséget feltételezett | Számolj ügyletenként 0,10 % slippage-et + 0,01 $ spreadet + 2 $ jutalékot = legalább -30 $ ügyletenként |
| 4. Előretekintés ellenőrzése | Ugyanannak a gyertyának a záróárát használta a jelhez és a végrehajtáshoz is | Jel close[0]-nál, végrehajtás open[1]-nél (a következő gyertyán). Reális időzítés. |
| 5. Mintán kívüli teszt | Soha nem próbálta ki nem látott adaton | Teszteld a 2023-as adaton (érintetlenül). Ha a teljesítmény több mint 30 %-ot romlik, a stratégia túlillesztett |
| 6. Walk-forward | Egyetlen backtest-időszak | 6 hónapos optimalizálási ablakok, teszt a következő 3 hónapon. Előregörgetve ismételd. Nézd a következetességet. |
A mintán kívüli teszt, amelyet Chrisnek el kellett volna végeznie
A helyes módszer:
- Mintán belüli időszak: Csak a 2022-es adaton optimalizálj (2023-hoz ne nyúlj)
- Keresd meg a paramétereket: EMA(34) + 1,47× ATR (ugyanaz az eredmény, de csak 2022-ből)
- Rögzítsd a paramétereket: TÖBB VÁLTOZTATÁS NINCS. A paraméterek befagyasztva.
- Mintán kívüli teszt: Futtasd pontosan ugyanezeket a paramétereket a 2023-as adaton
- Hasonlítsd össze az eredményeket: Ha a 2023-as teljesítmény a 2022-es 70 %-a alá esik, a stratégia túlillesztett
Mi történt volna:
| Időszak | Várható érték | Profitfaktor | Ítélet |
|---|---|---|---|
| 2022 (mintán belül) | +1.4R | 3.1 | Optimalizált teljesítmény |
| 2023 (mintán kívül) | +0.4R | 1.4 | ⚠️ 71 %-os romlás |
| Következtetés: A stratégia súlyosan túlillesztett. A 2023-as várható érték a 2022-esnek a 29 %-a. Reális költségekkel (ügyletenként -30 $ = -0,15R) a nettó várható érték +0,25R marad (épp csak nulla fölött). NE INDÍTSD EL. | |||
A tanulság: Chris backtestje ábránd volt. Ha 15 000 paraméterkombinációt próbálsz ki, garantáltan találsz egyet, amely tökéletesen ráfekszik a történelmi zajra. Az a „tökéletes” 1,3R várható érték görbére illesztett szemét volt. Egy mintán kívüli teszt ezt megmutatta volna, mielőtt elúszott az a 8 400 $. A backtesting nem arról szól, hogy megtaláld a legjobb múltbeli teljesítményt, hanem hogy megtaláld, ami ezután fog működni. Ehhez pedig nem látott adat, reális költségek és nulla előretekintési torzítás kell.
Miért fog elbukni élesben a tökéletes stratégiád
Kezdjük a kényelmetlen igazsággal: ha úgy optimalizáltál egy stratégiát, hogy illeszkedjen a történelmi adatokhoz, akkor nem előnyt találtál. Zajt találtál.
A görbe ráillesztése véletlen zajra
Mi ez: Addig csavarni a paramétereket, amíg a backtest tökéletesen nem fest
Példa:
- Kipróbálsz 100 különböző EMA-periódust (10, 11, 12… 110)
- Az EMA(47) 4,2R várható értéket ad a backtestben
- Azt hiszed, megtaláltad a „bűvös számot”
A valóság: Az EMA(47) pusztán véletlenül illeszkedett arra a konkrét adathalmazra. És előretesztelve? -0,8R várható érték. A zajt tanultad meg, nem a jelet.
Jobb: Fogd vissza az optimalizálást. Használj szokásos paramétereket. Tesztelj nem látott adaton.
Jövőbeli adatok használata (élesben lehetetlen)
Mi ez: Kód, amely a jövőbeli gyertyákba „kukucskál”, hogy most döntsön
Példa:
if close[0] > high[5]: # a JÖVŐBELI 5 gyertyát használja
enter_long()
A probléma: A backtestingben megvannak a jövőbeli adatok. Élesben nincsenek.
A valóság: Ez a kód élesben egyszerűen nem tud lefutni. A backtested olyan stratégiát tesztel, amely nem létezik.
Jobb: Csak azokat az adatokat használd, amelyek a döntés pillanatában elérhetők.
Tökéletes teljesüléseket feltételezni tökéletes árakon
A backtest feltevése: „Pontosan 100,00 dolláron veszek”
A valóság: A piaci megbízás 100,12 dolláron teljesül (spread + slippage)
Hatás 100 ügyleten:
- A backtest nyeresége: 5 000 $
- Spreadköltség (0,10 $ ügyletenként): -1 000 $
- slippage (0,05 $ ügyletenként): -500 $
- Jutalékok (2 $ ügyletenként): -200 $
A valóság: Valódi nyereség = 3 300 $ (34 %-kal kevesebb, mint a backtestben)
Csak a túlélőkön tesztelni
Mi ez: Backtestinget csak a mai S&P 500-részvényeken végezni
A probléma: Kihagysz több mint 200 részvényt, amelyet kivezettek vagy csődbe ment
Példa:
- Backtest a 2024-es S&P 500-listán: 1,8R várható érték, 2,1-es profitfaktor
- De ebben az időszakban long lettél volna a Hertzben (2020-ban csődbe ment), az SVB Financialben (2023-ban összeomlott) és minden más névben, amely nullára futott.
A valóság: A várható értéked kihagyja a kivezetésekből eredő katasztrofális veszteségeket. A valódi várható érték: -0,2R (veszteséges rendszer).
💡 az aha-pillanat
A backtest nem a valóság. Szimuláció. És ha a szimulációdban lehetetlen feltevések vannak, az éles eredményeid is ugyanolyan lehetetlenek lesznek.
A rejtett költségek, amelyek megölik a stratégiákat
Ezt hagyja figyelmen kívül a legtöbb backtest — és ezért a tiéd is alighanem 20-40 %-kal derűlátóbb a kelleténél:
1. lépés: modellezd a vételi-eladási különbözetet
Mi ez: A vételi és az eladási ár közti különbség
Példa:
- SPY vétel: 450,00 $ / eladás: 450,01 $ → spread = 0,01 $
- Veszel: 450,01 dollárt fizetsz (fél spread = 0,005 $)
- Eladsz: 450,00 dollárt kapsz (fél spread = 0,005 $)
Költség oda-vissza: $0.01
1 000 részvényre: 0,01 $ × 1 000 = 10 $ ügyletenként
100 ügylet: 1 000 $ spreadköltség
2. lépés: modellezd a slippage-et
Mi ez: A szándékolt ár és a tényleges teljesülés közti különbség
Reális slippage a körülmények szerint:
- Normál likviditás: 0.01-0.02%
- Volatilis piacok: 0.05-0.10%
- Vékony likviditás: 0.10-0.30%
- Nagy pozícióméret: 0.20-0.50%
Óvatos feltevés: 0,05 % ügyletenként
10 000 dolláros pozíció × 0,05 % = 5 $ slippage oldalanként = 10 $ oda-vissza
3. lépés: modellezd a jutalékokat
Példa: Interactive Brokers
- 0,005 $ részvényenként, minimum 1 $
- 200 részvény × 0,005 $ = 1 $ oldalanként
- Oda-vissza = 2 $
100 ügylet: 200 $ jutalék
4. lépés: a teljes reális költség
Ügyletenként (oda-vissza):
- Spread: 10 $
- slippage: 10 $
- Jutalék: 2 $
Összesen: 22 $ ügyletenként
Ha a stratégiád ügyletenként 50 $ bruttót hoz → 28 $ nettó (44 %-kal kevesebb!)
Példa a backtest kiigazítására
Reális költségek előtt és után
Stratégia: 100 ügylet, ügyletenként átlagosan 50 $ nyereség
Backtest (ábránd):
100 ügylet × 50 $ = 5 000 $ nyereség
Reális költségek után:
- Bruttó: 5 000 $
- Spread: -1 000 $
- slippage: -1 000 $
- Jutalékok: -200 $
Nettó nyereség: 2 800 $ (44 %-kal kevesebb)
Az egyetlen ellenőrzés, ami számít
Így ellenőriznek a profik egy stratégiát:
Oszd az adataidat két időszakra.
- Mintán belül (60-70 %): Itt fejleszted és optimalizálod a stratégiádat
- Mintán kívül (30-40 %): Ellenőrzés NEM LÁTOTT adaton
🎯 Példa: 6 év adat (2018-2024)
Mintán belül: 2018-2022 (itt optimalizálj)
- Próbálj ki különböző paramétereket
- Keresd meg a legjobban teljesítő szabályokat
- Csiszold a belépési és kilépési logikát
Mintán kívül: 2023-2024 (itt ellenőrizz)
- Futtasd a stratégiát BÁRMIFÉLE változtatás nélkül
- Vesd össze a teljesítményt a mintán belülivel
- Ha hasonló → nincs túlillesztve!
- Ha jóval rosszabb → a mintán belüli zajra illesztetted
A túlillesztés vészjelzései
🚩 Jelek, hogy a stratégiád görbére van illesztve
- 3,0 fölötti Sharpe: Túl szép, hogy igaz legyen
- 5R fölötti várható érték: Rendkívül ritka (ellenőrizd a végrehajtási feltevéseidet)
- Csak 20-30 ügylet: Túl kicsi minta (statisztikailag értelmetlen)
- Tökéletes tőkegörbe: Sima vonal drawdown nélkül (lehetetlen)
- Egyetlen eszközön tesztelve: Alighanem arra a konkrét rezsimre illesztve
- 10 vagy több optimalizált paraméter: A zajt illesztetted, nem a jelet
A profi ellenőrzési módszer
A mintán belül és kívül jó. A walk-forward jobb.
Hogyan működik:
📊 A walk-forward keret
1. időszak: Tanítás 2018-2019-en → teszt 2020-on
2. időszak: Tanítás 2019-2020-on → teszt 2021-en
3. időszak: Tanítás 2020-2021-en → teszt 2022-n
4. időszak: Tanítás 2021-2022-n → teszt 2023-on
Ha minden időszakon következetes: Robusztus stratégia
Ha a teljesítmény romlik: Túlillesztett vagy rezsimfüggő
🎓 A lényeg
- Modellezz reális költségeket: Spread, slippage, jutalékok (20-40 %-kal kevesebb nyereség)
- Kerüld a túlillesztést: Fogd vissza a paramétereket, tesztelj több piacon
- Mintán belül és mintán kívül: Fejlessz a 60-70 %-on, ellenőrizz a 30-40 %-on
- Walk-forward teszt: Ellenőrizd a következetességet az időben
- Vészjelzések: 3,0 fölötti Sharpe, 5R fölötti várható érték, 30-nál kevesebb ügylet
- Előreteszt az éles indulás előtt: Legalább 3-6 hónap papíron
🎯 Backtest-ellenőrzési gyakorlat
Gyakorlat: ellenőrizd a stratégiádat a vészjelzés-detektorral
Vedd a jelenlegi stratégiádat (vagy egyet, amelyen gondolkodsz), és futtasd át az ellenőrzésen:
- Backtesteld az adataid 60 %-án (mintán belül). Jegyezd fel: ügyletszám, várható érték, Sharpe, legnagyobb DD
- Írd össze a használt paramétereket (EMA-k, küszöbök stb.). Több érték kipróbálásával optimalizáltad őket?
- Teszteld a maradék 40 %-on (mintán kívül). Vesd össze a mintán belüli eredménnyel.
- Használd a sablon ellenőrzési pontkártyáját (8 kategória, maximum 60 pont)
- Számold ki a pontszámod: 50-60 = mehet, 40-49 = át kell dolgozni, 40 alatt = kukázd
- Ha a pontszám eléri az 50-et: kereskedj 30-60 ügyletet papíron, mielőtt élesbe mennél
Cél: Kapd el a görbeillesztést, az előretekintési torzítást és az irreális feltevéseket, MIELŐTT szétverik az éles számládat. Jobb egy rossz stratégiát a backtesting szakaszában kidobni, mint valódi pénzt veszíteni.
🎮 Gyors ellenőrzés
K: Backtestelsz egy stratégiát: 5,2R várható érték, 4,2-es Sharpe-mutató, 25 ügyleten tesztelve, EMA(47)-tel, mert az adta a legjobb eredményt 100 különböző periódus kipróbálása után. Mi a baj vele?
Backtestelsz egy átlaghoz visszatérő stratégiát az SPY-on 2010-től 2024-ig. Eredmények: 2,8R várható érték, 68 % találati arány, 120 000 $ nyereség. Az adatok csak az S&P 500 mai összetevőit tartalmazzák (a ma az indexben lévő részvényeket). 2025-ben élesbe mész — és elbukik. Mi ment félre?
Walk-forward teszteled a stratégiádat: tanítás 2018-2020, teszt 2021-en (átment). Tanítás 2018-2021, teszt 2022-n (átment). Tanítás 2018-2022, teszt 2023-on (átment). Sem a slippage-et, sem a jutalékokat nem modellezted. Kereskedd ezt a stratégiát élesben?
A backtestingben a tökéletesség gyanús. Az előnyt a valósághűség adja. Modellezd a költségeket, kerüld a túlillesztést, tesztelj előre — vagy bukj élesben.
Kapcsolódó leckék
A kereskedési napló mesterfoka
Kövesd az éles teljesítményt, és vesd össze a backtest eredményeivel.
Lecke elolvasása →Pozícióméretezés
Használj helyes pozícióméretezést a backtestekben is, hogy reálisak legyenek az eredmények.
Lecke elolvasása →Rezsimfelismerés
Teszteld a stratégiádat minden rezsimben, hogy lásd, mennyire robusztus.
Lecke elolvasása →⏭️ Következik
33. lecke: haladó kockázatkezelés — a profi keretek — Ismerd meg a Kelly-kritériumot, a dinamikus pozícióméretezést és a drawdown-eljárásokat.
Kizárólag oktatási célra. A kereskedés jelentős veszteségkockázattal jár. A múltbeli teljesítmény nem garantálja a jövőbeli eredményeket.
💬 Beszélgetés (0 hozzászólás)
Hozzászólások betöltése…
Készen állsz a Signal Pilottal kereskedni?
Váltsd gyakorlatra a tanultakat professzionális indikátorokkal és valós idejű piacelemző eszközökkel.
Vissza a Signal Pilothoz →Kizárólag oktatási célra. A kereskedés jelentős veszteségkockázattal jár. Ez nem pénzügyi tanácsadás. A múltbeli teljesítmény nem garantálja a jövőbeli eredményeket.