Pułapka w cudzym kodzie: bufor SL jako 5 * _Point
W skrócie: opis strategii z internetu mówił o buforze stop lossa równym 5 punktom ceny, a kod, który faktycznie
działa, liczył go jako 5 * _Point. Na indeksie z dwiema cyframi po przecinku to ok. 0,05 punktu, czyli
praktycznie zero. Wynik z cudzego backtestu dotyczy kodu, nie opisu, i dlatego czytam kod.
Jak na to trafiłem
Odtwarzałem backtest strategii z cudzego filmu i strony (art. Jak odtworzyć cudzy backtest).
Opis mówił o buforze SL w punktach indeksu. W wersji kodu, której wynik pokazywała strona, bufor był zapisany jako
5 * _Point. Na symbolu, który u mojego brokera ma dwie cyfry po przecinku, _Point to 0,01, więc bufor wynosi 0,05.
Nikt tego nie ukrywał: autor pewnie pomyślał o “pięciu punktach”, a kod zrobił pięć setnych.
Czym jest _Point
_Point to najmniejszy krok ceny symbolu, wynikający z liczby cyfr po przecinku. Nie jest ani pipsem, ani ticiem
w sensie giełdowym (ten bywa większy i mówi o nim osobna specyfikacja symbolu). Typowe wartości, zależne od brokera:
| Symbol (typowo) | Cyfry | _Point |
5 * _Point |
|---|---|---|---|
| EURUSD | 5 | 0,00001 | 0,00005 (pół pipsa) |
| USDJPY | 3 | 0,001 | 0,005 (pół pipsa) |
| XAUUSD | 2 | 0,01 | 0,05 USD |
| indeks z 2 cyframi | 2 | 0,01 | 0,05 punktu |
Pięć “punktów” w rozumieniu człowieka i pięć _Point różnią się więc od dziesięciu do tysiąca razy, zależnie od symbolu.
Ten sam kod daje inne zachowanie u brokera z 4 i 5 cyframi, a w ogóle inne na złocie niż na EURUSD.
Co taka pomyłka robi z wynikiem
Bufor SL ma chronić przed wybiciem o szum. Zbyt mały bufor znaczy stopy wybijane przez ruch o kilka groszy, więcej małych strat i inny rozkład transakcji. Wynik, który widziałem na stronie, powstał z tego mikroskopijnego bufora. Jeśli poprawiam kod “zgodnie z opisem”, odtwarzam inną strategię niż ta, która dała wynik z internetu. Moja zasada: najpierw odtwarzam kod taki, jaki jest, a poprawianie dopiero jako osobny test.
Jak czytam cudzy kod
- Każda wartość w punktach: skąd pochodzi
_Point, ile to wychodzi na moim symbolu (wypisuję w logu). - Przeliczanie pipsów typu
* 10bez sprawdzenia cyfr: działa tylko na 3 i 5 cyfrach. - Wartości zapisane na stałe obok inputów: czy opis nie sugeruje innego sensu.
- Czy odległości liczone od ceny w chwili sygnału, czy od zamknięcia świecy.
- Czy lot liczony z odległości SL zmienia się razem z buforem (ryzyko w USD czyni to szczególnie widocznym).
Jak piszę własny kod
Odległości trzymam w inputach z jednostką w nazwie (cena, punkty albo wielokrotność ATR), a przeliczenia robię w jednym miejscu. Wartość przeliczoną na cenę wypisuję raz przy starcie bota. Dzięki temu pomyłka “pięć punktów, a wyszło pięć setnych” wychodzi w pierwszym logu, nie po miesiącu testów.
Checklista
- Dla każdej odległości w kodzie: policz ją w cenie na moim symbolu.
- Porównaj z opisem strategii i z wykresem pozycji w Testerze.
- Odtwórz najpierw kod taki, jaki jest; zmiany jako osobne testy.
- Nigdy nie zakładaj, że
_Pointto pips.
[DO UZUPEŁNIENIA: czy znalazłeś podobny przypadek w kodzie gotowego bota z rynku albo w kodzie wygenerowanym przez AI]
Powiązane
- Jak odtworzyć cudzy backtest ze strony internetowej
- Specyfikacja symbolu: co sprawdzić przed uruchomieniem bota
- Zaokrąglenie lota: realne ryzyko inne niż zakładane
- Pojęcia: słowniczek, skorowidz
Źródła
Brak źródeł zewnętrznych - przykład z odtwarzania cudzego backtestu (listopad 2026). Wartości _Point w tabeli są typowe i zależą od brokera.
Ostrzeżenie: artykuł ma charakter edukacyjny i nie jest poradą inwestycyjną. Wyniki z przeszłości nie gwarantują przyszłych. Handel na rynkach finansowych wiąże się z ryzykiem utraty kapitału.