Witajcie,
Mam drobny (zapewne) problem, który irytuje mnie już od pewnego czasu.
Sytuacja wygląda następująco. Mam EA w którym wywołuję funkcję start(), a w niej:
int start()
{
double BID = NormalizeDouble(Bid, Digits);
double POINT = 0.01;
int ticket = OrderSend(Symbol(), 1, 0.1, BID, 5, BID-POINT, BID+POINT);
if(ticket<0){
Print("Błąd: ", GetLastError());}
return(0);
}
Niestety f-cja OrderSend wyrzuca mi co chwilę błąd 130. Próbowałem już normalizować cenę otwarcia i naprawdę nie wiem w czym jest problem.
Co ciekawsze dla opcji OP_BUY, nie musiałem normalizować "Ask" w f-cji OrderSend i zlecenia wchodziły bez problemu. Dodatkowo "Point" ma wartość = 0, a nie 0.001 czy 0.0001 jak chyba powinno być. Stąd też w powyższym przykładzie tworzyłem zmienną POINT by ręcznie przypisać jej wartość.
Z góry dzięki za porady.
Problem z wykonaniem ordersend dla OP_SELL.
radzę korzystać z OP_SELL czy OP_BUY? i dopowiednio dla każdej transakcji
Otwierasz po BID zamykasz po SELL i odwrotnie!
pozatym sam pips to za mało - brokerzy mają ustawiane minima SL i TP
Otwierasz po BID zamykasz po SELL i odwrotnie!
pozatym sam pips to za mało - brokerzy mają ustawiane minima SL i TP
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Ustawiłem bez TP i SL jak radziłeś i zlecenie weszło, więc musi być coś ustawieniem wielkości powyższych. Sprawdziłem jakie są minimalne odchylenia u brokera i wynoszą one 20 pips dla TP i SL. To w czym tkwi dalej błąd?psV pisze:Error 130 to invalid stops. Spróbuj ustawić bez TP i SL i sprawdź czy przechodzi.
btw. nie powinno być *POINT zamiast -POINT czy tam +POINT?
Mam znormalizowaną cenę otwarcia "Bid" do 5 miejsc po przecinku (w oryginale jest nawet mniejsza bo 4 po przecinku) i do tej ceny odpowiednio dodaję bądź odejmuję stałą wartość "POINT" by uzyskać finalne TP i SL. Próbowałem już nawet normalizować wynik "Bid-POINT" i "Bid+POINT" i w OrderSend podawać jako znormalizowaną zmienną i nic. Próbowałem też ustawić SL i TP w formie "Bid-25*Point" i "Bid+25*Point" i nadal nic

Zaczyna mi powoli brakować włosów do wyrywania

Dodano po 2 minutach:
Początkowo korzystałem z opisowych form dla argumentów funkcji. Zmieniłem je na "1" bądź "0" sądząc, że może w tym tkwi problem.Tig3r pisze:radzę korzystać z OP_SELL czy OP_BUY? i dopowiednio dla każdej transakcji
Otwierasz po BID zamykasz po SELL i odwrotnie!
pozatym sam pips to za mało - brokerzy mają ustawiane minima SL i TP
Co do ustalanych minim dla TP i SL to wynoszą one 20 pipsów u mojego brokera.
Re: Problem z wykonaniem ordersend dla OP_SELL.
piszesz, ze dotyczy to otwarcia pozycji krotkiej....sigmatic pisze: int ticket = OrderSend(Symbol(), 1, 0.1, BID, 5, BID-POINT, BID+POINT);
jesli rzucisz okiem na to co napisales, to zauwazysz, ze probujesz ustawic SL dla shorta ponizej ceny otwarcia a TP powyzej...
ot, i caly problem....