Schemat poglądowy pokazuje kolejno: jak formuje się strefa 12:15–12:30, jak broker podaje dwie ceny (BID i ASK), oraz jak bot powinien podejmować decyzje o wejściu, ustawieniu SL/TP i zamknięciu pozycji.
Strefa to prostokąt zdefiniowany przez najwyższy i najniższy punkt świecy (lub kilku świec) w danym przedziale czasowym. W przykładzie: świeca 15-minutowa otwierająca się o 12:15 i zamykająca o 12:30 wyznacza Zone High (górna krawędź) oraz Zone Low (dolna krawędź). Po 12:30 strefa jest „zamrożona” — bot czeka na wybicie.
zone_high i zone_low wyznaczasz w momencie zamknięcia świecy o 12:30 — nie wcześniej. Do tej chwili strefa jeszcze „żyje”.
Broker zawsze podaje dwie ceny, nie jedną:
ASK — cena po której kupisz (wyższa).
BID — cena po której sprzedasz (niższa).
Różnica ASK − BID to spread, który zostaje u brokera.
Bot nasłuchuje aż cena przebije Zone High. Ponieważ BUY otwiera się po ASK, to właśnie ASK musi przekroczyć Zone High aby sygnał był realnie wykonalny. Jeśli testowałbyś tylko BID, dostałbyś sygnał, ale wejście byłoby droższe niż zakładasz (bo ASK jest już ponad strefą).
1. Czekaj aż ASK > zone_high.
2. Otwórz BUY — broker wykona po bieżącym ASK (to Twoja cena wejścia, entry_price).
3. Policz i wyślij do brokera poziomy:
TP = entry + tp_pips
SL = entry − sl_pips
Pozycja BUY jest zamykana po BID, więc broker mierzy dotknięcie poziomów względem BID:
· BID ≥ TP → pozycja zamknięta z zyskiem.
· BID ≤ SL → pozycja zamknięta ze stratą.
Bot nasłuchuje aż cena przebije Zone Low. Ponieważ SELL otwiera się po BID, to BID musi spaść poniżej Zone Low. Jeśli testowałbyś na ASK, sygnał przyszedłby z opóźnieniem (bo ASK jest wyżej niż BID — do jego spadku pod strefę trzeba silniejszego ruchu).
1. Czekaj aż BID < zone_low.
2. Otwórz SELL — broker wykona po bieżącym BID (to Twój entry_price).
3. Policz i wyślij poziomy:
TP = entry − tp_pips
SL = entry + sl_pips
Pozycja SELL jest zamykana po ASK, więc broker mierzy dotknięcie poziomów względem ASK:
· ASK ≤ TP → zysk.
· ASK ≥ SL → strata.
max_spread i odrzucać sygnały gdy spread jest szerszy niż próg — inaczej SL często trafia natychmiast po wejściu.
entry_price weź ze zwrotu brokera (pole w odpowiedzi MetaAPI), a nie z lokalnej zmiennej — inaczej Twoje TP/SL będą liczone od nieprawdziwej ceny.
zone_traded = True i już nie reagować na drugi sygnał z tej samej strefy, chyba że świadomie dopuszczasz strategię re-entry.
BUY (wybicie GÓRĄ) trigger: ASK > zone_high (+ opcjonalny bufor / close świecy) entry: po cenie ASK (entry_price = response.order.openPrice) TP: entry + tp_pips (aktywacja gdy BID ≥ TP) SL: entry − sl_pips (aktywacja gdy BID ≤ SL) SELL (wybicie DOŁEM) trigger: BID < zone_low (+ opcjonalny bufor / close świecy) entry: po cenie BID TP: entry − tp_pips (aktywacja gdy ASK ≤ TP) SL: entry + sl_pips (aktywacja gdy ASK ≥ SL) guard-y: · max_spread (odrzucaj sygnał gdy spread za duży) · zone_traded (jedno wejście na strefę) · candle_close_confirm (true/false — czy wymagamy zamknięcia świecy)