Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 891

 
Добрый день! Всегда после отключение и включение "Разрешить советнику торговать" открывается позиция, которая не должна открываться. Я полагаю, что это из за того, что не сбрасывается переменные. Как сделать, что-бы после включение или отключение   "Разрешит советнику торговать" сбросились все переменные, так как это есть после перезапуска МТ4 платформы?
 
abeiks:
Добрый день!Всегда после отключение и включение "Разрешить советнику торговать" открывается позиция, которая не должна открываться. Я полагаю, что это из за того, что не сбрасывается переменные. Как сделать, что-бы после включение или отключение   "Разрешит советнику торговать" сбросились все переменные, так как это есть после перезапуска МТ4 платформы?
Надо просто те переменные сбросить в момент, когда эта самая галочка снята и больше их не трогать, пока пользователь её опять не активирует. Следить за MQLInfoInteger(MQL_TRADE_ALLOWED).
 
evillive:
Надо просто те переменные сбросить в момент, когда эта самая галочка снята и больше их не трогать, пока пользователь её опять не активирует. Следить за MQLInfoInteger(MQL_TRADE_ALLOWED).
Спасибо!
 
evillive:
Надо просто те переменные сбросить в момент, когда эта самая галочка снята и больше их не трогать, пока пользователь её опять не активирует. Следить за MQLInfoInteger(MQL_TRADE_ALLOWED).
Может как то можно сделать что после IsTradeAllowed()==false эксперт удалится и заново загрузится ( expert: removed ; expert: load successfully)?
 
evillive:

Это такое же ветвление, как и if(), просто аккуратнее выглядит и удобнее кодить, если для выбора из трёх и более одиночных вариантов целых чисел. Если есть только два варианта, или же сравнивается не целочисленные выражения, тогда только  if(). А ещё по if() можно комбинировать несколько вариантов (if( вариант1 &&  вариант2  || вариант3 ) {действие;}), а в switch напрямую нельзя, только по очереди.

switch
if()
switch (x)
{
 case 1: действия по варианту 1; break;
 case 2: действия по варианту 2; break;
 case 3: действия по варианту 3; break;
 default: действия по умолчанию; break;
}
if( вариант1 ) { действия по варианту 1; }
else if( вариант2 ) { действия по варианту 2; }
else if( вариант3 ) { действия по варианту 3; }
else { действия по умолчанию; }

Спасибо! В учебнике я такого сравнения не видел, хотя, может я просто читаю не подряд.

Во всяком случае - это как раз то, что ждет новичок от профессионала - раскрытия тонкостей, которых не найдешь ни в учебнике, ни тем более в справке. 

 
Ну и опять я с вопросом: существует ли ограничение вложений (см. SRC) в ператор if-else ?
if()
   {if()
      {}
      else
      {}
    }
    else
    {
    if()
      {}
      else ...и т.д....
     }             
Никак не найду причину, почему не работает такой примитивный код.
 
rapid_minus:
Ну и опять я с вопросом: существует ли ограничение вложений (см. SRC) в ператор if-else ?Никак не найду причину, почему не работает такой примитивный код.
Что именно не работает?
 
evillive:
Что именно не работает?


Всё :(   При тестировании сразу открывает позицию по не заданным в коде критериям, и не закрывает ее до конца тестирования, т.е. игнорирует все условия для закрытия, прописанные в коде.

И непонятно, то ли неправильно прописаны условия закрытия, то ли открытая позиция не читается 

 
rapid_minus:


Всё :(   При тестировании сразу открывает позицию по не заданным в коде критериям, и не закрывает ее до конца тестирования, т.е. игнорирует все условия для закрытия, прописанные в коде.

И непонятно, то ли неправильно прописаны условия закрытия, то ли открытая позиция не читается 

В таких случаях, когда непонятно где засада, рекомендуется после каждого действия вставлять принт с описанием действия (и выводом ошибки, если надо).
 
evillive:
В таких случаях, когда непонятно где засада, рекомендуется после каждого действия вставлять принт с описанием действия (и выводом ошибки, если надо).

Спасибо. Работы многовато, но видно иначе я ошибку не найду.
Причина обращения: