Serwis Forex-nawigator.biz korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.
Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce. [Zamknij tą informację]

Dzisiaj jest 23 mar 2019, 14:30    



Operacje logiczne

O jezykach programowania w platformach i nie tylko.
  • Autor
  • Wiadomość
Offline

Krzysztof z Bydzi

Bywalec

Bywalec

  • Posty: 12
  • Rejestracja: 24 sty 2013, 15:24

Operacje logiczne

Nieprzeczytany post12 sty 2019, 22:30

Witam.
Poproszę o pomoc. Chodzi mi tylko o warunek logiczny "lub". Jak go poprawnie zastosować? Jak zrobiłem tak jak poniżej to wyskakuje mi błąd "check operator precedence, use parentheses to clarify precedence" .
Kod: Zaznacz cały
if (Hour()<9&&0<Close[3]-Open[3]<0.00025||0<Open[3]-Close[3]<0.00025)
 {
   //--- get minimum stop level
   double minstoplevel=MarketInfo(Symbol(),MODE_ASK);
   Print("Minimum Stop Level=",minstoplevel," points");
   double price=Ask;
//--- calculated SL and TP prices must be normalized
   double stoploss=NormalizeDouble(Ask-50*Point,Digits);
   double takeprofit=NormalizeDouble(Ask+50*Point,Digits);
//--- place market order to buy 1 lot
   int zlecenie=OrderSend(Symbol(),OP_BUYSTOP,1,price,3,stoploss,takeprofit,"Moje zlecenie",0,0,clrGreen);
   if(zlecenie<0)
     {
      Print("OrderSend failed with error #",GetLastError());
     }
   else
      Print("OrderSend placed successfully");
  }
Offline

JAREK67

Maniak

Maniak

Re: Operacje logiczne

Nieprzeczytany post12 sty 2019, 23:11

Krzysztof z Bydzi pisze:Witam.
Poproszę o pomoc. Chodzi mi tylko o warunek logiczny "lub". Jak go poprawnie zastosować? Jak zrobiłem tak jak poniżej to wyskakuje mi błąd "check operator precedence, use parentheses to clarify precedence" .
Kod: Zaznacz cały
if (Hour()<9&&0<Close[3]-Open[3]<0.00025||0<Open[3]-Close[3]<0.00025)
 {
   //--- get minimum stop level
   double minstoplevel=MarketInfo(Symbol(),MODE_ASK);
   Print("Minimum Stop Level=",minstoplevel," points");
   double price=Ask;
//--- calculated SL and TP prices must be normalized
   double stoploss=NormalizeDouble(Ask-50*Point,Digits);
   double takeprofit=NormalizeDouble(Ask+50*Point,Digits);
//--- place market order to buy 1 lot
   int zlecenie=OrderSend(Symbol(),OP_BUYSTOP,1,price,3,stoploss,takeprofit,"Moje zlecenie",0,0,clrGreen);
   if(zlecenie<0)
     {
      Print("OrderSend failed with error #",GetLastError());
     }
   else
      Print("OrderSend placed successfully");
  }

napisz słowami jakie są warunki ?
Offline
Awatar użytkownika

personov

Pasjonat

Pasjonat

  • Posty: 1484
  • Rejestracja: 09 sie 2009, 20:27
  • Lokalizacja: Głogów
  • Pochwały: 39

Re: Operacje logiczne

Nieprzeczytany post13 sty 2019, 00:21

Jeśli warunków jest więcej obok znaku || to musisz oddzielić je nawiasem np. :
Kod: Zaznacz cały
if ((Hour()<9&&0<Close[3]-Open[3]<0.00025)||(0<Open[3]-Close[3]<0.00025))

poza tym nie można zapisać tego w taki sposób :
Kod: Zaznacz cały
0<Close[3]-Open[3]<0.00025

tylko tak :
Kod: Zaznacz cały
Close[3]-Open[3]>0&&Close[3]-Open[3]<0.00025
Solą życia jest kasa.
Offline

Krzysztof z Bydzi

Bywalec

Bywalec

  • Posty: 12
  • Rejestracja: 24 sty 2013, 15:24

Re: Operacje logiczne

Nieprzeczytany post16 sty 2019, 22:51

Dziękuję. Wpisałem w nawiasy.

Wróć do Programowanie

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości