Problem z wykonaniem ordersend dla OP_SELL.

O jezykach programowania w platformach i nie tylko.
sigmatic
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 28 sty 2008, 23:13

Problem z wykonaniem ordersend dla OP_SELL.

Nieprzeczytany post autor: sigmatic »

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.

Awatar użytkownika
psV
Gaduła
Gaduła
Posty: 365
Rejestracja: 05 gru 2009, 10:23

Nieprzeczytany post autor: psV »

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?

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Nieprzeczytany post autor: Tig3r »

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
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

sigmatic
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 28 sty 2008, 23:13

Nieprzeczytany post autor: sigmatic »

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?
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?
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:
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
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.
Co do ustalanych minim dla TP i SL to wynoszą one 20 pipsów u mojego brokera.

Awatar użytkownika
CoVal
Gaduła
Gaduła
Posty: 320
Rejestracja: 06 paź 2005, 22:45

Re: Problem z wykonaniem ordersend dla OP_SELL.

Nieprzeczytany post autor: CoVal »

sigmatic pisze: int ticket = OrderSend(Symbol(), 1, 0.1, BID, 5, BID-POINT, BID+POINT);
piszesz, ze dotyczy to otwarcia pozycji krotkiej....

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....

sigmatic
Uczestnik
Uczestnik
Posty: 4
Rejestracja: 28 sty 2008, 23:13

Nieprzeczytany post autor: sigmatic »

Dzięki panowie za porady i wsparcie. CoVal dzięki za trzeźwość oceny sytuacji ;)

ODPOWIEDZ