Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1201

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

¿Puede darme algunos consejos comerciales?

Puedo darte mucha información sobre los pavos.

Para empezar, es un pájaro faisán. Es carne dietética. Se lo doy de comer a mi gato. Dice que es delicioso...

 
Константин:

¿Puede darme una pista sobre el punto?

Y al grano, ¿por qué querrías ejecutar el script desde un indicador?

 
Mihail Matkovskij:

En cuanto al punto, ¿quién te dijo que fueras tan estúpido como para ejecutar scripts desde un indicador? :)

Y lo más importante, ¿por qué?

Quiero hacer un botón en un gráfico para poder ejecutar un script pulsando un botón con un parámetro tomado del indicador

 
Константин:

Quiero hacer un botón en el gráfico para poder ejecutar el script pulsando el botón, con el parámetro tomado del indicador

Se escribe el código del botón en el código del indicador y se integra el código del script como una función en el código del indicador. Pulsar el botón - llamar a la función, en la que se pasa el parámetro del indicador.

 
Константин:

Quiero hacer un botón en el gráfico, para poder ejecutar el script pulsando el botón, con el parámetro tomado del indicador

Si el problema está en la creación del propio botón, aquí está:

//+------------------------------------------------------------------+
//|                                                  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:

Si el problema está en la creación del propio botón, aquí está:

Gracias, creo que tengo el botón resuelto, pero no he descubierto cómo adjuntar el script. El script se encuentra en C:\NUsers...\NMQL4\NScripts\NOrder.ex4

 
Otra pregunta. Utilizo una pequeña tableta en Windows sin ratón, los botones en el gráfico es una solución conveniente para mí. Es posible que el comando de teclado Ctrl+F5 se ejecute al pulsar el botón del gráfico, me resultaría más cómodo para ver el siguiente perfil.
 
Константин:

Gracias, creo que he descubierto el botón, pero no he descubierto cómo adjuntar el script. El script se encuentra en C:\NUsers...\NMQL4\NScripts\NOrder.ex4

Asigna un acceso directo al script y simúlalo mediante WinAPI. Pero no he hecho nada parecido en los programasMQL. Así que intenta buscar en Google"SendInput User32.dll WinAPI".

 

¡Buenas tardes!

Tengo una duda, ¿podría decirme cómo resolverla?

La idea es la siguiente: trazo una línea en el máximo anterior de la vela. Quiero que la línea se desplace en función del máximo anterior.

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:

¡Buenas tardes!

Tengo una duda, ¿podría decirme cómo resolverla?

La idea es la siguiente: trazo una línea en el máximo anterior de la vela. Quiero que la línea se desplace en función del máximo anterior.

Hay dos opciones
1. Hay que borrar el objeto antes de dibujarlo.
2. Fijar el precio después de crear un objeto