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

 
Константин:
@Artyom Trishkin

А по делу подсказать можешь?

Об индюках могу много разной информации дать вам.

Для начала: птица семейства фазановых. Диетическое мясо. Кота кормлю им. Говорит, вкусно очень...

 
Константин:

А по делу подсказать можешь?

А по делу, зачем вам скрипт запускать из индикатора?

 
Mihail Matkovskij:

А по делу, кто вам сказал такую глупость, чтобы из индикатора скрипты запускать? :)

И самое главное, зачем?...

хочу сделать кнопку на графике, чтобы можно было запустить скрипт нажатием кнопки, с параметром взятым из индикатора

 
Константин:

хочу сделать кнопку на графике, чтобы можно было запустить скрипт нажатием кнопки, с параметром взятым из индикатора

Пишете в коде индикатора код кнопки и интегрируете в код индикатора код скрипта в виде функции. Нажали кнопку - вызвали функцию, в которую передаёте параметр индикатора.

 
Константин:

хочу сделать кнопку на графике, чтобы можно было запустить скрипт нажатием кнопки, с параметром взятым из индикатора

Если проблема в создании самой кнопки то вот:

//+------------------------------------------------------------------+
//|                                                  ClickButton.mq5 |
//|                                      Copyright 2020, © Cyberdev. |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, © Cyberdev."
#property version   "1.00"
#property indicator_chart_window

#property indicator_plots 0

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
#include <ChartObjects\ChartObjectsTxtControls.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
CChartObjectButton button;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit() {
  button.Create(0, "pushBtn", 0, 30, 30, 80, 21);
  button.SetString(OBJPROP_TEXT, "Push my");
  button.SetInteger(OBJPROP_BGCOLOR, clrDodgerBlue);
  button.Color(clrWhite);
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[]) {
//---
//--- return value of prev_calculated for next call
  return(rates_total);
}
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam
) {
  if(id == CHARTEVENT_OBJECT_CLICK) {
    if(sparam == button.Name()) {
      Alert("Button \""+sparam+"\" clicked!"); // Вместо этого функция с кодом...
      button.State(0);
      ChartRedraw(0);
    }
  }
}
//+------------------------------------------------------------------+
 
Mihail Matkovskij:

Если проблема в создании самой кнопки то вот:

Спасибо, с кнопкой вроде разобрался, пока не разобрался как прикрепить скрипт. Скрипт по адресу C:\Users\...\MQL4\Scripts\Order.ex4

 
Еще вопрос. Я пользуюсь небольшим планшетом на Винде без мышки, кнопки на графике - удобное решение для меня. Возможно ли чтобы при нажатии кнопки на графике выполнялась команда клавиатуры Ctrl+F5, мне было бы удобней просматривать след. профиль.
 
Константин:

Спасибо, с кнопкой вроде разобрался, пока не разобрался как прикрепить скрипт. Скрипт по адресу C:\Users\...\MQL4\Scripts\Order.ex4

Назначить скрипту комбинацию клавиш для быстрого вызова и имитировать её с помощью WinAPI. Но в MQL программах я ничем подобным не занимался. Так что попробуйте погуглить "SendInput  User32.dll WinAPI".

 

Добрый день!

Мучаюсь тут над одним вопросом, подскажите пожалста, как его решить.

Суть, такая:  Рисуется линия по предыдущему максимуму свечи. Мне нужно чтобы линия смещалась в зависимости от предыдущего максимума.

void OnTick()
  {
//---
   double   o1 = iOpen(Symbol(),Period(),1);
   double   h1 = iHigh(Symbol(),Period(),1);
   double   l1 = iLow(Symbol(),Period(),1);
   double   c1 = iClose(Symbol(),Period(),1);
   double   c0 = iClose(Symbol(),Period(),0);
   double   rt = 0;
   double   rs1 = 0;


rt=MathAbs(c1-o1)/_Point; //размер тела свечи
rs1=MathAbs(h1-c1)/_Point;// размер верхней тени свечи


if (rs1>=rt) // условие для построения уровней (если верхняя тень предыдущей свечи, больше, или равна телу этой же всечи, то...   
{
double PRH=iHigh(Symbol(),_Period,1); // то это будет максимум
ObjectCreate(0,"HL",OBJ_HLINE,0,_Period,PRH); // и строим по этому максимуму, горизонтальную линию
Comment("ЦЕНА МАКС =======",PRH,"\n"); // комментарий пред. максимума
}
}
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
При создании пользовательского индикатора можно указать один из 18 типов графического построения (способа отображения на главном окне графика или в подокне графика), значения которых указаны в перечислении ENUM_DRAW_TYPE. В зависимости от стиля рисования, может потребоваться от одного до четырех буферов значений (отмеченных как INDICATOR_DATA...
 
Alexey Belyakov:

Добрый день!

Мучаюсь тут над одним вопросом, подскажите пожалста, как его решить.

Суть, такая:  Рисуется линия по предыдущему максимуму свечи. Мне нужно чтобы линия смещалась в зависимости от предыдущего максимума.

Есть 2 варианта
1. Удаляй объект перед созданием
2. Устанавливай цену после создания обьекта
Причина обращения: