📖 Backtesting na Forex: jak sprawdzac strategie i po co potrzebna jest analiza Walk-Forward
Backtesting to uruchomienie zasad handlowych na danych historycznych, aby zrozumiec, jak strategia zachowywalaby sie w przeszlosci bez ryzyka dla kapitalu. W kontekscie tradingu algorytmicznego backtesting jest obowiazkowym etapem przed demo i startem na realnym rachunku.
Celem materialu jest pokazanie, jak profesjonalnie zorganizowac backtest na Forex w MT4, MT5 i cTrader: wybrac tryby modelowania, uzyskac dokladnosc tickowa, wykonac analize Walk-Forward, interpretowac metryki, zasymulowac wykonanie i sprawdzic odpornosc przez Monte Carlo.
Backtesting: symulacja transakcji na danych z przeszlosci z obliczeniem metryk zysku i ryzyka.
Trading algorytmiczny: handel wedlug sformalizowanych zasad zaprogramowanych w kodzie.
Dane tickowe: sekwencja najmniejszych zmian ceny (tick-by-tick) z dokladnym czasem.
Analiza Walk-Forward (WFA): cykl „optymalizacja na oknie → test na kolejnym oknie (OOS) → przesuniecie okna” do oceny stabilnosci.
Monte Carlo: seria losowych scenariuszy (przetasowanie kolejnosci transakcji, wariacje kosztow) do oceny rozrzutu wynikow i ryzyk ogonowych.
🧭 Czym jest backtesting i dlaczego decyduje
Backtesting to symulacja transakcji strategii na minionym rynku z obliczeniem kluczowych wskaznikow. To filtr jakosci pomyslow przed demo/realem oraz sposob sprawdzenia logiki kodu.
- Weryfikacja hipotez: szybkie odrzucenie slabych pomyslow i skupienie sie na mocnych.
- Diagnostyka kodu: wizualna walidacja wejsc i wyjsc pomaga lapac bledy logiczne.
- Metryki: Max Drawdown, PF, Sharpe, oczekiwana wartosc transakcji, stabilnosc po latach.
- Dyscyplina: reguly potwierdzone historia latwiej utrzymac psychologicznie.
Max Drawdown: maksymalne obsuniecie od szczytu equity w procentach.
PF (Profit Factor): stosunek lacznego zysku do sumy strat.
Sharpe Ratio: stopa zwrotu znormalizowana przez ryzyko (zmiennosc zwrotow).
Oczekiwana wartosc transakcji (Expectancy): sredni zysk na transakcje = WinRate × AvgWin − (1 − WinRate) × AvgLoss.
Wyniki z przeszlosci nie gwarantuja przyszlych. Backtest uzupelnia forward-test (sprawdzenie na nowych danych/demo) oraz kontrola wykonania.
⚙️ Podejscia do backtestingu w MT4, MT5 i cTrader
Platformy roznia sie dokladnoscia modelowania, obsluga wielu walut, szybkoscia optymalizacji i wygoda tworzenia strategii.
Wielowalutowosc: jednoczesne testowanie/handel kilkoma symbolami w jednym doradcy i jednym przebiegu.
MT4: klasyka z ograniczeniami
- Tester: tryb wizualny, ale bez wielowalutowego backtestu (1 symbol na przebieg).
- Modelowanie: „tylko ceny otwarcia”, „punkty kontrolne”, „wszystkie ticki”. Bez zewnetrznych tickow jakosc czesto wynosi ≤90%.
- Szybkosc: przebiegi sekwencyjne, bez optymalizacji rozproszonej.
✅ Plusy
- Proste srodowisko programistyczne, wiele gotowych Expert Advisorow.
- Niski prog wejscia do szybkich eksperymentow.
❌ Minusy
- Brak testu wielowalutowego w jednym przebiegu.
- Dokladnosc tickowa wymaga zewnetrznego importu i recznego przygotowania historii.
MT5: profesjonalny standard
- Wielowalutowosc: jeden doradca moze testowac kilka symboli w jednym procesie.
- Ticki: obsluga rzeczywistych tickow i spreadu od brokera; tryby „Kazdy tick”, „1-Minute OHLC”, „Otwarcia”.
- Optymalizacja: wielowatkowosc, algorytm genetyczny, zdalni agenci i chmura.
- Forward-opt: wbudowany podzial historii na czesc uczaca i OOS.
1-Minute OHLC: modelowanie po czterech cenach swiecy minutowej (Open/High/Low/Close); szybciej, ale bardziej zgrubnie przy waskich stopach.
Algorytm genetyczny: optymalizacja heurystyczna — „ewolucja” zestawow parametrow z selekcja najlepszych kombinacji.
OOS (Out-of-Sample): czesc historii poza proba, na ktorej sprawdza sie juz dobrane parametry po optymalizacji.
✅ Plusy
- Wysoka dokladnosc modelowania „z pudelka” na tickach.
- Szybkie optymalizacje, w tym forward i algorytm genetyczny.
❌ Minusy
- Bardziej rygorystyczne wymagania wobec starannosci kodu i modelu zdarzen.
cTrader: elastycznosc C# i Market Replay
- Jezyk: C# (Automate/cAlgo), silne typowanie i ekosystem .NET.
- Dane: „Tick data from server”, staly albo losowy spread.
- Doswiadczenie: Market Replay — reczne odtwarzanie rynku do nauki i wizualnej walidacji.
- Wydajnosc: przebieg sekwencyjny; optymalizacja — rownolegle w nowszych wersjach.
✅ Plusy
- Mocny stos C# i wygodny Market Replay.
- Elastyczna personalizacja wykonania i spreadu.
❌ Minusy
- Systemy wielosymbolowe wymagaja recznej architektury sygnalow.
🧪 Tryby modelowania i kiedy ich uzywac
Wybor trybu zalezy od wrazliwosci na ruchy wewnatrz swiecy (ticki) oraz waskie SL/TP (stop-loss/take-profit).
Tick: modelowanie kazdej zmiany ceny i spreadu (maksymalna dokladnosc dla scalpingu/HFT).
OHLC: modelowanie po czterech cenach swiecy; szybciej, ale zgrubniej przy waskich stopach.
HFT: logika wysokiej czestotliwosci, w ktorej opoznienie wykonania jest krytyczne.
„Kazdy tick” (tick-by-tick)
Maksymalnie realistyczna symulacja kazdej zmiany ceny i spreadu. Potrzebna dla scalpingu i logiki HFT.
- Plusy: precyzyjne wejscia/wyjscia, adekwatna ocena stopow i poslizgu.
- Minusy: duze obciazenie i wysokie wymagania wobec jakosci tickow.
Najwazniejsze: jesli triggery uruchamiaja sie wewnatrz swiecy — testuj „na tickach”, inaczej wynik bedzie zawyzony.
OHLC/1-Minute
Modelowanie po Open/High/Low/Close swiec minutowych. Nadaje sie do sredniego terminu i szybkiej, zgrubnej filtracji pomyslow.
- Plusy: bardzo szybko.
- Minusy: znieksztalcenia dla waskich stopow i wzorcow intraday.
Tryb wizualny / Market Replay
Krokowy podglad transakcji na wykresie (MT4/MT5) albo odtwarzanie rynku (cTrader) — wygodne do debugowania i nauki.
- Plusy: wyraznie widac logike wejsc, trailing i filtry.
- Minusy: wolniej niz przebiegi wsadowe; ryzyko „podgladania” po fakcie.
📊 Jakosc modelowania i zrodla danych
Wiarygodnosc ogranicza jakosc danych wejsciowych. „Smieci na wejsciu — smieci na wyjsciu”. Najpierw historia, potem optymalizacje.
- Ticki: dla MT5/cTrader — ticki od brokera; dla MT4 — import zewnetrznych tickow i konwersja pod tester.
- Strefa czasowa i sesje: jednolita strefa czasu, kontrola „dziur” i duplikatow barow.
- Koszty: modeluj realny/losowy spread, prowizje i poslizg.
- Kontrola: „suchy przebieg” bez transakcji do walidacji kolejnosci czasu.
Otworz Tester strategii → wybierz doradce (EA) → tryb „Kazdy tick” → zrodlo tickow „Gieldowe/brokerskie” → ustaw prowizje/spread → wlacz „Wizualizacje” → Start. Dla optymalizacji forward wlacz odcinek OOS w ustawieniach optymalizacji.
🧼 Pipeline danych dla uczciwego backtestu
Dane decyduja o wszystkim. Przed optymalizacjami upewnij sie, ze historia jest pelna, zgodna wedlug strefy czasu i oczyszczona z „dziur” oraz duplikatow.
- Importuj ticki/minutki z wiarygodnego zrodla albo od brokera.
- Znormalizuj strefe czasowa i kalendarz sesji handlowych.
- Oczysc anomalie: duplikaty, zerowe bary, ekstremalne „szpile”.
- Zamodeluj spread/prowizje, ustaw reguly zaokraglania ceny i wolumenu.
- Wykonaj „suchy test” bez transakcji, aby sprawdzic monotonicznosc czasu.
Zgodnosc: MT5 i cTrader — priorytet danych tickowych; MT4 — przez import tickow. Przy mieszanych zrodlach uzywaj jednej strefy czasowej i zapisz zasady przejscia na czas letni.
Prowadz „paszport” datasetu: zrodlo, glebokosc, strefa czasowa, data eksportu i hash plikow — to ulatwia odtwarzalnosc.
⚡ Modelowanie wykonania: zlecenia, spread, opoznienia
Idealne wykonanie zawyza wyniki. Wlacz realistyczne zalozenia: typ zlecenia, filtr spreadu, poslizg i losowe opoznienia.
Spread: roznica miedzy Bid i Ask; rozszerza sie podczas newsow i niskiej plynnosci.
Poslizg: wykonanie po cenie gorszej od oczekiwanej z powodu impulsu rynkowego lub opoznienia.
Opoznienie: laczna latencja sieci/terminala/serwera; krytyczna dla HFT i newsow.
| Komponent | Model | Rekomendacja |
|---|---|---|
| Typ zlecenia | Market/Limit/Stop | Scalping — limit z filtrem spreadu; trend — market jest dopuszczalny. |
| Spread | Staly albo losowy | Losowy spread w zakresie wartosci historycznych jest bardziej realistyczny. |
| Poslizg | Symetryczny albo przesuniety | Dla zlecen market zakladaj ujemne przesuniecie. |
| Opoznienie | Losowe 10-300 ms | Aktualne podczas newsow i godzin szczytowej zmiennosci. |
Zaplanuj „rabat na wykonanie” 5-15% od zysku i +20-30% do Max Drawdown wzgledem backtestu przy planowaniu realu.
⏩ Analiza Walk-Forward (WFA)
Walk-Forward to etapowy cykl „optymalizacja na oknie → test na kolejnym oknie (OOS) → przesuniecie okna” do oceny stabilnosci.
WFA: naprzemienne uzycie in-sample (czesc uczaca) i out-of-sample (czesc sprawdzajaca) z ponownym uczeniem wedlug harmonogramu.
OOS: nieznana czesc historii, na ktorej testuje sie juz wybrane parametry.
Rolling vs Anchored: okno przesuwne kontra narastajace (mniejsze ryzyko overfitu).
- Podziel historie: np. 12-18 mies. optymalizacji i 3-6 mies. testu.
- Optymalizuj parametry na pierwszym oknie i zamroz najlepszy zestaw.
- Sprawdz ten zestaw na kolejnym oknie (OOS).
- Przesuwaj okna i powtarzaj cykl do konca historii.
- Zbierz wyniki OOS, ocen stabilnosc i zakres obsuniec.
Praktyczne schematy WFA
Rolling window — szybka adaptacja; Anchored — mniej przeuczenia, ale wieksza inercja.
Najwazniejsze: ograniczaj liczbe parametrow i stosuj te same reguly dla wszystkich okien — inaczej porownanie bedzie niepoprawne.
🎲 Test Monte Carlo strategii
Monte Carlo to seria losowych scenariuszy (przetasowanie transakcji, wariacje spreadu/poslizgu), pokazujaca rozrzut wynikow i „ogony” ryzyka.
Scenariusze przetasowania
Zasymuluj 200-1000 alternatywnych historii, aby ocenic zakres zyskownosci i obsuniec.
- Reshuffle: losowe przestawienie kolejnosci transakcji przy tych samych PnL (zysk/strata).
- Noise: ±25-50% do poslizgu i spreadu.
- Gap test: rzadkie ekstremalne ticki imitujace newsowe „zrzuty”.
Najwazniejsze: patrz na 5-10 percentyl, a nie tylko mediane — margines bezpieczenstwa jest wazniejszy niz szczyt.
💻 Przyklad: przeciecie srednich kroczacych (MA Cross)
Logika edukacyjna w MQL5 i C# dla cTrader. W realnym handlu dodawaj filtry zmiennosci ATR, zarzadzanie ryzykiem i kontrole wykonania.
1) W MT5 utworz EA i wklej kod ponizej. 2) W testerze wybierz „Kazdy tick” i ustaw prowizje/spread. 3) Sprawdz na innym symbolu/TF i porownaj PF/DD (profit factor / max. drawdown).
MQL5 (MT5)
#property strict
input int FastMAPeriod = 20;
input int SlowMAPeriod = 50;
#include <Trade/Trade.mqh>
CTrade trade;
int hFast, hSlow;
int OnInit(){
hFast = iMA(_Symbol, PERIOD_CURRENT, FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE);
hSlow = iMA(_Symbol, PERIOD_CURRENT, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE);
return(INIT_SUCCEEDED);
}
void OnTick(){
double fast[], slow[];
if(CopyBuffer(hFast,0,0,2,fast)<2 || CopyBuffer(hSlow,0,0,2,slow)<2) return;
bool crossUp = (fast[1] <= slow[1]) && (fast[0] > slow[0]);
bool crossDown = (fast[1] >= slow[1]) && (fast[0] < slow[0]);
if(crossUp) { trade.PositionClose(_Symbol); trade.Buy(0.1); }
if(crossDown) { trade.PositionClose(_Symbol); trade.Sell(0.1); }
}
C# (cTrader Automate)
using cAlgo.API; using cAlgo.API.Indicators;
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class MACrossBot : Robot {
[Parameter("Fast", DefaultValue = 20)] public int Fast { get; set; }
[Parameter("Slow", DefaultValue = 50)] public int Slow { get; set; }
private MovingAverage maF, maS;
protected override void OnStart(){
var series = MarketData.GetSeries(TimeFrame);
maF = Indicators.MovingAverage(series.Close, Fast, MovingAverageType.Simple);
maS = Indicators.MovingAverage(series.Close, Slow, MovingAverageType.Simple);
}
protected override void OnBar(){
bool crossUp = maF.Result.Last(1) <= maS.Result.Last(1) && maF.Result.LastValue > maS.Result.LastValue;
bool crossDown = maF.Result.Last(1) >= maS.Result.Last(1) && maF.Result.LastValue < maS.Result.LastValue;
if(crossUp) { ClosePositions(TradeType.Sell); ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000); }
if(crossDown) { ClosePositions(TradeType.Buy); ExecuteMarketOrder(TradeType.Sell, SymbolName, 10000); }
}
}
Przyklad jest uproszczony: nie ma filtra trendu, wyliczania wielkosci przez ATR, uwzglednienia prowizji/poslizgow ani adekwatnego money-managementu. Dodaj te elementy przed wyciaganiem wnioskow.
🧪 Mini-case'y: jak zachowuja sie rozne pomysly
Przyklady ilustracyjne buduja intuicje: gdzie pomysl zarabia i gdzie cierpi przez koszty albo rezimy rynku. Wartosci sa demonstracyjne — zastap je wlasnymi.
Breakout London (EURUSD M15)
Wybicie azjatyckiego zakresu w pierwszych 2 godzinach Londynu, staly SL/TP, filtr spreadu.
- Mocne strony: tryb trendowy, wysoka oczekiwana wartosc transakcji.
- Slabe strony: wrazliwosc na newsy i poslizg.
Mean Reversion (USDJPY M5)
Odbicie do sredniej przy odchyleniu od VWAP i/lub BB, wyjscie czesciami.
- Mocne strony: flat, wiele transakcji, rowna equity (krzywa wartosci rachunku).
- Slabe strony: „smierc od tysiaca ciec” przy wzroscie kosztow.
MA Cross (H1)
Przeciecie SMA 20/50 z filtrem ATR i trailing-stopem ATR×2.
- Mocne strony: przenosnosc parametrow na sasiednie pary.
- Slabe strony: pilowanie rynku i dlugie flaty obnizaja PF.
| Strategia | Scenariusz | PF | Max DD | Sharpe | Transakcje |
|---|---|---|---|---|---|
| Breakout London | Ticki + losowy spread | 1.6 | 18% | 1.1 | 480 |
| Mean Reversion | Ticki + prowizja×1.2 | 1.4 | 12% | 1.3 | 1200 |
| MA Cross | OHLC → ticki (walidacja) | 1.3 | 20% | 1.0 | 260 |
🌗 Rezimy rynku i zachowanie strategii
Podziel historie na trend, flat i okna newsowe. Ocen metryki osobno i ustaw reguly wlaczania/pauzy.
Rezim trendowy
Filtry: ADX>25, wybicia kanalow, dodatnie nachylenie MA.
- Rekomendacje: rozszerzac TP, zmniejszac wrazliwosc na korekty.
- Ryzyka: falszywe wybicia na wygasajacym trendzie.
Rezim flatowy
Niska zmiennosc (ATR na dole zakresu), ADX<15, czeste ruchy odwrotne.
- Rekomendacje: skracac TP, uzywac mean-reversion, filtr spreadu.
- Ryzyka: koszty „zjadaja” przewage statystyczna.
Okna newsowe
Wysoki ATR, rozszerzenie spreadu, luki.
- Rekomendacje: pauza, filtr spreadu, odlozone wejscia po newsie.
- Ryzyka: poslizg, czeste stopy.
Najwazniejsze: polaczenie kalendarza ekonomicznego z limitami ATR/spreadu czesto podnosi Sharpe.
📋 MT4 vs MT5 vs cTrader — porownanie dla Forex
Kluczowe roznice, ktore wplywaja na dokladnosc, szybkosc i wygode pracy z systemami wielosymbolowymi.
| Kryterium | MT4 | MT5 | cTrader |
|---|---|---|---|
| Dokladnosc modelowania | Do 99% przy zewnetrznych tickach; inaczej ≤90% | Ticki od brokera; wysoka dokladnosc | Tick data from server; elastyczna konfiguracja spreadu |
| Szybkosc/optymalizacja | Przebiegi sekwencyjne | Wielowatkowosc, agenci chmurowi, genetyka | Przebieg sekwencyjny; optymalizacja — rownolegle |
| Wielowalutowosc | Nie (1 symbol/test) | Tak (jeden EA — kilka symboli) | Przez API/architekture sygnalow |
| Testowanie wizualne | Tryb wizualny | Wizualizacja + rozszerzona analityka | Market Replay |
| Raporty/metryki | Zestaw podstawowy | Rozszerzone raporty/wykresy | Szczegolowa statystyka/equity |
🔍 Interpretacja wynikow: kluczowe metryki
Ocena powinna byc kompleksowa: lacz zyskownosc z ryzykiem i odpornoscia, sprawdzaj liczbe transakcji oraz rozklad zysku w czasie.
Maksymalne obsuniecie (Max Drawdown)
Najwiekszy spadek salda/equity od szczytu w procentach. Im nizszy, tym lepiej; porownuj z roczna stopa zwrotu (np. przez CAR/MDD).
Profit Factor (PF)
Stosunek lacznego zysku do sumy strat. Wartosci > 1 — potencjalnie zyskowne, > 1.5 — dobrze, > 2 — swietnie, ale wazna jest stabilnosc po okresach.
Sharpe Ratio
Stopa zwrotu znormalizowana przez ryzyko (zmiennosc zwrotow). Wyzej — stabilniej; punkt odniesienia — > 1, dla „rowniejszych” systemow — blizej 1.5-2.
Oczekiwana wartosc transakcji (Expectancy)
Sredni zysk na transakcje: Expectancy = WinRate × AvgWin − LossRate × AvgLoss. Powinna byc dodatnia i potwierdzona wystarczajaca liczba transakcji.
Equity: krzywa wartosci rachunku z uwzglednieniem otwartych pozycji (w odroznieniu od salda).
PF: PF = Gross Profit / Gross Loss; warto analizowac razem z liczba transakcji i Max DD.
Sharpe: (Mean Return − Rf) / StdDev(Return); gdzie Rf to stopa wolna od ryzyka.
Expectancy: = WinRate × AvgWin − (1 − WinRate) × AvgLoss; sprawdzaj na probie ≥ 200-300 transakcji (dla intraday — wiecej).
CAR/MDD: stosunek rocznej stopy zwrotu (Compound Annual Return) do maksymalnego obsuniecia.
Sprawdzaj stabilnosc metryk po latach/kwartalach i stosuj „rabat na wykonanie” (spread/prowizja/poslizg), inaczej PF i Sharpe beda zawyzone.
🗺️ Mapa odpornosci parametrow
Zmieniaj dwa kluczowe parametry po siatce i zapisuj metryki. Szukamy nie „wysepki” maksimum, ale plaskowyzu stabilnosci.
Projekt eksperymentu
- Siatka: 15×15 punktow po dwoch parametrach (np. okresy Fast/Slow MA).
- Metryki: PF, Max DD, Sharpe, CAR/MDD, liczba transakcji.
- Kryteria: PF ≥ 1.3, DD ≤ 25%, transakcji ≥ 200.
Decyzja o ustawieniach
Wybieraj parametry ze srodka „plaskowyzu”, a nie z jego krawedzi — tak rosnie szansa zachowania skutecznosci przy zmianie rezimu rynku.
⚠️ Typowe pulapki i jak ich unikac
Przeoptymalizacja (overfitting)
- Zbyt wiele parametrow albo waskie zakresy dopasowuja strategie do szumu.
- Lekarstwo: limit parametrow, Walk-Forward, test OOS, Monte Carlo.
Ignorowanie wykonania
- Bez uwzglednienia spreadu/prowizji/opoznien PF i Sharpe prawie zawsze sa zawyzone.
- Lekarstwo: losowy spread, poslizg i opoznienia, „rabat” do wynikow.
„Brudne” dane i strefy czasowe
- Dziury, duplikaty i bledna strefa czasu psuja logike intraday.
- Lekarstwo: pipeline danych, jedna strefa czasu, priorytet tickow.
🧰 DevOps dla backtestingu: odtwarzalnosc i ewidencja eksperymentow
Strategia jest cenna wtedy, gdy jej wynik mozna odtworzyc. Potrzebne sa wersje danych, stale ustawienia i ustandaryzowany raport.
- Wersjonowanie danych: data eksportu, zrodlo, glebokosc, hash plikow.
- Konfiguracja eksperymentu: symbole, TF, daty, prowizje, spread/opoznienia, seed (wartosc poczatkowa generatora liczb losowych).
- Szablon raportu: podsumowanie metryk, wykresy equity/obsuniec, rozklad PnL (zysk/strata), wrazliwosc.
- Artefakty: logi transakcji, serializowane parametry, paszport wersji doradcy (EA) / cBot (bot cTrader).
Zapisuj „makiete uruchomienia” — konfiguracje JSON/YAML, aby jednym kliknieciem powtorzyc przebieg.
🧮 Metody optymalizacji: grid, genetyka, Bayes
Optymalizacja to wyszukiwanie parametrow z najlepszym balansem zysku i ryzyka. Uwzgledniaj czas obliczen i odpornosc wyniku.
| Metoda | Istota | Kiedy lepiej | Ryzyka |
|---|---|---|---|
| Grid Search | Pelna siatka kombinacji parametrow | Malo parametrow i waskie granice | Dlugo, ryzyko „dopasowania do siatki” |
| Optymalizacja genetyczna | Ewolucyjna selekcja kombinacji (mutacje/krzyzowanie) | Srednia/duza liczba parametrow | Potrzebna kontrola kryteriow i wczesne zatrzymanie |
| Bayes (TPE) | Model „parametry → metryka” z TPE | Drogie przebiegi, zlozone powierzchnie | Trudniejsza implementacja, ryzyko lokalnych maksimow |
Zgrubna siatka → genetyka → walidacja na WFA/Monte Carlo. Wybieraj nie maksymalny PF, ale stabilny plaskowyż.
🛡️ Zarzadzanie ryzykiem i wielkosc pozycji
Zarzadzanie ryzykiem wplywa na krzywa kapitalu mocniej niz punkt wejscia. Wielkosc pozycji powinna zalezec od zmiennosci i kapitalu.
Fixed-fractional i ryzyko oparte na zmiennosci
Ryzykujemy stala czesc kapitalu na transakcje i normalizujemy stop przez ATR.
- Praktyka: ryzyko 0.5-2% na transakcje z obliczeniem lota od SL (stop-loss).
- Normalizacja ATR: taki sam ryzykowany kapital przy roznych zmiennosciach.
Najwazniejsze: modeluj ryzyko dokladnie w backtescie, inaczej realne obsuniecia niemilo zaskocza.
Ograniczniki ryzyka
Dzienne/tygodniowe limity strat, pauzy po serii stopow, stop-handel przy szerokim spreadzie lub skokach ATR.
- Pauza po N stratnych transakcjach z rzedu.
- Wylaczenie przy ekstremalnym spreadzie albo anormalnym ATR.
🧩 Portfel strategii: dywersyfikacja i korelacja
Kilka niezaleznych strategii o niskiej korelacji wygladza equity i zmniejsza obsuniecie.
- Typy: trend, mean-reversion, wybicie, rozne TF/symbole.
- Selekcja: niska korelacja dziennego PnL (zysk/strata), komplementarne rezimy rynku.
- Kontrola: limity na jednoczesne ryzyka i klastry instrumentow.
Buduj macierz korelacji strategii i testuj caly portfel, a nie tylko osobne strategie.
🧨 Scenariusze „co jesli”: stress-test kosztow i warunkow
Sprawdz, jak strategia zniesie pogorszenie wykonania, wzrost zmiennosci i wylaczenia podczas newsow.
| Scenariusz | Zmiana | Oczekiwany efekt |
|---|---|---|
| Prowizja ↑ | ×1.5 | Spadek PF w czestych strategiach — filtruj transakcje |
| Spread ↑ | +30% | Gorsze wejscie/wyjscie, wiecej stopow, spadek Sharpe |
| Opoznienie ↑ | +150 ms | Gorsze wykonanie na impulsach — zwieksz bufory |
| Newsy — off | −1 godzina wokol publikacji | Mniej transakcji, ale wygladzenie ogonow strat |
❓ Pytania i odpowiedzi (FAQ)
Jak uzyskac „99%” jakosci modelowania?
Czym backtest rozni sie od forward-testu?
Jaki okres historii brac dla strategii Forex?
Po co tryb wizualny i Market Replay?
Co wybrac: MT4, MT5 czy cTrader do backtestingu?
Jak uwzglednic prowizje i swapy w backtescie?
Jak zrozumiec, ze strategia jest odporna?
✅ Check-lista startu na demo/realu
- Dataset z „paszportem”: zrodlo, glebokosc, strefa czasowa, data eksportu, hash.
- Konfiguracja testu: symbole, TF, daty, koszty, opoznienia, seed.
- Finalny przebieg „na tickach” z losowym spreadem i poslizgiem.
- Optymalizacja z limitem parametrow i weryfikacja na WFA.
- Monte Carlo: ≥ 200 scenariuszy, kontrola ogonow rozkladu.
- Mapa odpornosci: wybor parametrow z plaskowyzu.
- Wizualna walidacja wejsc/wyjsc na odcinkach kontrolnych.
- Wielkosc pozycji: ryzyko/transakcje i normalizacja ATR.
- Ograniczniki: dzienny/tygodniowy limit strat, pauzy.
- Stop-handel przy ekstremalnym spreadzie/ATR.
- Monitoring demo ≥ 2-4 tygodnie z logami transakcji.
- Porownanie demo vs backtest: odchylenia w granicach planu.
- Plan „co jesli” na wypadek pogorszenia wykonania.
- Portfel: sprawdzenie korelacji z istniejacymi strategiami.
- Plan publikacji na realu ze stopniowym zwiekszaniem ryzyka.