Break-even co minutę: ten sam w teście i na koncie
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
- Jedno miejsce wywołania. Break-even i trailing są wołane z bloku “nowa minuta” w obsłudze tików, nie z timera.
- 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).
- 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.
- 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
- W kodzie znajdź wywołania funkcji break-even i trailingu: skąd są wołane (tik, timer, nowa świeca).
- Sprawdź, czy któreś zależy od trybu Testera.
- 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ść.
- 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
- Tester kontra live: różnice w kodzie bota
- OHLC kontra tiki
- Limit zamiast zlecenia rynkowego
- Pojęcia z artykułu: słowniczek, skorowidz
Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.