Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 94

 
Vasili Taucci:
Задача интерактивно менять советника на чарте. Вариант с несколькими чартами и несколькими советниками не рассматривается.
Известен вариант о применении шаблона ChartApplyTemplate, и он справляется со своей задачей, но бывает возвращает ответ false (в цикле постоянный ответ), мотивируя это тем что не может поместить команду в очередь.
Что за очередь, где можно прочесть об этом или как можно очистить эту очередь ибо моя задача должна быть приоритетнее всех остальных?

пробовал подойти иначе: Вам надо менять стратегию! Помещал все в один советник. Сначала управлял скриптами и глобальными переменными. Потом кнопками. Одна зеленая - остальные желтые. Нажимаю на желтую - она становится зеленой и стратегия меняется. Потом оставил одну маленькую кнопку. Нажимаю - появляются описанные кнопки. Нажимаю на желтую - стратегия меняется и кнопки исчезают, на зеленую - остается прежняя стратегия. Потом научил советника самого выбирать ...

 
STARIJ:

пробовал подойти иначе: Вам надо менять стратегию! Помещал все в один советник. Сначала управлял скриптами и глобальными переменными. Потом кнопками. Одна зеленая - остальные желтые. Нажимаю на желтую - она становится зеленой и стратегия меняется. Потом оставил одну маленькую кнопку. Нажимаю - появляются описанные кнопки. Нажимаю на желтую - стратегия меняется и кнопки исчезают, на зеленую - остается прежняя стратегия. Потом научил советника самого выбирать ...


в моем случае нет исходников советников. Я лишь пишу управляющий другими ))

 

помогите разобраться. почему не открываются позиции на покупку. что не так с  if ... else если OB=false по умолчанию



double lot=0.01;
bool OB=false;
string simb=Symbol();

int start()
{

 while(true)
  {
    if(OB=true)break;
    else
    {
    int ticket=OrderSend(simb,OP_BUY,lot,Ask,4,0,0);
    }
 if(ticket>0)
        {
        Alert("Open");
        }
        else Alert("Not open");
 int Error = GetLastError();
  switch(Error)
    {
    default: Alert("Error is NO = ",Error);
    }
    break;
   
  }
  return;
 }
 

 
Baruandreas:

помогите разобраться. почему не открываются позиции на покупку. что не так с  if ... else если OB=false по умолчанию


bool OB=false;

...
 while(true)

  {
    if(OB=true)break;
    else
    {
    int ticket=OrderSend(simb,OP_BUY,lot,Ask,4,0,0);
    }

...



В строке "if(OB=true)" вы присваиваете OB значение true прямо внутри проверки условия. Не путайте оператор присваивания "=" и оператор сравнения "==". К тому же, сравнивать булевскую переменную с true нет смысла. И в else для оператора, по которому мы всё равно выйдем из цикла, если он сработает, тоже нет смысла.

Правильно будет 

if(OB)break;
int ticket=OrderSend(simb,OP_BUY,lot,Ask,4,0,0);

 

нужно или ненужно проверять? какие могут быть последствия?

 
Baruandreas:

нужно или ненужно проверять? какие могут быть последствия?

Предупреждение - это потенциальная ошибка. Желательно устранить, чтоб не было последствий 

 

Добрый день!

Мне всегда в платформе эксперты брались от папки C:\Program Files (x86)\Брокер\MQL4\Experts, сейчас после перезапуска МТ4 начали от C:\Users\Nauris\AppData\Roaming\MetaQuotes\Terminal\E1563977DAC5C4226D329EB321915A56\MQL4\Experts. Как я могу настроить в платформе обратно первый вариант ?

 
Baruandreas:

нужно или ненужно проверять? какие могут быть последствия?

Предупреждения отвлекают. Все устраняю. В данном случае делаю так:

bool x;
x=OrderSend(...);
.....................
x=...

в будущем при желании можно будет добавить проверку

 

Здравствуйте! Кто подскажет, почему не скачиваются бесплатные советники и индикаторы? Пишет:"Есть ли у меня терминал?" Нажимаю, что ДА - и на этом все заканчивается, скачивания не происходит. ??

 
MisterBond:

Здравствуйте! Кто подскажет, почему не скачиваются бесплатные советники и индикаторы? Пишет:"Есть ли у меня терминал?" Нажимаю, что ДА - и на этом все заканчивается, скачивания не происходит. ??


Посмотри в навигаторе. Файл маленкии, быстро качает. устанавливает сразу в мт4

Причина обращения: