Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 793

 
Vladimir Karputov:

п. 5. :)


  • No necesitas alertas - sólo haz Print().
  • Hay que cribar los eventos por:
    • lparam
    • dparam
    • y sparam

Puedo tamizarlo. Pero mi pregunta se refiere a otra cosa.
Estoy tratando de entender (mi cabeza no es sólo para llevar un sombrero, ¿verdad?) si esta función funciona correctamente. ¿Se supone que debe ser así, o hay algo que no funciona?

 
User_mt5:

Intentando obtener una llamada a OnChartEvent al hacer clic con el ratón en un objeto.

...


Esto es lo que se pasa para"CHARTEVENT_OBJECT_CLICK"

Evento

valor del parámetro id

Valor del parámetro lparam

Valor del parámetro dparam

Valor del parámetro sparam

El evento de un clic del ratón en un objeto gráfico

CHARTEVENT_OBJECT_CLICK

Coordenada X

Coordenada Y

Nombre del objeto gráfico donde se ha producido el evento


Es decir, necesitas coger id==CHARTEVENT_OBJECT_CLICK y sparam==nombre de tu objeto.
 
Vladimir Karputov:

Esto es lo que se pasa para"CHARTEVENT_OBJECT_CLICK"

Evento

Valor del parámetro id

Valor del parámetro lparam

Valor del parámetro dparam

Valor del parámetro sparam

El evento de un clic del ratón en un objeto gráfico

CHARTEVENT_OBJECT_CLICK

Coordenada X

Coordenada Y

Nombre del objeto gráfico donde se ha producido el evento


Es decir, necesitas coger id==CHARTEVENT_OBJECT_CLICK y sparam==nombre de tu objeto.

Eso es lo que yo también pensé al principio. Pero la cadena da el nombre del objeto sobre el que se ha hecho clic. Así que parece ser un parámetro de salida.
¿O me equivoco?

 
User_mt5:

Eso es lo que yo también pensé al principio. Pero la cadena da el nombre del objeto sobre el que se ha hecho clic. Así que, aparentemente, es un parámetro de salida después de todo.
¿O me equivoco?


¿Necesita captar un clic en un objeto? Más arriba te he dado una pista de cómo hacerlo.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Preguntas de los principiantes MQL5 MT5 MetaTrader 5

Vladimir Karputov, 2017.11.07 13:38


Esto es lo que se pasa para"CHARTEVENT_OBJECT_CLICK"

Evento

Valor del parámetro id

Valor del parámetro lparam

Valor del parámetro dparam

Valor del parámetro sparam

El evento de un clic del ratón en un objeto gráfico

CHARTEVENT_OBJECT_CLICK

Coordenada X

Coordenada Y

Nombre del objeto gráfico donde se ha producido el evento


Es decir, necesitas coger id==CHARTEVENT_OBJECT_CLICK y sparam==nombre de tu objeto.

 

Sí, sí, creo que lo tengo.
La función en sí es llamada por cualquier evento (tanto del ratón como del teclado), y es necesario filtrar el evento correcto dentro.
Gracias.

 
User_mt5:

Sí, sí, creo que lo tengo.
La función es llamada en cualquier evento (tanto de ratón como de teclado), y dentro de ella hay que filtrar el evento correcto.
Gracias.


Hay varios eventos(tipos de eventos): clic, crear, cambiar propiedades... Así que primero hay que cribar los eventos por ID, y luego por sparam.


 
Vladimir Karputov:

Hay varios eventos(tipos de eventos): clic, crear, cambiar propiedades... Así que primero hay que cribar los eventos por ID, y luego por sparam.


Sí, gracias. Por alguna razón, pensé, que es posible tamizar a un nivel de llamada de función. Y quería tamizar todo por el id, así que puse el id en la llamada a la función.
"Bueno, loco, ¡qué se puede aguantar!"))
Y en el interior, por supuesto, es fácil. Gracias de nuevo.

 

No quiero crear un nuevo tema para una pequeña pregunta, quizás a los recién llegados también les sea útil saberlo, como a mí.

¿A qué hora se pueden presentar nuevas solicitudes de trabajo autónomo?

Si ya usé los 10 ayer.

 

¿Alguien puede decirme qué camino tomar? Excel tiene nuevas funciones "Funciones de previsión", etc. - por ejemplo, "PREPARTS.ETS", "PREPARTS.ETS.DOVINTERVAL".

¿Hay algo similar en MQL5? Es decir, matriz de datos de entrada - matriz de predicción de salida.

Para poder construir una nueva línea como en la captura de pantalla, línea blanca en el indicador inferior.

 

Amigos, ayuden a un tonto. La idea es la siguiente: Cuando la variable "Ind" alcanza un nivel determinado, pasamos a esperar que el "Valor" cambie de dirección mientras esperamos que el "Ind" deje de estar controlado.


   if(Ind[0]<=-0.7)
     {
      while(Value[3]>Value[2]<Value[1])
        {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0)
           {
            Recount=true;
            return;
           }
        }
      if(BuyPosOpen) BUY_Open=true;
     }


¿Cuál es la forma correcta de hacerlo?