Dzienny cel zysku w bocie - czy zatrzymywać handel po zysku?
W skrócie: dzienny cel zysku to próg, po którym bot do końca dnia nie otwiera nowych pozycji. Włączam go tylko wtedy, gdy prop firma ma regułę konsekwencji (jeden dzień nie może dać za dużej części całego zysku) albo gdy bot oddaje poranny zysk w kolejnych wejściach. W pozostałych przypadkach cel zysku zwykle obniża wynik roczny, bo obcina najlepsze dni. Czy go włączyć, rozstrzyga backtest z celem i bez celu.
Cel zysku to nie take profit
Te dwie rzeczy łatwo pomylić, bo obie mówią o zysku. “Cel zysku” w tym artykule to angielskie daily profit target, a nie przetłumaczony take profit. Różnica:
| Take profit (TP) | Dzienny cel zysku | |
|---|---|---|
| Czego dotyczy | jednej pozycji | wyniku całego dnia (bota albo konta) |
| Gdzie działa | zlecenie u brokera, na konkretnej cenie | w kodzie bota, liczony z kilku transakcji |
| Co robi | zamyka tę jedną pozycję z zyskiem | zatrzymuje nowe wejścia do końca dnia (czasem zamyka też otwarte) |
| Przykład | TP 200 USD na pozycji z ryzykiem 100 USD | po +300 USD w ciągu dnia bot kończy handel |
Bot może mieć jedno i drugie. Przykład: każda pozycja ma TP 2R (200 USD), a dzienny cel 300 USD. Pierwsza wygrana daje 200 USD i bot handluje dalej. Po drugiej wygranej dzień ma 400 USD, cel jest przekroczony i bot nie otwiera już nic do północy serwera. TP zamknął dwie pozycje, a cel zysku zakończył dzień.
Skąd pomysł, żeby przestać, gdy idzie dobrze?
Przy handlu ręcznym to znany schemat: rano +3%, potem “jeszcze jedna transakcja”, wieczorem +0,5%. Bot nie ma emocji, ale jego reguła wejścia po dużym porannym ruchu często daje słabsze sygnały, bo rynek już zrobił swój ruch dnia. Do tego dochodzą reguły prop firm:
- Reguła konsekwencji (consistency rule), czyli najlepszy dzień nie może przekroczyć np. 30-50% całego zysku w okresie wypłaty. Przy celu challenge 8% jeden dzień +6% potrafi zablokować wypłatę albo wydłużyć challenge.
- Consistency score, czyli ta sama reguła policzona przez firmę jako jedna liczba. Przykład to C-Score w SpiceProp: liczy się tylko na koncie funded, a duże wygrane psują go tak samo jak duże straty. Jak go liczyć i jakie są przez niego problemy, opisuję w artykule C-Score w SpiceProp.
Wersje “zatrzymania po zysku”
Twardy cel: po +X% koniec dnia
Bot liczy wynik dnia (transakcje zamknięte plus otwarte pozycje). Po przekroczeniu progu są dwie możliwości:
- wariant A: bot zamyka wszystkie pozycje i blokuje resztę dnia,
- wariant B: bot nie otwiera nowych pozycji, ale otwarte prowadzi dalej do SL albo TP.
Wariant B jest łagodniejszy, bo nie ucina pozycji, która właśnie idzie do 3R. W moich botach obie wersje obsługuje ten sam kod co dzienny limit straty, tylko z osobnym progiem zysku.
Blokada po powrocie do zera
Sytuacja odwrotna: dzień był na minusie, bot odrobił stratę do zera i na tym kończy dzień. To chroni przed schematem “odrobiłem, to teraz zarobię”, który często kończy się drugą serią strat.
Zabezpieczenie o określonej godzinie
O ustalonej godzinie, np. przed otwarciem sesji w USA, bot sprawdza zysk otwartej pozycji w R. Jeśli jest powyżej progu, zamyka pozycję, przesuwa SL na cenę wejścia albo na część zysku, albo zamyka część pozycji. Ściśle mówiąc to nie jest cel dzienny, ale rozwiązuje ten sam problem: żeby nie oddać zysku po południu.
Otwarcie sesji w Londynie albo w Nowym Jorku to moment, w którym rośnie zmienność i spread, a cena potrafi w kilka minut zabrać zysk zbierany od rana. Z testów konkretnego bota może wyjść, że opłaca się zamknąć część pozycji (częściowy zysk, partial profit) albo przesunąć SL tuż przed otwarciem jednej z tych sesji. Godzinę i wielkość zamknięcia dobieram w optymalizacji, a decyzję podejmuję po teście z tą funkcją i bez niej.
Kiedy cel zysku szkodzi
W większości strategii trendowych i wybiciowych zyski rozkładają się nierówno: kilka bardzo dobrych dni robi większość wyniku rocznego. Cel zysku tnie właśnie te dni. Przykład schematyczny:
| Wariant | Zysk roczny | Najlepszy dzień | Max DD |
|---|---|---|---|
| Bez celu | 100% (baza) | duży | baza |
| Cel 2% dziennie (stop nowych wejść) | zwykle mniej | ograniczony | podobny |
| Cel 2% dziennie (zamknięcie wszystkiego) | często wyraźnie mniej | ucięty | podobny |
To schemat, a nie wynik konkretnego bota. Prawdziwą tabelę zrób z backtestu swojego bota: ten sam plik .set,
test z celem włączonym i wyłączonym, ten sam okres i broker. Ja taki filtr oceniam najpierw przy wyłączonej
symulacji prop (sam wpływ na zysk, profit factor i drawdown), a potem drugi raz z symulacją prop, czyli ile
challenge bot zalicza (PASS), a ile traci (FAIL).
Jak dobrać próg
- Z backtestu wyciągnij wynik każdego dnia (plik CSV z transakcjami, grupowanie po dniu serwera).
- Policz percentyle dziennego wyniku: 90., 95. i 99.
- Próg celu ustaw powyżej 95. percentyla. Wtedy dotyka tylko wyjątkowych dni.
- Przy regule konsekwencji próg = cel zysku okresu x dopuszczalny udział jednego dnia, z zapasem. Przykład: cel 8%, reguła 40%, więc najlepszy dzień może dać najwyżej 3,2%. Na koncie 10 000 USD to 320 USD, próg bota ustawiam na 250-300 USD (2,5-3%).
- Porównaj test z celem i bez celu. Jeśli zysk spada o więcej niż kilka procent, a drawdown się nie poprawia, wyłącz cel.
Pułapki techniczne
- Wynik dnia musi obejmować otwarte pozycje. Jeśli bot liczy tylko zamknięte, przekroczy cel otwartą pozycją i tego nie zauważy.
- Przy kilku botach na koncie cel bota (jego magic) to co innego niż cel konta. Reguła konsekwencji firmy liczy całe konto.
- Informacja “cel osiągnięty” musi zostać po restarcie terminala, tak samo jak blokada po limicie straty.
- W Testerze początek dnia i zapis blokady muszą działać tak samo jak na koncie. Inaczej backtest pokaże efekt filtra, którego na żywo nie będzie.
Checklista
- wiem, po co włączam cel (reguła firmy albo oddawanie zysku),
- próg wyliczony z percentyli dziennego wyniku, nie z głowy,
- test z celem i bez celu na tym samym
.set, okresie i brokerze, - wybrany wariant: stop nowych wejść albo zamknięcie wszystkiego,
- blokada po celu zostaje po restarcie, dzień liczony wg serwera,
- funkcja domyślnie wyłączona w ustawieniach bota, włączana świadomie.
Powiązane
- Dzienny limit straty
- Reguła konsekwencji (consistency rule) - jak ją liczyć
- C-Score w SpiceProp
- Filtr wyczerpanego dnia (ATR)
- 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ą.