Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1222

 
Aleksey Mavrin:

нужно )

Алексей, спасибо!

Добрый человек, расскажите, пожалуйста, неопытному:
какую роль в нашей жизни должна (может) играть папка MQL5/Sounds? (мой вопрос вверху страницы 1221)

 

Подскажите, пожалуйста, почему панель изменять свое положение на графике только по приходу нового тика? МТ5, Just2Trade билд от 5 июня

#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
CAppDialog Main;
CBmpButton nadpr, nadlos, nadot;
CBmpButton podpr, podlos, podot;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
   Main.Create(0,"Main",0,50,50,260,130);
   Main.Run();
      
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Main.Destroy(reason);
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam)  // параметр события типа string
{
  Main.OnEvent(id,lparam,dparam,sparam);
}
 
Nikita Chernyshov:

Подскажите, пожалуйста, почему панель изменять свое положение на графике только по приходу нового тика? МТ5, Just2Trade билд от 5 июня

Сравните свой код и пример панели из стандартной поставки [data folder]\MQL5\Experts\Examples\Controls\Controls.mq5

 

Добрый день, вопрос к знатокам:

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

Вопрос - как внутри функции написать проверку какой из двух массивов используется в данной конкретной итерации, для того чтобы применить + либо - в расчетах ??? 

Если коряво сформулировал, переспросите, плиз, поясню с радостью. Набросок конструкции прилагаю.

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1, ind_time_2;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_1    = zigbuf[i];
      ind_time_1 = i;
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_2    = zigbuf[i];
      ind_time_2 = i;

   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться 
+ или - , < или >. 
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   //Вопрос не сложный - как это написать???   
} 

Тоесть у параметра zigbuf[] будет всего два варианта подставляться - либо  ZigzagPeakBuffer[] либо ZigzagBottomBuffer[]. Как проверить изнутри функции, какой из вариантов подставлен в данный момент ???


 

Пока придумал определять какой из массивов задействован - через сравнение найденного значения, в каком совпадает, тот и наш. Но ведь наверняка существует более красивое и короткое решение.

Знающие - подскажите плиз !!!

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1 = 0;
   int ind_time_2 = 0;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            price_1    = zigbuf[i];
            ind_time_1 = i;
            break;
      }
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            {
               if(zigbuf[i] == ZigzagPeakBuffer[i] && zigbuf[i] > price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
               if(zigbuf[i] == ZigzagBottomBuffer[i] && zigbuf[i] < price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
            }
      }
   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться + или - , < или >.
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   // Вопрос не сложный - как это написать???   
}
 

Доброго всем))


Вопрос: OBJ_FIBO при построении не дает всплывающее окно на графике (OBJPROP_TOOLTIP). Организовано все графически через OBJPOP_TXT/ Как можно и возможно ли вообще через tooltip сделать всплывающее окно в ФИБО? 

Цель : при наведении мышки на уровень фибо, что бы всплывало окно как у HLINE (как пример).

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
kopeyka2:

Доброго всем))


Вопрос: OBJ_FIBO при построении не дает всплывающее окно на графике (OBJPROP_TOOLTIP). Организовано все графически через OBJPOP_TXT/ Как можно и возможно ли вообще через tooltip сделать всплывающее окно в ФИБО? 

Цель : при наведении мышки на уровень фибо, что бы всплывало окно как у HLINE (как пример).

Используйте свойство OBJPROP_TEXT

ObjectSetString(chart_ID,name,OBJPROP_TEXT,"Это всплывающая подсказка");
 
как отказаться от demo продуктов которыми не пользуешься? постоянно приходят сообщения от system "Новая версия ........"
 
Sergey Voytsekhovsky:

Пока придумал определять какой из массивов задействован - через сравнение найденного значения, в каком совпадает, тот и наш. Но ведь наверняка существует более красивое и короткое решение.

Знающие - подскажите плиз !!!

Зачем Вы сами себе придумываете проблемы? Их итак будет достаточно.

Просто сделайте две отдельные функции.

 
Подскажите как из set файла получить массив MqlParam  ?
Причина обращения: