ordermodify error 1

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

ordermodify error 1

Nieprzeczytany post autor: xpep »

Witam
Do tej pory mi to nie przeszkadzalo, bo to błąd że nie ma błędu, ale zastanawiam sie czy można to jakos usunać? zapewne można tylko jak?
przeszukalem forum i znalazlem moje zapytanie z przed pol roku :D

http://www.forex.nawigator.biz/dyskusje ... php?t=9758

czy dobrze mysle ze blad jest stad ze przestawiam SL na taki jak jest? chyba nie bo powinno zalatwic sprawe a nie pomaga

Kod: Zaznacz cały

if( StopLoss>OrderStopLoss() ) 
pozdro
Ostatnio zmieniony 17 lis 2010, 16:48 przez xpep, łącznie zmieniany 2 razy.

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

Nieprzeczytany post autor: Tig3r »

nie nie powinno dajmy na to masz broka 4 kwotowan po przecinku i tak EA sprawdza

1.5000001 > 1.5
jest nierówność prawidłowa a wyśle to samo = 1.5

trzeba skorzystać z

Kod: Zaznacz cały

NormalizeDouble(x,Digits);
======================================================
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 »

hm tylko ze wczesniej sprawdzaczm czy sl nie jest za blisko i korzystam z tego co napisales :?

Kod: Zaznacz cały

void SprawdzSL(int kierunek,double sl)
{  if( kierunek>0 )
   {  StopLossPunktyL=(Ask-sl)/Point;
      if( StopLossPunktyL < najmniejszySL) StopLossPunktyL=najmniejszySL;
      StopLossL=NormalizeDouble(Ask,4) - StopLossPunktyL*Point;
      
   }
   if( kierunek<0 )
   {  StopLossPunktyS=(sl-Bid)/Point;
      if( StopLossPunktyS < najmniejszySL) StopLossPunktyS=najmniejszySL;
      StopLossS=NormalizeDouble(Bid,4) + StopLossPunktyS*Point;
   }
}

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

Nieprzeczytany post autor: Tig3r »

Ask/bid może być kwotowany do większej liczby po przecniku niż możliwość zawarcia transakcji i może się pojawić problem. Dlatego trzeba zaokrąglać.
======================================================
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 »

Kod: Zaznacz cały

SprawdzSL(1,newSL); 
if(StopLossL>OrderStopLoss()) 
{  Print("order ",OrderStopLoss()," slL ",StopLossL); 
   OrderModify(OrderTicket(),OrderOpenPrice(),StopLossL,OrderTakeProfit(),Slippage,Green); 
}
funkcja sprawdzsl zmieniona wg rad Tigera

Kod: Zaznacz cały

void SprawdzSL(int kierunek,double sl) 
{  if( kierunek>0 ) 
   {  StopLossPunktyL=(Ask-sl)/Point; 
      if( StopLossPunktyL < najmniejszySL) StopLossPunktyL=najmniejszySL; 
      StopLossL=NormalizeDouble((Ask - StopLossPunktyL*Point),4); 
      
   } 
   if( kierunek<0 ) 
   {  StopLossPunktyS=(sl-Bid)/Point; 
      if( StopLossPunktyS < najmniejszySL) StopLossPunktyS=najmniejszySL; 
      StopLossS=NormalizeDouble((Bid + StopLossPunktyS*Point),4); 
   } 
}
a teraz najlepsze

Dodano po 19 godzinach 6 minutach:
Mighty Baz pisze:niezle, jakos duzo tych pips na SL, jaki to broker?
przeciez nie wiesz ile wynosi SL, tzn ile pips :wink:

Dodano po 27 minutach:

wogole chodzi o to ze to sie printuje i wywala blad gdy warunek jest nie spelniony!!!!!!
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

ODPOWIEDZ