EN
Artykuły / 1.3 Zlecenia
Zleceniaszkic

Limit zamiast zlecenia rynkowego: wejście na dotknięcie poziomu

14.11.20263 min czytania

W skrócie: strategia, która czeka na cofnięcie ceny do konkretnego poziomu, ma dwie możliwości wejścia: sprawdzać cenę przy każdym tiku i kupić rynkowo, albo od razu wystawić zlecenie limit. U mnie pierwsza wersja zawyżała backtest na świecach M1 i dawała poślizg w realu. Po przejściu na limit wynik na świecach (+31 663) i na tikach (+31 066) przestał się rozjeżdżać.

Skąd się wziął problem

Bot wchodzi na cofnięciu do 50% ruchu po wybiciu z zakresu otwarcia (bot 4063_NyOrbFibPullbackNoCancelEA). Poziom nie zmienia się przez kilka minut, a ja sprawdzałem go co tick i wchodziłem rynkowo, gdy cena go dotknęła.

W teście na świecach M1 dotknięcie poziomu wewnątrz świecy oznacza wejście po cenie dokładnie z poziomu, bez poślizgu i bez spreadu w ruchu. W realu zlecenie rynkowe wchodzi po aktualnej cenie, czyli gorszej. Różnica jest systematyczna i zawsze na korzyść testu. Opisałem ten mechanizm szerzej w artykule o różnicy między OHLC a tikami. Poza tym sprawdzanie poziomu co tick to niepotrzebna praca terminala.

Jak działa wersja z limitem

Po wybiciu bot wystawia zlecenie limit z gotowymi SL i TP liczonymi od ceny poziomu. Raz na minutę przelicza poziom. Gdy poziom zmieni się o co najmniej ustalony próg (1 punkt), bot usuwa limit i wystawia nowy. Samej modyfikacji nie używam, bo przesunięcie poziomu zmienia odległość do SL, a to zmienia lot, a wolumenu istniejącego zlecenia nie da się zmienić.

Kierunek zmian jest jednostronny: limit kupna przesuwa się tylko w górę, limit sprzedaży tylko w dół, bo skrajny punkt ruchu może tylko rosnąć. W 3828 zmianach z testu nie było ani jednej w złą stronę.

Czy to nie jest spam zleceń

Tego bałem się najbardziej, bo część firm prop patrzy na liczbę operacji i potrafi zablokować konto za nadmierną liczbę zleceń. Policzyłem z testu obejmującego 472 dni:

Miara Wartość
Wystawionych limitów 3618
Średnio dziennie 7,7
Maksimum dziennie 46
Więcej niż 1 na minutę nigdy

Próg 1 punkt odciął około 16% operacji bez zmiany wyniku. Do logu dodałem liczniki: numer zlecenia w danym dniu, podsumowanie dnia i sumę przy zatrzymaniu bota. Regulaminu konkretnej firmy to nie zastąpi, ale mam liczby, którymi mogę się bronić.

Wygasanie po stronie brokera

Limit ustawiam z czasem wygaśnięcia po stronie brokera, na godzinę graniczną wejść. Dzięki temu zlecenie znika nawet wtedy, gdy terminal padnie i bot go nie skasuje. Nie zostawiam pendingów na noc, a wygasanie to zabezpieczenie na wypadek awarii.

Jest tu pułapka. Broker odrzucił mi 10 zleceń z kodem 10022: czas wygaśnięcia był za blisko. Dlatego nie wystawiam limitu w ostatnich 3 minutach przed wygaśnięciem. Pozycja po wypełnieniu limitu nie ma czasu wygaśnięcia, SL i TP pilnuje broker, a zamknięcie o godzinie robi bot.

Co zyskałem, czego nie

Zyskałem zgodność testu z realem i spokojniejszą pracę bota. Nie zyskałem gwarancji wypełnienia: gdy cena tylko musnie poziom, limit może się nie wypełnić, a rynkowe by wszedł. To prawdziwa cena tego rozwiązania, więc porównuję wynik na tikach, a nie świecach, zanim uznam wersję za gotową.

Checklista

  • Strategia wchodzi na poziomie, który stoi w miejscu przez kilka minut.
  • Limit ma gotowe SL i TP, a lot liczę od odległości do SL.
  • Przy zmianie poziomu usuwam zlecenie i wystawiam nowe, nie modyfikuję.
  • Mam próg zmiany poziomu i licznik zleceń w logu.
  • Czas wygaśnięcia ustawiam po stronie brokera, z zapasem kilku minut (kod 10022).
  • Wynik porównuję na tikach, nie tylko na świecach M1.

Powiązane

Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Wyniki testów opisują przeszłość i nie gwarantują zysku w przyszłości. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.

Dalej w rozdziale

20

Zlecenia oczekujące na noc: dlaczego ich nie zostawiam

Zlecenie stop lub limit wystawione wieczorem i zostawione do rana to ryzyko, którego bot w ciągu dnia nie ma: luka, szeroki spread po przerwie, zmiana czasu i reguły prop firm. Cztery powody, dla których kasuję pendingi przed zamknięciem sesji.

21

Wygasanie zleceń oczekujących po stronie brokera

Zlecenie oczekujące może wygasnąć samo na serwerze brokera albo zależeć od sprzątania w bocie. Różnica robi się ważna, gdy terminal lub VPS padnie w trakcie dnia. Opisuję tryby GTC, DAY i z datą oraz pułapkę błędu 10022.

25

Typy wypełnienia FOK, IOC i Return: skąd bierze się błąd 10030

Bot działa u jednego brokera, a u drugiego każde zlecenie wraca z błędem 10030. Wyjaśniam, czym są tryby wypełnienia FOK, IOC i Return, jak sprawdzić, które dopuszcza symbol, i jak bot ma wybierać tryb zamiast go zgadywać.