Tester Strategii
Ten podręcznik wyjaśnia, jak przeprowadzić backtesting strategii za pomocą Testera Strategii w JForex4, obejmując konfigurację, metody testowania, logikę realizacji zleceń oraz sposób odczytywania wyników.
1. Otwieranie Testera Strategii
- Przejdź do View w górnym menu i wybierz Strategy Tester.
- Tester otworzy się jako nowa karta obok Orders, Positions i Messages.
- Wybierz swoją strategię z rozwijanego menu. Jeśli nie została jeszcze dodana do obszaru roboczego, najpierw kliknij Open, aby ją dodać.
- (Opcjonalnie) Kliknij Edit, aby otworzyć kod źródłowy strategii w edytorze kodu — dostępne tylko wtedy, gdy plik źródłowy
.javajest obecny.
2. Konfiguracja testu
Ustawienia konta
Kliknij Account, aby zdefiniować symulowane konto handlowe:
- Depozyt początkowy i waluta konta
- Lewar (Leverage)
- Poziom margin cut (jako % wykorzystanego lewaru)
- Stop loss na kapitale (MC Equity) — automatycznie zatrzymuje test, jeśli kapitał spadnie poniżej tego poziomu
Instrumenty
Kliknij Instruments, aby wybrać instrumenty, dla których mają zostać pobrane dane historyczne. Wybierz każdy instrument używany przez strategię do handlu lub obliczeń.
Uwaga: to nie jest miejsce, w którym wybiera się instrument, na którym strategia faktycznie handluje — jest to ustawiane osobno, albo zakodowane na stałe w strategii, albo wybierane później w oknie Define Parameters.
Okres próbki i ramy czasowe
Wybierz historyczny zakres dat (Sample Period) oraz ramy czasowe (Time Frame):
- Ticks — wykorzystuje rzeczywiste historyczne dane tickowe (najbardziej precyzyjne, najwolniejsze).
- Candles (Świece) (1 minuta / 1 godzina / 1 dzień) — szybsze, wykorzystuje interpolację do generowania ticków z danych świecowych OHLC. Umożliwia również wybór Bid lub Ask jako podstawy.
Tryb wizualny (Visual Mode)
Włącz Visual Mode, aby obserwować przebieg symulacji na żywym wykresie w czasie jej trwania. Po włączeniu przycisk Start odblokowuje również elementy sterowania odtwarzaniem, umożliwiające wstrzymanie testu lub zwolnienie jego tempa.
Optymalizacja
Jeśli Twoja strategia posiada konfigurowalne parametry, włącz Optimization, aby przetestować wiele kombinacji parametrów w jednym przebiegu. Dla każdego parametru (innego niż instrument i okres) możesz zdefiniować wartość minimalną, wielkość kroku i wartość maksymalną — strategia zostanie następnie przetestowana jeden raz dla każdej kombinacji kroków.
Wyniki dla każdej kombinacji pojawiają się w dolnej części okna testera. Kliknij prawym przyciskiem myszy na dowolny wiersz, aby go anulować, skopiować jego ustawienia, wyświetlić raport lub ponownie wykorzystać jego parametry wejściowe.
Profit Factor (Współczynnik zysku) = Zysk brutto ÷ Strata brutto (obie wartości traktowane jako liczby dodatnie). Np. Zysk brutto 1000 i Strata brutto 250 → Profit Factor = 4,0. Wartość ta jest zawsze pozytywna, a wyższa wartość generalnie wskazuje na korzystniejszy stosunek transakcji zyskownych do stratnych.
3. Filtry ticków (Tick Filters) (tylko dla ram czasowych Ticks)
Gdy jako ramy czasowe wybrano Ticks, wybierz sposób filtrowania ticków:
| Filtr | Zachowanie |
|---|---|
| Process all ticks (Przetwarzaj wszystkie ticki) | Najbardziej precyzyjny, ale najwolniejszy — odtwarza każdy kiedykolwiek zarejestrowany tick. |
| Process all ticks with a different non-recurrent price (Przetwarzaj wszystkie ticki o różnej, niepowtarzającej się cenie) | Pomija ticki powtarzające tę samą cenę. |
| Process ticks on a market direction (Przetwarzaj ticki zgodnie z kierunkiem rynku) | Pomija ticki, o ile nie stanowią rzeczywistego punktu zwrotnego/odwrócenia kierunku ceny. |
| Process ticks on a predefined price range change (Przetwarzaj ticki zgodnie z predefiniowaną zmianą zakresu ceny) | Pomija ticki, aż cena zmieni się o zdefiniowany zakres. |
| Process ticks with the specified time interval (Przetwarzaj ticki zgodnie z określonym interwałem czasowym) | Pomija ticki na podstawie zdefiniowanego interwału czasowego. |
4. Metody interpolacji (tylko dla ram czasowych świecowych)
Dostępne, gdy ramy czasowe stanowią okres świecowy (1 min, 1 godz., 1 dzień). Zamiast pobierać rzeczywiste dane tickowe, tester generuje syntetyczne ticki z danych świecowych OHLC — co znacznie przyspiesza testowanie.
| Metoda | Opis |
|---|---|
| Cubic Spline (Splajn kubiczny) | Najprecyzyjniejsza metoda oparta na świecach. Buduje ticki, wykorzystując ceny OHLC jako punkty bazowe za pomocą interpolacji splajnem kubicznym. Może okazjonalnie generować więcej ticków niż wygenerowałby rzeczywisty strumień danych dla bardzo krótkich okresów (np. 10 sek.). |
| 4 ticks at OHLC (4 ticki na OHLC) | Najbardziej wiarygodna z dostępnych metod interpolacji. Interpoluje każdą świecę na dokładnie 4 ticki cenowe — Open, High, Low i Close. Kolejność ticków High i Low zależy od tego, który z nich jest bliżej ceny Open: ten bliższy Open jest przetwarzany jako drugi tick, przed drugim. |
| Tick on Open (Tick na Open) | Generuje pojedynczy tick wykorzystujący cenę Open świecy. |
| Tick on Close (Tick na Close) | Generuje pojedynczy tick wykorzystujący cenę Close świecy. |
Przykład: jeśli Twoja strategia handluje na świecach 1-minutowych i nie wymaga bardziej precyzyjnej granulacji, wybierz 1 Min jako ramy czasowe i 4 ticks at OHLC jako metodę interpolacji — strategia otrzyma wtedy dokładnie 4 ticki na minutę (open, następnie high/low w porządku bliskości, a następnie close).
5. Ustawienia niestandardowe
- Save interpolated price data (Zapisz interpolowane dane cenowe) — zachowanie lub odrzucenie wygenerowanych danych tickowych z interpolacji.
- Visual Mode (Tryb wizualny): pokazywanie/skrywanie Equity, Balance i P/L; wybór zapisanego szablonu (Template) wykresu; ustawienie domyślnego Period wyświetlanego podczas trybu wizualnego.
- Messages (Wiadomości): włącz Save Messages to, aby zapisywać wiadomości do pliku; włącz Save Reports to, aby zapisywać raporty do pliku; włącz Show Reports, aby raport automatycznie otwierał się po zakończeniu testu.
6. Logika przetwarzania zleceń
Zrozumienie dokładnie tego, jak tester realizuje zlecenia, jest niezbędne, aby móc zaufać wynikom backtestu.
Zasada ogólna: zlecenia są realizowane po własnej cenie zlecenia — z wyjątkiem sytuacji, gdy występuje luka rynkowa (gap) (np. gdy rynek otwiera się ponownie z luką po przerwie). W sytuacjach gapowych:
- Zlecenia LIMIT są realizowane po cenie lepszej niż cena zlecenia.
- Zlecenia STOP bez ustawienia MAX.SLIPPAGE są realizowane po pierwszej dostępnej cenie po gapie.
- Zlecenia STOP z ustawieniem MAX.SLIPPAGE, jeśli cena realizacji wypadłaby poza ten limit poślizgu cenowego (slippage), są automatycznie ponownie składane jako zlecenia LIMIT.
Szczegółowa logika realizacji:
- Zlecenia wyzwalane po stronie BID są porównywane z interpolowanymi cenami świecowymi BID; zlecenia wyzwalane po stronie ASK są porównywane z interpolowanymi cenami świecowymi ASK.
- Jeśli zlecenie (niezależnie od typu) zostaje wyzwolone przez tick cenowy CLOSE, HIGH lub LOW, jest realizowane po własnej cenie zlecenia, skorygowanej o ostatni znany spread, jeśli jest to konieczne (korekta ta ma zastosowanie, gdy wyzwolenie następuje z przeciwnej strony).
- Jeśli zlecenie zostaje wyzwolone przez tick cenowy OPEN, jest realizowane po tej cenie OPEN po odpowiedniej stronie — z wyjątkiem zlecenia STOP z ustawionym MAX.SLIPPAGE: jeśli tick OPEN wypada poza limit poślizgu cenowego zlecenia STOP, zlecenie zostaje zamiast tego przekształcone w zlecenie LIMIT.
Wskazówka: ponieważ metoda "4 ticks at OHLC" zawsze zawiera tick Open dla każdej świecy, ta logika wyzwalana przez OPEN (oraz jej wyjątek STOP/MAX.SLIPPAGE) ma bezpośrednie zastosowanie podczas testowania z użyciem tej metody interpolacji.
7. Uruchamianie testu
- Kliknij przycisk Start.
- Otworzy się okno Define Parameters — ustaw tutaj konfigurowalne wartości strategii (instrument, wielkość pozycji, poślizg cenowy, stop loss/take profit itd.). Dokładne wyświetlane pola zależą od kodu Twojej strategii.
- Kliknij Run, aby rozpocząć symulację.
- Jeśli tryb wizualny jest włączony, użyj elementów sterowania odtwarzaniem, aby wstrzymać lub zwolnić test w trakcie jego działania.
- Po zakończeniu (duże testy oparte na tickach mogą trwać dłuższy czas), raport z testu automatycznie otworzy się w przeglądarce (jeśli opcja Show Reports jest włączona).
8. Przegląd wyników
Raport zawiera wyniki transakcja po transakcji, krzywe kapitału (equity) i salda (balance), a także statystyki podsumowujące, takie jak opisany wcześniej Profit Factor. Jeśli przeprowadziłeś przebieg Optimization, porównaj raporty dla każdej kombinacji parametrów z listy wyników w dolnej części okna testera, przed wybraniem konfiguracji do dalszej pracy.
Najlepsze praktyki
- Zacznij od Ticks / "Process all ticks" dla ostatecznego etapu walidacji — jest to symulacja najbardziej zbliżona do rzeczywistych warunków rynkowych, mimo że jest najwolniejsza.
- Użyj interpolacji świecowej do szybkiej iteracji. W trakcie tworzenia lub dostrajania strategii metoda "4 ticks at OHLC" zapewnia szybką i wiarygodną informację zwrotną bez konieczności pobierania pełnej historii ticków.
- Dopasuj wybór metody interpolacji/filtra ticków do logiki swojej strategii. Strategia reagująca na ceny OPEN zachowuje się inaczej w metodzie "4 ticks at OHLC" niż w metodzie "Tick on Close" — upewnij się, że wybrana metoda testowania odpowiada temu, co faktycznie wyzwala logikę Twojej strategii w rzeczywistych warunkach rynkowych.
- Zwróć uwagę na interakcje związane z MAX.SLIPPAGE. Jeśli Twoja strategia opiera się na zleceniach STOP, przetestuj ją zarówno z ustawionym, jak i bez ustawionego MAX.SLIPPAGE, aby zrozumieć, jak scenariusze gapów i ticków OPEN mogą przekształcać Twoje zlecenia w realizacje LIMIT.
- Pamiętaj: wyniki historyczne przedstawione w testerze nie są wiarygodnym wskaźnikiem przyszłych wyników — zawsze przeprowadzaj dalszą walidację w środowisku demonstracyjnym przed przejściem na konto rzeczywiste.