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

 
Iosebi Tavadze:
Может я не в ту ветку вошел.Да простят меня Боги Мкл .!!! Мне надо написать индикатор.Который бы выдавал сигнал из комбинации четырех или пяти индикаторов.Установленных в подвале.Может есть шаблон. Или готовый советник.Подскажите Пожалуйста!!!!!!!!!!

Если нужно чтобы для вас написали, то сюда.

Если хотите сами, то рассказывайте что у вас не получается и выкладывайте свой код.

 
simeon068 :
How can I add an expert advisor to an mql5 folder and for it to show in the advisor section?

In the terminal, in the "File" menu, select "Open data directory" - the explorer will open. In it, go to the MQL5 \ Experts folder - place your adviser in it or in any subfolder. Then in the navigator of the terminal in the menu of the right button select "Update".

[Удален]  

Может кто подскажет!!! что за предупреждение и как его исправить?

Снимок3

вот в этом месте

// если активны входящие параметры, использующие значение текущей цены по инструменту,
// тогда пытаемся получить текущие значения
   if(hide_PRICE_HIGH>0 || hide_PRICE_LOW>0 || hide_SPREAD>0)
     {
      SymbolInfoTick(name, lastme);
      if(lastme.bid==0)
        {
         Alert("("+name+") Получить значение BID не удалось. Некоторые функции фильтрации могут не работать.");
        }
     }
// Скрыть символы, у которых спред:
   if(hide_SPREAD>0 && lastme.bid>0)
     {
      switch(hide_SPREAD)
        {
         // если текущий спред больше 0.05% от цены - пропускаем символ
         case spread_b05:
            if(((SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT))/lastme.bid)*100 > 0.05)
              {
               isskip=true;
              }
            break;
         // если текущий спред больше 0.1% от цены - пропускаем символ
         case spread_b1:
            if(((SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT))/lastme.bid)*100 > 0.1)
              {
               isskip=true;
              }
            break;
         // если текущий спред больше 0.15% от цены - пропускаем символ
         case spread_b15:
            if(((SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT))/lastme.bid)*100 > 0.15)
              {
               isskip=true;
              }
            break;
         // если текущий спред меньше 0.15% от цены - пропускаем символ
         case spread_l15:
            if(((SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT))/lastme.bid)*100 < 0.15)
              {
               isskip=true;
              }
            break;
         // если текущий спред меньше 0.1% от цены - пропускаем символ
         case spread_l1:
            if(((SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT))/lastme.bid)*100 < 0.1)
              {
               isskip=true;
              }
            break;
         // если текущий спред != 0.01 - пропускаем символ
         case spread_c1:
            if(SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT) > 0.01)
              {
               isskip=true;
              }
            break;
         // если текущий спред > 0.03 - пропускаем символ
         case spread_c3:
            if(SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT) > 0.03)
              {
               isskip=true;
              }
            break;
         // если текущий спред > 0.07 - пропускаем символ
         case spread_c7:
            if(SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT) > 0.07)
              {
               isskip=true;
              }
            break;
         // если текущий спред > 0.1 - пропускаем символ
         case spread_c10:
            if(SymbolInfoInteger(name, SYMBOL_SPREAD)*SymbolInfoDouble(name, SYMBOL_POINT) > 0.1)
              {
               isskip=true;
              }
            break;
        }
     }


 

[Удален]  
Alexsandr San:

Может кто подскажет!!! что за предупреждение и как его исправить?

вот в этом месте


 

вроде исправил - только вот не знаю, так правильно? Вынес это дело наружу

Снимокисправил 

 
Alexsandr San:

Может кто подскажет!!! что за предупреждение и как его исправить?

вот в этом месте


 

Возможно использование неинициализированной переменно lastme. Она у вас объявлена без инициализации. Не факт, что она будет заполнена в SymbolInfoTick()

Объявите переменную сразу с инициализацией: MqlTick lastme={0};

[Удален]  
Artyom Trishkin:

Возможно использование неинициализированной переменно lastme. Она у вас объявлена без инициализации. Не факт, что она будет заполнена в SymbolInfoTick()

Объявите переменную сразу с инициализацией: MqlTick lastme={0};

Большое спасибо! предупреждение исчезло. Здоровья и всех благ!!! 

--------------------------

я назад вовнутрь вернул - так как Вы показали. 


хорошая утилита, я её от сюда скачал https://www.mql5.com/ru/articles/5614

Файлы:
finder.mq5  296 kb
finder.mq4  296 kb
 

Подскажите, пожалуйста, как запросить данные из библиотеки?

Пытаюсь создать сов с интерфейсом для ввода данных

внешне выглядит так

код поля для ввода

//+------------------------------------------------------------------+
//| Создаёт поле ввода 1                                             |
//+------------------------------------------------------------------+
bool CProgram::CreateSpinEdit1(const int x_gap,const int y_gap,string text)
  {
//--- Сохраним указатель на окно
   m_spin_edit1.WindowPointer(m_window);
//--- Координаты
   int x=m_window.X()+x_gap;
   int y=m_window.Y()+y_gap;
//--- Значение
   double v=(m_spin_edit1.GetValue()==WRONG_VALUE) ? 0 : m_spin_edit1.GetValue();
//--- Установим свойства перед созданием
   m_spin_edit1.XSize(204);
   m_spin_edit1.YSize(24);
   m_spin_edit1.EditXSize(80);
   m_spin_edit1.MaxValue(10000);
   m_spin_edit1.MinValue(0);
   m_spin_edit1.StepValue(10*Point);
   m_spin_edit1.SetDigits(Digits);
   m_spin_edit1.SetValue(v);
   m_spin_edit1.ResetMode(true);
   m_spin_edit1.AreaColor(clrWhite);
//--- Создадим элемент управления
   if(!m_spin_edit1.CreateSpinEdit(m_chart_id,m_subwin,text,x,y))
      return(false);
//--- Добавим объект в общий массив групп объектов
   CWndContainer::AddToElementsArray(0,m_spin_edit1);
   return(true);
  }

как запросить?

m_spin_edit1.GetValue()
 
MakarFX:

как запросить?

наверное так:

имя_объекта. m_spin_edit1.GetValue()

 
Igor Makanu:

наверное так:

что значит имя объекта?

Мне надо

   double OrderBuy = m_spin_edit1.GetValue();

но в этом случае ошибка

'm_spin_edit1' - undeclared identifier    TestLibrary.mq4    56    20

 
MakarFX:

что значит имя объекта?

сомневаюсь, что сумею объяснить, если это у Вас вызывает вопрос

объект это ... ну пусть переменная типа class

в Вашем участке кода класс CProgram

где то в коде должно быть написано 

CProgram MyProgram;

и вызывать нужно будет

 double OrderBuy = MyProgram.m_spin_edit1.GetValue();