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

 
Nikolay Gaylis:
Здравствуйте!Подскажите пожалуйста,как программно показать/убрать определённый символ в окне "обзор рынка".Спасибо!

Смотрите функцию SymbolSelect.

 

Добрый день! Подскажите пожалуйста где может быть ошибка в этом фрагменте кода?

 if (TotalMax_1<1)Step_1max=TotalMax_0;                                                  // Если расчетов еще небыло Step_1max=TotalMax_0
 else Step_1max=TotalMax_0-TotalMax_1;                                                   // Если расчеты уже были Step_1max=TotalMax_0-TotalMax_1
 
 for (i_1max=Step_1max;TotalMax_0>TotalMax_1;i_1max--)                                   // Главный цикл для заполнения массива Max_1
  {
   if (Max_0[i_1max]>Min_0[i_1max] && Stop_1max==0)                                      // Если максимум больше минимума и Stop_1max равен 0 нужно произвести расчет Максимального Индекса
    {
     Mmax_1=Max_0[i_1max];                                                               // Задается значение параметру Mmax_1
     MIndex_1max=i_1max;                                                                 // Задается значение параметру MIndex_1max
       
     for (i_1maxH=i_1max;Max_0[i_1maxH]>=Min_0[i_1maxH];i_1maxH--)                       // Цикл для расчета Максимального Индекса
       {
        if (Max_0[i_1maxH]>Mmax_1)                                                       // Если встречается максимум и он выше предыдущего
         {
          Mmax_1=Max_0[i_1maxH];                                                         // ... то меняется значение параметра Mmax_1
          MIndex_1max=i_1maxH;                                                           // ... и параметра MIndex_1max
         }
       }
       
     Stop_1max=1;                                                                        // Задается значение пераметру Stop_1max
    }
                                                                             
   if (i_1max==MIndex_1max)                                                              // Условие для вычисления максимума
    {
     Max_1[i_1max]=Mmax_1;                                                               // Присвоение значения массиву Max_1
     TotalMax_1=ArraySize(Max_1);                                                        // Всего баров в массиве Max_1
     }
        
   else                                                                                  // Если нет
      { 
       Max_1[i_1max]=0;                                                                  // Присвоение 0 значения массиву Max_1
       TotalMax_1=ArraySize(Max_1);                                                      // Всего баров в массиве Max_1
       }

   if (Min_0[i_1max]>Max_0[i_1max]) Stop_1max=0;                                         // Если минимум больше максимума задается значение пераметру Stop_1max
       
  }
 

Всем привет! Столкнулся с такой проблемой:

Открываю сделку без стоплосса и тэйкпрофита:

OrderSend("EURUSD",OP_BUY,0.1,Ask,0,0,0,"",Magic,0,Red);

Хочу закрыть этот ордер

OrderClose(Magic,OrderOpenPrice(),Ask,0,Red);

Вылезает ошибка: OrderClose error 131

Если вместо OrderOpenPrice() укажу 0.1 или OrderLots(), то ошибка:  OrderClose error 138

В чем проблема?

 
labvic:

Всем привет! Столкнулся с такой проблемой:

Открываю сделку без стоплосса и тэйкпрофита:

Хочу закрыть этот ордер

Вылезает ошибка: OrderClose error 131

Если вместо OrderOpenPrice() укажу 0.1 или OrderLots(), то ошибка:  OrderClose error 138

В чем проблема?

Не по той цене закрываете
 
Artyom Trishkin:
Не по той цене закрываете

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

 
labvic:

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

Ну это же азы.
Buy открывается по Ask, закрывается по Bid.
Sell открывается по Bid, закрывается  по Ask
 

Доброго времени суток!

Прочитал внимательно в учебнике  про включаемые файлы, нигде нет информации о том, что включаемый файл нельзя "включать" в Советнике дважды.

У меня первый "срабатывает", второй (с таким же именем) пропускается/игнорируется.

Что Я делаю - делаю копию включаемого файла, добавляю букву/цифру к наименованию файла и в строке Советника, и все работает.

Вопрос: дело в языке mql4 или во мне?

Заранее Спасибо!!!

 
Roni Iron:

Доброго времени суток!

Прочитал внимательно в учебнике  про включаемые файлы, нигде нет информации о том, что включаемый файл нельзя "включать" в Советнике дважды.

У меня первый "срабатывает", второй (с таким же именем) пропускается/игнорируется.

Что Я делаю - делаю копию включаемого файла, добавляю букву/цифру к наименованию файла и в строке Советника, и все работает.

Вопрос: дело в языке mql4 или во мне?

Заранее Спасибо!!!

Зачем вам дважды включать одно и то же в листинг?

Если во включаемом файле есть функция f(), то включив её дважды в ваш код, вы получите ошибку компиляции об уже объявленной функции f()

 
Artyom Trishkin:

Зачем вам дважды включать одно и то же в листинг?

Если во включаемом файле есть функция f(), то включив её дважды в ваш код, вы получите ошибку компиляции об уже объявленной функции f()

Если я включаемый файл использую не как пользовательскую функцию, а как "подстановку"/вставку простого фрагмента кода, к примеру поиск последнего ордера по своему инструменту (или вообще наличие ордера). И такой поиск может в программе использоваться несколько раз. И таких "классических операций" может быть много.
 
Roni Iron:
Если я включаемый файл использую не как пользовательскую функцию, а как "подстановку"/вставку простого фрагмента кода, к примеру поиск последнего ордера по своему инструменту (или вообще наличие ордера). И такой поиск может в программе использоваться несколько раз. И таких "классических операций" может быть много.

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

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