Szukaj w serwisie

Czego szukasz?

Wpisz nazwę brokera, narzędzia lub tematu.

Zlecenia i realizacja

Backtesting Forex: jak testować strategię bez zaglądania w przyszłość

Backtesting na rynku forex polega na zastosowaniu ściśle określonych zasad do historycznych cen i zapisaniu transakcji, które powstałyby przy przyjętych założeniach realizacji zleceń. Wartościowy test jasno pokazuje chronologię, dane i koszty. Nie dowodzi, jak zlecenia zrealizowałby broker ani ile strategia zarobi w przyszłości.

Autor · Redaktor

Sprawdzono

Równoległe płyty z jasnego kamienia, z taflą szkła w turkusowej ramie z przodu i mniejszym bursztynowym panelem między kamiennymi płytami.
Prześledź sygnał do następnego zdarzenia realizacji

Najważniejsze

  1. Sygnał może wykorzystać kompletną świecę dopiero po jej zamknięciu. Realizacja musi nastąpić podczas późniejszego zdarzenia dopuszczonego przez test.

  2. Spread, poślizg cenowy i prowizja wymagają spójnych zasad rozliczania. Kosztów zawartych już w cenach realizacji nie wolno odejmować ponownie.

  3. Wydzielona próba historyczna traci niezależność, gdy jej wyniki wpływają na dalsze decyzje. Poniższa fikcyjna symulacja służy nauce, a nie walidacji strategii.

Czym jest backtesting na rynku forex?

Backtesting to rekonstrukcja: bierzesz ustaloną regułę, przechodzisz kolejno przez dostępne obserwacje i zapisujesz decyzje, założone wykonania zleceń oraz wyniki. W przypadku strategii forex trzeba określić parę walutową, dane cenowe, wielkość pozycji, wejścia, wyjścia i koszty transakcyjne. Pytanie dotyczy tego, co te reguły dały w danym modelu, a nie tego, czy po fakcie można znaleźć atrakcyjne transakcje.

Test ręczny można przeprowadzić przez odtwarzanie wykresu i prowadzenie rejestru transakcji. Test automatyczny powierza tę samą sekwencję programowi. Automatyzacja ułatwia powtarzanie obliczeń, ale nie naprawia reguły, która niejawnie korzysta z przyszłych cen, ani założeń realizacji niepopartych dostępnymi danymi.

Wyobraź sobie, że sprawdzasz jedynie, czy cena ostatecznie dotarła do celu. Nie odpowiada to na pytania, czy wcześniej został osiągnięty stop, po której stronie kwotowania można było zawrzeć transakcję oraz czy sygnał istniał już w chwili wejścia. Wiarygodny test zapisuje te rozstrzygnięcia przed interpretacją końcowej liczby.

Rozdziel trzy kwestie: co zaobserwowała reguła, co model uznał za możliwe do wykonania i co zawiera wynikowy rejestr transakcji.

Zdefiniuj zasady, zanim zobaczysz wynik

Przygotuj krótką specyfikację, którą inna osoba wykona bez pytania, które transakcje ci się podobały. „Kupuj, gdy rośnie impet” nie wystarczy. Wskaż ceny używane do pomiaru impetu, moment ich dostępności i sposób postępowania przy sprzecznych warunkach. Oznacz wersję i datę, aby zmieniona reguła nie zastąpiła po cichu tej pierwotnie testowanej.

  • Instrument i obserwacje: symbol, interwał, godziny handlu, strefa czasowa oraz dozwolony sposób obsługi brakujących danych.
  • Wejście i wyjście: dokładne warunki, czas powstania sygnału, dopuszczalne zdarzenie realizacji i stan pozycji.
  • Wielkość pozycji: stała liczba jednostek albo w pełni określona reguła, w tym zasady zwiększania już otwartych pozycji.
  • Realizacja i koszty: strona kwotowania, spread, prowizja, poślizg cenowy i ewentualne finansowanie pozycji utrzymywanych przez noc.
  • Granice testu: dane początkowe potrzebne wskaźnikowi oraz sposób traktowania otwartych pozycji i sygnałów z ostatniej obserwacji.

Symulacja korzysta z celowo prostej reguły, która otwiera wyłącznie pozycje długie. Po zamknięciu każdej pięciominutowej świecy porównaj jej kurs zamknięcia ze średnią prostą trzech ostatnich zamknięć, wliczając właśnie zakończoną świecę. Jeżeli nie ma pozycji, a kurs zamknięcia jest powyżej SMA3, zaplanuj kupno na otwarciu następnej świecy. Jeżeli jest pozycja długa, a kurs zamknięcia jest poniżej SMA3, zaplanuj wyjście na następnym otwarciu. Równość niczego nie zmienia. Kolejne zamknięcie powyżej średniej nie dodaje nowej pozycji do już otwartej.

Reguła sprawdza położenie powyżej lub poniżej średniej; nie wymaga jej przecięcia i nie stanowi rekomendacji strategii. Pozycja zawsze wynosi 10 000 EUR. W rzeczywistym badaniu można stosować inne zasady, ale zmiana kilku z nich po obejrzeniu wyników tworzy nowy eksperyment. Szablon planu tradingowego pomaga oddzielić bieżącą specyfikację od proponowanych zmian.

Wybierz dane odpowiednie do modelu realizacji

Zacznij od pytania, na które dane potrafią odpowiedzieć. Świeca OHLC zawiera otwarcie, maksimum, minimum i zamknięcie; te cztery wartości nie ujawniają wszystkich cen pośrednich ani kolejności wystąpienia maksimum i minimum. Jeżeli stop i cel znajdują się w zakresie tej samej świecy, sama świeca zwykle nie rozstrzyga, który poziom został osiągnięty pierwszy. Tutaj kurs środkowy (midpoint) to (Bid + Ask) / 2 w danej chwili. SMA3 jest średnią kursów środkowych na zamknięciu trzech kolejnych świec.

Dane lub ustawienie

Co ustalić przed testem

Bid, Ask, kurs środkowy lub Last

Ustal, jaki rodzaj ceny zapisano. Kurs środkowy sam w sobie nie jest ofertą kupna ani sprzedaży.

Świece a tiki

Dopasuj szczegółowość danych do logiki zleceń. Nie odtwarzaj fikcyjnej, dokładnej ścieżki wewnątrz świecy z czterech cen.

Znaczniki czasu i sesje

Zapisz strefę czasową, granice świec, luki weekendowe i brakujące przedziały.

Specyfikacja instrumentu

Sprawdź krok ceny, wielkość kontraktu, walutę wyniku oraz znaczenie podanego spreadu.

Przewiń w bok, aby porównać wszystkie kolumny ↔

Dokumentacja MetaTrader 5 dotycząca tików wyjaśnia, dlaczego trzeba odróżniać ceny na wykresie od cen realizacji: kupno i sprzedaż wykorzystują różne strony kwotowania, a dostępne wykresy nie muszą pokazywać obu. Dla reguły zależnej od ceny ta różnica może zmienić zarówno możliwość wykonania zlecenia, jak i jego wynik.

Określenie „rzeczywiste tiki” również wymaga sprawdzenia danych. Dokumentacja testowania MQL5 opisuje sytuacje, w których tester generuje tiki z powodu brakujących lub niespójnych rzeczywistych zapisów. Zanotuj wybrany tryb i wyjaśnij ostrzeżenia dotyczące kompletności danych; sama nazwa trybu nie opisuje każdej użytej obserwacji.

Nasza symulacja zawiera 36 fikcyjnych świec kursu środkowego EURUSD, oddalonych od siebie o pięć minut, w ramach jednej wymyślonej sesji śróddziennej. Nie są to pobrane dane historyczne z rynku. Nie ma tu zleceń stop, limit ani take profit, których kolejność realizacji należałoby rozstrzygać wewnątrz świecy. Przykład uczy kolejności zdarzeń i rozliczania kosztów; nie pozwala ustalić, czy reguła SMA działa na EURUSD.

Prześledź sygnał do następnego zdarzenia realizacji

Wypróbuj samodzielnie

Prześledź backtest, decyzja po decyzji

Sprawdź stałą regułę na 36 fikcyjnych pięciominutowych świecach EUR/USD opartych na kursie środkowym, czyli średniej Bid i Ask. Zmień założone koszty i prześledź sygnał, następne otwarcie oraz zapis wyniku.

Wyłącznie dane edukacyjne. Świece są wymyślone: nie stanowią historii rynku ani dowodu skuteczności reguły.

Reguła pozostaje stała

Po zamknięciu świecy porównaj kurs środkowy jej zamknięcia ze średnią tego kursu i dwóch poprzednich zamknięć. Powyżej SMA3: otwórz pozycję długą, jeśli jej nie ma. Poniżej SMA3: zamknij pozycję długą. Równość nie zmienia stanu. Każda pozycja ma 10 000 EUR; wyniki są w USD.

Decyzja może zostać wykonana dopiero na następnym otwarciu w wybranym oknie. Powtarzające się sygnały kupna nie zwiększają pozycji. Nie ma pozycji krótkich, stopów, zleceń limit, finansowania overnight ani optymalizacji parametrów.

Ustaw założenia realizacji zleceń
Od 0 do 20 pipsów. Połowa jest dodawana przy kupnie i odejmowana przy sprzedaży. W tym przykładzie EUR/USD 1 pips = 0,0001 USD za EUR.
Od 0 do 10 pipsów przy każdym wykonaniu. Przykład uwzględnia tylko niekorzystny poślizg.
Od 0 do 100 USD za wykonanie całej pozycji 10 000 EUR; to nie stawka za lot.
Każde okno zaczyna się bez pozycji. Wcześniejsze zamknięcia tylko przygotowują SMA3; nie tworzą transakcji ani prowizji.
Przykłady kosztów

Świeca 36 wybranego okna (1–36) · 11:55

Uzgodnij wynik

Zamknięte transakcje · P/L netto
-3,70 USD
Otwarta pozycja · wycena P/L po prowizji za wejście
16,25 USD
Łączny P/L modelu
12,55 USD

Netto zamkniętych -3,70 USD + wycena netto otwartej 16,25 USD = razem 12,55 USD.

Zamknięte pozycje: 4. Wykonania do tego kroku: 9.

Otwarta pozycja długa jest wyceniana według ostatniego kursu środkowego zamknięcia pomniejszonego o połowę spreadu. Zapłacona prowizja za wejście jest odejmowana tylko raz. Wycena nie uwzględnia przyszłej prowizji ani poślizgu przy wyjściu.

Sygnał sprzedaży na świecy 36: nadal oczekuje. Pozycja pozostaje otwarta; nie naliczono prowizji za wyjście. W tym oknie nie ma następnego otwarcia, więc ostatni sygnał nie zostanie tutaj wykonany.

Gdzie uwzględniono koszty
Zamknięty P/L z cen wykonania
-0,90 USD
Prowizje zamkniętych pozycji
2,80 USD
Wycena otwartego P/L przed prowizją wejścia
16,60 USD
Zapłacona prowizja za wejście w otwartą pozycję
0,35 USD
Wszystkie zapłacone prowizje
3,15 USD
Wpływ spreadu już zawarty w wykonaniach
5,40 USD
Poślizg już zawarty w wykonaniach
1,80 USD
Dodatkowa połowa spreadu w wycenie otwartej pozycji
0,60 USD

Spread i poślizg są już w cenach wykonania; nie odejmuj tych efektów ponownie. Prowizja jest oddzielnym obciążeniem. Wycena otwartej pozycji nie oznacza wykonanego wyjścia.

Wczesne i późne okno to oddzielne przykłady czasowe, a nie walidacja poza próbą ani test forward na przyszłych notowaniach. Wczesna otwarta pozycja nie jest ukrycie zamykana ani przenoszona do późnego okna. Nie sumuj ich P/L jako ciągłej historii rachunku.

Kurs środkowy zamknięcia, SMA3 i realizacje

Widoczne są tylko świece osiągnięte w odtwarzaniu. Linia ciągła łączy kursy środkowe zamknięcia, a przerywana pokazuje SMA3. Trójkąty w górę i w dół oznaczają hipotetyczne kupno i sprzedaż na otwarciu danej świecy. Oś pionowa pokazuje USD za EUR.

USD za EUR

Świeca pięciominutowa

  • Kurs środkowy zamknięcia
  • SMA3
  • Kupno na otwarciu
  • Sprzedaż na otwarciu

Sygnał → następne otwarcie → pozycja

Czytaj każdy wiersz w kolejności czasu: najpierw wykonanie poprzedniej decyzji na otwarciu, potem ocena bieżącego zamknięcia. Linia między świecami nie tworzy pośrednich cen ani wykonań.

Sygnał → następne otwarcie → pozycja
Świeca · czas przykładuNa tym otwarciuKurs środkowy zamknięcia / SMA3Na tym zamknięciuPo zamknięciu świecyŁączny P/L modelu
109:00Brak wykonania1,10000—Mniej niż trzy zamknięcia: bez decyzjiBez pozycji0,00 USD
209:05Brak wykonania1,10020—Mniej niż trzy zamknięcia: bez decyzjiBez pozycji0,00 USD
309:10Brak wykonania1,100401,10020Powyżej SMA3: kupno na następnym otwarciuBez pozycji0,00 USD
409:15Kupno po 1,10058; sygnał świecy 31,100801,1004667Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR1,25 USD
509:20Brak wykonania1,101201,10080Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR5,25 USD
609:25Brak wykonania1,101601,10120Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR9,25 USD
709:30Brak wykonania1,101801,1015333Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR11,25 USD
809:35Brak wykonania1,101601,1016667Poniżej SMA3: sprzedaż na następnym otwarciuPozycja długa: 10 000 EUR9,25 USD
909:40Sprzedaż po 1,10142; sygnał świecy 81,101301,1015667Poniżej SMA3: pozostań bez pozycjiBez pozycji7,70 USD
1009:45Brak wykonania1,101001,10130Poniżej SMA3: pozostań bez pozycjiBez pozycji7,70 USD
1109:50Brak wykonania1,100801,1010333Poniżej SMA3: pozostań bez pozycjiBez pozycji7,70 USD
1209:55Brak wykonania1,101001,1009333Powyżej SMA3: kupno na następnym otwarciuBez pozycji7,70 USD
1310:00Kupno po 1,10118; sygnał świecy 121,101201,10100Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR6,95 USD
1410:05Brak wykonania1,101001,1010667Poniżej SMA3: sprzedaż na następnym otwarciuPozycja długa: 10 000 EUR4,95 USD
1510:10Sprzedaż po 1,10072; sygnał świecy 141,100701,1009667Poniżej SMA3: pozostań bez pozycjiBez pozycji2,40 USD
1610:15Brak wykonania1,100901,1008667Powyżej SMA3: kupno na następnym otwarciuBez pozycji2,40 USD
1710:20Kupno po 1,10108; sygnał świecy 161,101301,1009667Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR3,65 USD
1810:25Brak wykonania1,101601,1012667Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR6,65 USD
1910:30Brak wykonania1,101801,1015667Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR8,65 USD
2010:35Brak wykonania1,101401,10160Poniżej SMA3: sprzedaż na następnym otwarciuPozycja długa: 10 000 EUR4,65 USD
2110:40Sprzedaż po 1,10122; sygnał świecy 201,101001,10140Poniżej SMA3: pozostań bez pozycjiBez pozycji3,10 USD
2210:45Brak wykonania1,101201,10120Równo SMA3: pozostań bez pozycjiBez pozycji3,10 USD
2310:50Brak wykonania1,100801,10100Poniżej SMA3: pozostań bez pozycjiBez pozycji3,10 USD
2410:55Brak wykonania1,100401,10080Poniżej SMA3: pozostań bez pozycjiBez pozycji3,10 USD
2511:00Brak wykonania1,100601,10060Równo SMA3: pozostań bez pozycjiBez pozycji3,10 USD
2611:05Brak wykonania1,100901,1006333Powyżej SMA3: kupno na następnym otwarciuBez pozycji3,10 USD
2711:10Kupno po 1,10103; sygnał świecy 261,100601,10070Poniżej SMA3: sprzedaż na następnym otwarciuPozycja długa: 10 000 EUR-2,15 USD
2811:15Sprzedaż po 1,10042; sygnał świecy 271,100301,10060Poniżej SMA3: pozostań bez pozycjiBez pozycji-3,70 USD
2911:20Brak wykonania1,100601,10050Powyżej SMA3: kupno na następnym otwarciuBez pozycji-3,70 USD
3011:25Kupno po 1,10078; sygnał świecy 291,101101,1006667Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR-1,45 USD
3111:30Brak wykonania1,101501,1010667Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR2,55 USD
3211:35Brak wykonania1,101901,10150Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR6,55 USD
3311:40Brak wykonania1,102301,10190Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR10,55 USD
3411:45Brak wykonania1,102701,10230Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR14,55 USD
3511:50Brak wykonania1,103101,10270Powyżej SMA3: utrzymaj pozycję długą, bez nowego zleceniaPozycja długa: 10 000 EUR18,55 USD
3611:55Brak wykonania1,102501,1027667Poniżej SMA3: sprzedaż na następnym otwarciuPozycja długa: 10 000 EUR12,55 USD

Tabele przewijają się poziomo. W razie potrzeby ustaw fokus na obszarze tabeli i użyj strzałek.

Rejestr pozycji

Zamknięty wiersz zawiera obie zapłacone prowizje. Otwarty zawiera tylko prowizję wejścia i wycenę po Bid, a nie fikcyjną transakcję zamknięcia.

Rejestr pozycji
PozycjaWykonanie wejściaWykonanie wyjścia / wycenaP/L według kursu środkowego, bez kosztówP/L z wykonań / wycenyZapłacona prowizjaP/L netto zamknięty / wyceniony
1ZamkniętaŚwieca 4 · 1,10058Świeca 9 · 1,1014210,00 USD8,40 USD0,70 USD7,70 USD
2ZamkniętaŚwieca 13 · 1,10118Świeca 15 · 1,10072-3,00 USD-4,60 USD0,70 USD-5,30 USD
3ZamkniętaŚwieca 17 · 1,10108Świeca 21 · 1,101223,00 USD1,40 USD0,70 USD0,70 USD
4ZamkniętaŚwieca 27 · 1,10103Świeca 28 · 1,10042-4,50 USD-6,10 USD0,70 USD-6,80 USD
5Otwarta · tylko wycenaŚwieca 30 · 1,10078Świeca 36 · 1,1024418,00 USD16,60 USD0,35 USD16,25 USD
Pobierz ten rejestr pozycji · CSV

CSV zawiera tylko aktualne, poprawne odtwarzanie do wybranej świecy. Stałe angielskie nazwy pól, kropka dziesiętna i pełna precyzja modelu pozwalają sprawdzić rachunek. Zaokrąglany jest widok, nie obliczenie.

Tabele przewijają się poziomo. W razie potrzeby ustaw fokus na obszarze tabeli i użyj strzałek.

Sprawdź fikcyjne dane OHLC

Wszystkie ceny poniżej to kursy środkowe, czyli średnie Bid i Ask. Maksima i minima służą kontroli danych; reguła od zamknięcia do następnego otwarcia nie wyznacza z nich fikcyjnych realizacji. Wcześniejsze wiersze przygotowujące SMA są oznaczone i nie tworzą transakcji.

Sprawdź fikcyjne dane OHLC
Świeca · czas przykładuOtwarcieMaksimumMinimumZamknięcie
1 · 09:001,099801,100101,099701,10000
2 · 09:051,100001,100351,099801,10020
3 · 09:101,100201,100601,100051,10040
4 · 09:151,100501,100901,100401,10080
5 · 09:201,100801,101351,100601,10120
6 · 09:251,101201,101801,101051,10160
7 · 09:301,101601,101901,101501,10180
8 · 09:351,101801,101951,101401,10160
9 · 09:401,101501,101701,101151,10130
10 · 09:451,101301,101401,100901,10100
11 · 09:501,101001,101151,100601,10080
12 · 09:551,100801,101201,100651,10100
13 · 10:001,101101,101301,101001,10120
14 · 10:051,101201,101351,100801,10100
15 · 10:101,100801,101001,100551,10070
16 · 10:151,100701,101001,100601,10090
17 · 10:201,101001,101451,100801,10130
18 · 10:251,101301,101801,101151,10160
19 · 10:301,101651,101901,101551,10180
20 · 10:351,101751,101901,101201,10140
21 · 10:401,101301,101501,100851,10100
22 · 10:451,101001,101301,100901,10120
23 · 10:501,101201,101351,100601,10080
24 · 10:551,100801,101001,100251,10040
25 · 11:001,100401,100701,100301,10060
26 · 11:051,100601,101051,100401,10090
27 · 11:101,100951,101151,100451,10060
28 · 11:151,100501,100601,100201,10030
29 · 11:201,100301,100751,100101,10060
30 · 11:251,100701,101301,100551,10110
31 · 11:301,101101,101601,101001,10150
32 · 11:351,101501,102051,101301,10190
33 · 11:401,101901,102501,101751,10230
34 · 11:451,102301,102801,102201,10270
35 · 11:501,102701,103251,102501,10310
36 · 11:551,103101,103301,102351,10250

Tabele przewijają się poziomo. W razie potrzeby ustaw fokus na obszarze tabeli i użyj strzałek.

Pobierz protokół badania

Edytowalna lista tekstowa pozwala opisać oddzielny eksperyment przed obejrzeniem wyników. Nie potwierdza testu ani nie zmienia fikcyjnego szeregu w dowód rynkowy.

Pobierz protokół · TXT
Granice modelu

Stały wolumen, pełne wykonania, niezmienne założenia spreadu, poślizgu i prowizji; opóźnienie tylko do następnego otwarcia. Bez notowań na żywo, częściowych wykonań, dźwigni, przymusowego zamykania pozycji z powodu niewystarczającego depozytu, wpłat, wypłat ani zasad konkretnego brokera. To objaśnienie kolejności i rozliczenia, nie emulator brokera lub optymalizator strategii.

Ten komponent oblicza w bieżącej karcie, bez wysyłania wartości lub zapisywania ich w pamięci przeglądarki. Pliki powstają tylko po wybraniu pobierania. Dotyczy to laboratorium, nie innych części witryny.

Przesuwaj symulację o jedną świecę. Na jej otwarciu wykonywana jest dopuszczalna instrukcja zaplanowana po poprzednim zamknięciu, z wykorzystaniem ceny tego otwarcia i wybranych kosztów. Dopiero potem model obserwuje zamknięcie bieżącej świecy i oblicza nowy sygnał. Żadna transakcja nie może korzystać z zamknięcia, które jeszcze nie nastąpiło.

Na przykład sygnał kupna powstały po zamknięciu świecy 3 może doprowadzić do realizacji na otwarciu świecy 4. Nie może otrzymać ceny otwarcia świecy 3. Luka pomiędzy tymi świecami ma więc znaczenie. Dokumentacja strategii TradingView również oddziela utworzenie zlecenia od późniejszego tiku, na którym emulator brokera może je wykonać przy domyślnych ustawieniach czasowych.

Porównaj cały okres z pierwszą lub drugą połową. Każdy wybrany przedział zaczyna się bez pozycji. Wcześniejsze kursy zamknięcia mogą służyć do początkowego obliczenia średniej, ale nie przenoszą pozycji, wcześniej naliczonej opłaty ani zaplanowanego zlecenia. Są to osobne przebiegi edukacyjne: nie należy sumować ich wyników i przedstawiać jako jednego nieprzerwanego rachunku.

Na końcu wybranego przedziału nowy sygnał nie prowadzi do realizacji, jeżeli następne otwarcie wypada poza tym przedziałem. Istniejąca pozycja pozostaje widoczna i jest osobno wyceniana; model nie tworzy fikcyjnego wyjścia tylko po to, by każda transakcja wyglądała na zakończoną. Zmiana przedziału może zatem zmienić zarówno liczbę transakcji, jak i końcowy stan otwartej pozycji.

Dwie połowy nie są walidacją poza próbą. Obie należą do jednego małego, fikcyjnego przykładu, a zerowanie pozycji zmienia eksperyment.

Uwzględniaj koszty tylko raz, na spójnej podstawie

W tym modelu opartym na kursie środkowym kupno następuje po kursie środkowym otwarcia powiększonym o połowę spreadu i niekorzystny poślizg. Sprzedaż zamykająca pozycję odbywa się po kursie środkowym otwarcia pomniejszonym o połowę spreadu i niekorzystny poślizg. Prowizja jest osobną opłatą w USD za każdą realizację zlecenia dotyczącego stałej pozycji 10 000 EUR. W tym przykładzie EURUSD 1 pips to 0,0001 USD za EUR.

Przykład otwarcia i zamknięcia

Obliczenie

Kurs środkowy przy wejściu / wyjściu

1,10000 / 1,10200

Założenia

Spread 1,2 pipsa; niekorzystny poślizg 0,2 pipsa na realizację; prowizja 0,35 USD na realizację

Ceny realizacji wejścia / wyjścia

1,10008 / 1,10192

Wynik cenowy po spreadzie i poślizgu

10 000 × (1,10192 − 1,10008) = 18,40 USD

Wynik netto zamkniętej transakcji

18,40 USD − 0,35 USD − 0,35 USD = 17,70 USD

Przewiń w bok, aby porównać wszystkie kolumny ↔

Sam ruch kursu środkowego dałby 20,00 USD. Nie odejmuj ponownie spreadu i poślizgu od 18,40 USD: są już zawarte w cenach realizacji. Przy identycznym kursie środkowym na wejściu i wyjściu te założenia dają −2,30 USD. Zwiększenie spreadu o jeden pips obniża wynik całej transakcji o 1,00 USD, ponieważ każda strona uwzględnia połowę dodatkowego spreadu.

Jeżeli pozycja pozostaje otwarta, symulacja wycenia ją po ostatnim modelowanym Bid i uwzględnia zapłaconą już prowizję od wejścia. Nie nalicza przyszłej prowizji ani poślizgu przy wyjściu, zanim ono nastąpi. Wyświetlana suma to modelowany wynik P/L, a nie pełne obliczenie wartości rachunku.

Stałe koszty pozwalają wyodrębnić ich wpływ; nie są obietnicą odwzorowania rzeczywistych kwotowań. Rzeczywisty test może wymagać zmiennych spreadów, różnych prowizji i finansowania przy przejściu przez rollover. Ten przykład śróddzienny pomija swap za utrzymanie pozycji przez noc. Poradnik o poślizgu cenowym wyjaśnia różnicę pomiędzy ceną żądaną, dostępnym kwotowaniem a rzeczywistą realizacją.

Oddziel tworzenie strategii, próbę historyczną i obserwację nowych danych

Zdecyduj, które obserwacje historyczne mogą wpływać na tworzenie strategii, zanim obejrzysz okres oceny. Późniejszy okres może podważyć regułę wybraną wcześniej, ale tylko wtedy, gdy jego wyniki pozostają poza procesem wyboru. Wielokrotne przeglądanie wydzielonej próby i poprawianie strategii zamienia ten okres w materiał do jej tworzenia.

Etap

Cel

Czego nie dowodzi

Tworzenie strategii

Budowa reguły i badanie założeń na dopuszczonych danych.

Że wybrana wersja sprawdzi się na innych danych.

Wydzielona próba historyczna

Zastosowanie zamrożonej wersji do późniejszych, wcześniej niewykorzystanych obserwacji.

Rzeczywistych cen realizacji u brokera ani przyszłej rentowności.

Obserwacja nowych danych

Śledzenie nowych cen napływających po ustaleniu reguł.

Że symulowane wykonania odpowiadają rzeczywistej realizacji zleceń.

Przewiń w bok, aby porównać wszystkie kolumny ↔

Ustawienie Forward w MetaTrader 5 wykorzystuje późniejszą część wybranego okresu historycznego. Mimo nazwy nie jest to to samo co oczekiwanie na przyszłe dane rynkowe. W notatkach wyraźnie wskazuj zarówno nazwę ustawienia, jak i zastosowaną metodę badania.

Chronologia dotyczy również przygotowania wskaźników. Wcześniejsze obserwacje mogą dostarczyć historii potrzebnej do obliczenia wskaźnika na początku okresu oceny. Nie powinny wprowadzać do obliczeń przyszłego kursu zamknięcia ani niejawnie tworzyć pozycji, jeżeli eksperyment miał zaczynać się bez niej.

Jeśli wydzielona próba ujawni problem, udokumentuj go. Zmieniona strategia może zasługiwać na nowy eksperyment, ale poprzednia próba testowa jest już znana. Zmiana nazwy pliku lub wybór innej miary wyniku nie przywraca jej statusu testu na wcześniej nieznanych danych.

Zbadaj błędy, zanim zinterpretujesz zwroty

Korzystny wynik to powód do sprawdzenia rejestru, a nie zakończenia kontroli. Wybierz kilka wejść i wyjść, w tym trudny przypadek na granicy okresu, i odtwórz informacje dostępne przy każdej decyzji. Najwięcej może wyjaśnić sygnał bez realizacji albo nieatrakcyjna transakcja, którą uznaniowy przegląd by pominął.

  • Zaglądanie w przyszłość, czyli lookahead: decyzja wykorzystuje późniejszy kurs zamknięcia, formację potwierdzoną dopiero w przyszłości lub wartość niedostępną w podanym momencie.
  • Nadmierne dopasowanie, czyli overfitting: sprawdza się wiele ustawień, lecz zachowuje wyłącznie zwycięskie, bez dokumentowania całego poszukiwania.
  • Błąd selekcji: zachowuje się korzystne daty, instrumenty lub transakcje, a niewygodne obserwacje znikają.
  • Niedopasowany model realizacji: dane świecowe mają potwierdzać kolejność wykonań wewnątrz świecy, której nie zawierają.
  • Błędy rozliczeń: powtarzające się sygnały dodają niezamierzone pozycje, koszty są naliczane dwukrotnie albo otwarta transakcja znika na granicy okresu.

Przykłady lookahead w TradingView pokazują, jak dostęp do przyszłych informacji może dawać niewiarygodnie dobre wyniki historyczne. Praktyczne pytanie brzmi: czy ten sam sygnał dałoby się zapisać, gdyby obserwacje napływały pojedynczo? Jeżeli późniejsze dane zmieniają wcześniejszą decyzję, sprawdź tę zależność przed zaufaniem raportowi wyników.

Zmieniaj założenia w zaplanowany sposób, a nie do chwili uzyskania akceptowalnego wyniku. Możesz na przykład porównać tę samą stałą regułę przy kilku jawnie podanych kosztach. Jeśli niewielka zmiana kosztów odwraca wynik, pokaż tę wrażliwość. Jest to informacja o eksperymencie, nie powód do ukrywania bardziej wymagającego scenariusza.

Zapisz test tak, aby można go było odtworzyć

Po wybraniu przedziału i kosztów pobierz protokół eksperymentu z symulacji. Zachowaj go razem z wyświetlonym scenariuszem i rejestrem transakcji. Oznaczenie danych jako fikcyjnych ma znaczenie: udostępnienie liczb bez tego kontekstu zmieniłoby ćwiczenie edukacyjne w mylące twierdzenie o wynikach.

We własnym badaniu protokół powinien pozwolić ci wrócić po miesiącu i zrozumieć, co faktycznie zostało przetestowane. Zrzut ekranu z końcowym zyskiem nie wystarcza, gdy zmieniły się dane, czas powstawania sygnałów lub zasady naliczania kosztów.

  • Zapisz wersję reguły, pytanie badawcze i zmiany od poprzedniego przebiegu.
  • Wskaż zbiór danych, rodzaj ceny, strefę czasową, przedział, braki i etapy przygotowania.
  • Opisz moment powstawania sygnałów, założenia realizacji, wielkość pozycji, koszty oraz traktowanie pozycji otwartej na końcu.
  • Oddziel daty tworzenia strategii od dat oceny i zapisz, czy wyniki oceny wpłynęły już na dokonane wybory.
  • Zachowaj liczbę transakcji, rejestr realizacji, szczegóły otwartych pozycji i nieudane kontrole razem z podsumowaniem.

Szablon dziennika transakcji pomaga uporządkować pojedyncze obserwacje, a protokół opisuje eksperyment, z którego pochodzą. Zachowuj rozczarowujący przebieg równie starannie jak atrakcyjny; inaczej sama historia twoich badań stanie się wyselekcjonowaną próbą.

Interpretuj miary z uwzględnieniem kontekstu

Zacznij od liczebności: dostępnych obserwacji, zamkniętych transakcji, obciążonych opłatą realizacji i nadal otwartych pozycji. Procent bez mianownika może sprawić, że niewielka próba wyda się bardziej przekonująca. Sygnał oczekujący na końcu okresu nie jest zakończoną transakcją, a pozycja otwarta nie oznacza zrealizowanego zysku ani straty.

Następnie uzgodnij wyniki netto zamkniętych transakcji z wyceną otwartych pozycji i już zapłaconymi opłatami. Sprawdź, gdzie powstają straty i na ile wynik zależy od kilku transakcji. Symulacja nie obejmuje wpłaty początkowej, modelu depozytu zabezpieczającego ani wypłat, więc jej ścieżki P/L nie należy odczytywać jako salda rachunku u brokera.

Poradnik o profit factor, symulator krzywej kapitału i poradnik o wskaźniku Calmara wyjaśniają definicje i ograniczenia tych miar. Korzystny wskaźnik nie naprawia zaglądania w przyszłość ani nierealistycznej realizacji. Kilka godzin fikcyjnych obserwacji nie uzasadnia też przeliczania wyniku na roczną stopę zwrotu ani wniosków o długoterminowym obsunięciu.

Przydatny wniosek opisuje warunki: jaką regułę testowano, na jakich danych, przy jakich założeniach i co pozostaje niepewne. „Ta wersja traciła pieniądze po wzroście kosztów” jest jaśniejszym wynikiem badania niż bezpodstawna obietnica, że kolejna wersja będzie zyskowna.

Najczęściej zadawane pytania

Czy mogę ręcznie przetestować strategię forex?

Tak. Odsłaniaj obserwacje w porządku chronologicznym, stosuj zapisane reguły i rejestruj każdą kwalifikującą się transakcję oraz założenie. Unikaj przeglądania gotowego wykresu i wybierania tylko rozpoznawalnych układów. Test ręczny wymaga takich samych zasad kosztów i obsługi granic okresu jak test automatyczny.

Wybrać MetaTrader 5 czy TradingView?

Kieruj się regułą, danymi i sposobem realizacji, które chcesz zbadać. Przeczytaj ustawienia testera lub emulatora brokera i sprawdź pojedyncze wykonania zleceń. Różne ustawienia domyślne mogą dawać różne wyniki, choć żadna z platform nie dowodzi tym samym rentowności strategii.

Czy zawsze potrzebne są rzeczywiste tiki?

Wymagany poziom szczegółowości zależy od reguły. Strategia wrażliwa na zdarzenia wewnątrz świecy wymaga dowodów, których same świece mogą nie dostarczać. Dane tickowe dodają szczegółów, ale nadal trzeba sprawdzić kompletność kwotowań, strony kwotowania i założenia realizacji. Więcej wierszy nie usuwa ograniczeń modelu.

Ile transakcji zapewnia wiarygodność backtestu?

Nie ma uniwersalnej liczby, która potwierdza każdą strategię. Na interpretację wpływają częstotliwość, zależności między transakcjami, warunki rynkowe oraz liczba sprawdzonych wariantów. Podaj wielkość próby i jej ograniczenia. Mała fikcyjna symulacja na tej stronie celowo nie nadaje się do formułowania statystycznych twierdzeń o wynikach.

Dlaczego rzeczywiste wyniki mogą różnić się od backtestu?

Ceny, czas, spread, dostępna płynność, opłaty i obsługa zleceń mogą różnić się od modelu. Test nie zawiera też warunków rynkowych, które nie wystąpiły w jego danych. Wyniki historyczne pozostają dowodem zależnym od założeń; obserwację nowych danych i rzeczywistą realizację należy dokumentować oddzielnie.

Czy zyskowny backtest dowodzi przewagi?

Nie. Najpierw wyklucz przeciek informacji i błędy rozliczeń, a potem oceń sposób wyboru i testowania strategii. Wynik może być wewnętrznie spójny, a mimo to zależeć od krótkiego lub niereprezentatywnego okresu. Backtesting wspiera badanie; nie gwarantuje przyszłego rezultatu.

Źródła i dalsza lektura

  1. TradingView — StrategiesSprawdzono
Zlecenia i realizacja
Szablon planu tradingowegoZapisz reguły i zmiany wersji, zanim porównasz wyniki.Szablon dziennika transakcjiZachowaj pierwotny kontekst poszczególnych transakcji i obserwacji.Poślizg cenowy — wyjaśnienieOddziel założenie modelu od kwotowania i rzeczywistej realizacji.Profit factorInterpretuj zbiorczy wskaźnik bez pomijania próby, z której pochodzi.Symulator krzywej kapitałuSprawdź, jak kolejność transakcji i założenia zmieniają ścieżkę wyników.Wskaźnik CalmaraPoznaj wpływ wybranego okresu i obsunięcia na tę miarę.
Wszystkie poradniki