Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 872

 
Igor Makanu:

странное поведение, обычно после вызова окошка настроек выполняется OnIniT(), ну так да так


приатачил пример , разархивируйте и по папкам разбросайте

спасибо. я так понял без библиотеки он не работает) 

 
Lomonosov1991:

а так вообще не работает

string LongShortToString2()
{
  string Str = "Long & Short";

  if (OrderSend(_Symbol, OP_BUY, 1, 0, 0, 0, 0) && (GetLastError() == ERR_LONGS_NOT_ALLOWED))
    Str = "Only Short";
  else if (OrderSend(_Symbol, OP_SELL, 1, 0, 0, 0, 0) && (GetLastError() == ERR_SHORTS_NOT_ALLOWED))
    Str = "Only Long";
    
  return(Str);
}


Не всегда будет работать, но чаще всего этого хватает.

 
fxsaber:

Фейковые OrderSend из советника не всегда позволяют определить его настройки.

Спасибо) код вписал в советника и библиотеку закинул. думал может без библиотеки заработает)

 
fxsaber:


Не всегда будет работать, но чаще всего этого хватает.

Так не будет правильно без дополнительных макросов

if (OrderSend(_Symbol, OP_BUY, 1, 0, 0, 0, 0) && (GetLastError() == ERR_LONGS_NOT_ALLOWED))

В четвёрке OrderSend() возвращает номер тикета, либо -1. А ведь  -1 - это true

 
Artyom Trishkin:

Так не будет правильно без дополнительных макросов

В четвёрке OrderSend() возвращает номер тикета, либо -1. А ведь  -1 - это true

Именно поэтому и будет работать.

 
fxsaber:

Именно по этому и будет работать.

Добро, не вникал в логику.

Открыто -> true && false --> результат false = разрешение

Не открыто -> true && (true || false) --> результат true = запрет длинных позиций, false = разрешение

...

В каких случаях не работает?

И если откроет, то зачем лотом 1.0 ? не много терять на проверке?

 
Artyom Trishkin:

В каких случаях не работает?

Например, если торговля запрещена.

И если откроет, то зачем лотом 1.0 ? не много терять на проверке?

Открытия по нулевой цене не должно быть, но не уверен.

 
fxsaber:

Например, если торговля запрещена.

Открытия по нулевой цене не должно быть, но не уверен.

Да, на цены я не обратил внимания, каюсь :)

Но что будет первым кодом ошибки "реквота" или "торговля в лонг запрещена"?

 
Artyom Trishkin:

Но что будет первым кодом ошибки "реквота" или "торговля в лонг запрещена"?

Попробуйте.

 
fxsaber:

Попробуйте.

Не сейчас

Только когда потребуется.

Есть привычка - запоминать "нужности" и учитывать при надобности.