order send error 4107

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
xpep
Pasjonat
Pasjonat
Posty: 844
Rejestracja: 02 gru 2007, 11:50

order send error 4107

Nieprzeczytany post autor: xpep »

Witam!

Czy ktoś może wie co oznacza ten błąd?

Pozdrawiam Przemek

Awatar użytkownika
luktom
Gaduła
Gaduła
Posty: 197
Rejestracja: 19 gru 2007, 14:39

Nieprzeczytany post autor: luktom »

ERR_INVALID_PRICE_PARAM 4107 Invalid price.

(na przyszłość szybciej będzie wpisać błąd w szukajce MetaEditora :] )

Ew. wrzuć sobie do kodu include'y:

Kod: Zaznacz cały

#include <stderror.mqh>
#include <stdlib.mqh>
I jak dostaniesz błąd, to zrób:

Kod: Zaznacz cały

Alert(ErrorDescription(GetLastError()));
Od razu się sprawa wyjaśni co to za błąd 8)

Awatar użytkownika
xpep
Pasjonat
Pasjonat
Posty: 844
Rejestracja: 02 gru 2007, 11:50

Nieprzeczytany post autor: xpep »

2009.06.24 14:44:59 2009.06.12 21:15 newbot-test EURUSD,M15: invalid price 1.40022000 for OrderSend function

dobra daje mi cos takiego

wiek ktos co to oznacza?

Awatar użytkownika
luktom
Gaduła
Gaduła
Posty: 197
Rejestracja: 19 gru 2007, 14:39

Nieprzeczytany post autor: luktom »

Jeśli po rynku to musisz dać jako cenę Ask lub Bid, jeśli oczekujące to coś źle podałeś, poza tym zobacz zaokrąglenia, bo czasami gdy ceny wyliczasz to jest z tym problem - NormalizeDouble(cena,Digits)
algotronic- zaawansowane rozwiązania dla traderów
Odwiedź naszą stronę WWW, aby poznać pełną ofertę

Awatar użytkownika
xpep
Pasjonat
Pasjonat
Posty: 844
Rejestracja: 02 gru 2007, 11:50

Nieprzeczytany post autor: xpep »

luktom pisze:Jeśli po rynku to musisz dać jako cenę Ask lub Bid, jeśli oczekujące to coś źle podałeś, poza tym zobacz zaokrąglenia, bo czasami gdy ceny wyliczasz to jest z tym problem - NormalizeDouble(cena,Digits)
no ta cena zdaje sie nie jest zaokraglona, 1.40022, to jest normalnie wejscie po aktualnej cenie

Kod: Zaznacz cały

ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,0,Bid+sl,Bid-tp,"trade",MagicNumber,0,Green); 
    
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Ask-sl,Ask+tp,"trade",MagicNumber,0,Green);
dla sell i dla buy

dziwne bo sporo sygnalow przez to przepada, raz dzialaja raz nie

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

Nieprzeczytany post autor: Tig3r »

Zapewne problem taki:

nie:

Kod: Zaznacz cały

Bid+sl
a

Kod: Zaznacz cały

Bid+sl*Piont
To samo reszta TP i SL jeśli mas zpodane w pipsach tylu całkowitego to musisz pomnożyć przez Point
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
xpep
Pasjonat
Pasjonat
Posty: 844
Rejestracja: 02 gru 2007, 11:50

Nieprzeczytany post autor: xpep »

tylko ze mam tak

Kod: Zaznacz cały

double tp=100*Point,sl=20*Point; 

Awatar użytkownika
Ykee
Gaduła
Gaduła
Posty: 198
Rejestracja: 15 lip 2008, 22:12

Nieprzeczytany post autor: Ykee »

A wiec powinno być jeszcze może coś takiego, zamiast:

Kod: Zaznacz cały

ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,0,Bid+sl,Bid-tp,"trade",MagicNumber,0,Green); 
    
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Ask-sl,Ask+tp,"trade",MagicNumber,0,Green); 
daj np.:
---- code
ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+sl,Bid-tp,"trade",MagicNumber,0,Green);

ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-sl,Ask+tp,"trade",MagicNumber,0,Green);
---- end code

To jest SlipPage - czyli odchylenie od kwotowanej ceny... Podobno jak cena jest bardzo zmienna to broker nie nadąża, więc ostatecznie wychodzi większy spread ;)

...
widzialem nawet takie rowiązanie:

Kod: Zaznacz cały

ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,0,Ask-sl,Ask+tp,"trade",MagicNumber,0,Green);
if(ticket<0){
     if(GetLastError() == 4107)  ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-sl,Ask+tp,"trade",MagicNumber,0,Green);
     if(ticket<0){
          err=GetLastError();
          Print("error(",err,"): ",ErrorDescription(err));
          return(0);
     }
}

Awatar użytkownika
xpep
Pasjonat
Pasjonat
Posty: 844
Rejestracja: 02 gru 2007, 11:50

Nieprzeczytany post autor: xpep »

tez o tym pomyslalem tylko ze to tester i tu nie ma slippage a probowalem nawet z wartoscia 10 i nic:/

w kazdym razie znalazlem pewne rozwiazanie a raczej ominiecie problemu ktorego wciaz nie czaje :D

pozdrawiam i dzieki pomoc

Awatar użytkownika
batman
Gaduła
Gaduła
Posty: 159
Rejestracja: 19 kwie 2011, 07:55

Nieprzeczytany post autor: batman »

I jakies nowe wnioski z powyzszym problemem?
Bo mam taki sam ;) Przynajmniej przy testowaniu na danych historycznych
A najdziwniejsze, ze jak pisze wyzej xpep czasem dziala, a czasem nie dziala :?: I to nie wazne, czy i jakie SL i TP ustawie, bo bez nich tez czasem nie robi tranzakcji dajac blad 4107 (zly SL to error 130 bodajrze, czy cos kolo tego).
Bede wdzieczny za ew. wskazowki.
Pozdrawiam

ODPOWIEDZ