EN
Artykuły / 10.3 Wyjścia i zarządzanie pozycją
Wyjścia i zarządzanie pozycjąszkic

Break-even co minutę: ten sam w teście i na koncie

14.11.20263 min czytania

W skrócie: częstotliwość, z jaką bot sprawdza otwartą pozycję, zmienia wynik. Break-even i podobne kontrole wołam raz na minutę, z bloku nowej minuty w obsłudze tików, i robię to tak samo w Testerze i na koncie. Żadnych osobnych ścieżek dla testu ani sprawdzania z timera.

Skąd wybór

Przesunięcie stopa na wejście po osiągnięciu zysku 1R wydaje się prostą funkcją. W praktyce ma trzy zmienne: kiedy sprawdzam, gdzie jest cena w chwili sprawdzenia i co dzieje się między sprawdzeniami. Jeśli cena przejdzie w górę i wróci przed następnym sprawdzeniem, bot z rzadkim sprawdzaniem przegapi okazję do break-even i zostanie wybity stopem, a bot ze sprawdzaniem co tik przesunie stop i wyjdzie na zero.

Test na świecach M1 i tak widzi cenę z granularnością jednej świecy. Gdybym na koncie sprawdzał co sekundę, a w teście co minutę, wyniki dwóch trybów opisywałyby dwa różne boty. Dlatego wybrałem granularność minutową i narzuciłem ją obu.

Zasady, które przyjąłem

  1. Jedno miejsce wywołania. Break-even i trailing są wołane z bloku “nowa minuta” w obsłudze tików, nie z timera.
  2. Bez rozgałęzień na tryb Testera. Kod jest taki sam, bo różnica w zachowaniu psuje porównywalność (artykuł o różnicach Tester i live).
  3. Sprawdzenie przy aktualizacji bota. Przy każdej nowej wersji sprawdzam grepem, czy break-even nie wylądował z powrotem w obsłudze timera, i przenoszę go na minutę razem z podbiciem wersji.
  4. Funkcje ochronne też co minutę, jeśli chodzą po tej samej pozycji, żeby nie dublować trybów.

Co tracę i zyskuję

  • Tracę na szybkości reakcji. Przy gwałtownym ruchu w ciągu minuty break-even może nie zdążyć. To koszt, który akceptuję, bo test go widzi tak samo.
  • Zyskuję powtarzalność. Wynik z testu i wynik z konta różnią się z powodów, które da się nazwać (dane, wykonanie, poślizg), a nie dlatego, że bot liczy inaczej.
  • Mniejsze obciążenie. Sprawdzanie raz na minutę w optymalizacji kosztuje mniej niż co tik.

Jak to sprawdzić na własnym bocie

  1. W kodzie znajdź wywołania funkcji break-even i trailingu: skąd są wołane (tik, timer, nowa świeca).
  2. Sprawdź, czy któreś zależy od trybu Testera.
  3. Uruchom ten sam przedział w teście na świecach M1 i na tikach. Duża rozbieżność liczby wyjść na zero wskazuje, że break-even jest wrażliwy na częstotliwość.
  4. Porównaj listy transakcji, nie sumy (lista transakcji zamiast sumy).

[DO UZUPEŁNIENIA: przykład bota, w którym zmiana częstotliwości sprawdzania zmieniła wynik, z liczbami]

Checklista

  • Break-even i trailing wołane z jednego miejsca, z bloku minutowego.
  • Brak osobnej ścieżki dla Testera.
  • Sprawdziłem grepem po każdej aktualizacji bota.
  • Porównałem liczbę wyjść na zero w teście na świecach i na tikach.
  • Wiem, że przy gwałtownym ruchu w ciągu minuty break-even może się spóźnić.

Powiązane

Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.