Preguntas de un "tonto" - página 138

 
joo:
Si no es un script, ¿toda la lógica debería ser ejecutada/llamada en/desde OnChartEvent()?

Puedes hacerlo en cualquier lugar. También hay un temporizador.

Si necesitas una lógica cíclica, puedes ponerla en un temporizador.

Si la lógica se basa en eventos, entonces en chartevent.

 
sergeev:

Puedes hacerlo en cualquier lugar. También hay un temporizador.

Si quieres una lógica cíclica, puedes ponerla en un temporizador.

Si la lógica se basa en eventos, entonces en chartevent.

Esta es la lógica:

1. Inicio del programa (lanzado en chartevent).

2. desde el cuadro de diálogo (listado de archivos) obtenga el nombre del archivo.

3. Abrimos el archivo por su nombre y recibimos y procesamos los datos.

4. Salió del programa.

Eso es todo. Cómo se puede organizar este caso, por favor, muéstrelo al menos esquemáticamente.

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
joo:

Qué lógica:

1. Inicie el programa (lanzado en el gráfico).

OnInit. escaneó el disco, encontró los archivos, creó una ventana con una lista (Controles).

2. desde el cuadro de diálogo (listado de archivos) obtuvo el nombre del archivo.

OnChartEvent. Procesar los clics del ratón; sabemos en qué línea de la lista se ha hecho clic, respectivamente, conocemos el archivo.

3. Abrir archivo por nombre de archivo, obtener datos, procesar.

OnChartEvent. Procesar los clics del ratón en el botón "Ir". Recibir el nombre de un archivo de la lista. Más allá es puramente su procesamiento de datos de este archivo.

4. Salir del programa.

ExpertRemove()

 
sergeev:
...

Bueno, eso aclara las cosas ahora, gracias.

Pero, sólo para probarlo, hice un Asesor Experto. Se imprime incluso cuando no pasa nada en el gráfico, y no debería:

#include <Controls\ControlsDialog.mqh>
CControlsDialog ExtDialog;

int OnInit()
{
//--- create application dialog
  if(!ExtDialog.Create(0,"Controls",0,20,20,360,324))
    return(-1);
//--- run application
  ExtDialog.Run();
  return(0);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- destroy dialog
  ExtDialog.Destroy();
}
//+------------------------------------------------------------------+
//| Expert chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // event ID  
                  const long& lparam,   // event parameter of the long type
                  const double& dparam, // event parameter of the double type
                  const string& sparam) // event parameter of the string type
{
  ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  Print("dsfsdfsdfsdf");
}
//+------------------------------------------------------------------+
 
Yedelkin:

Bueno, cualquier método de la clase es simplemente código. Intenta analizar este código aquí:

Gracias. Lo tengo funcionando.
 
joo:

Bueno, eso aclara las cosas ahora, gracias.

Pero, sólo para probarlo, hice un experto. Se imprime incluso cuando no pasa nada en el gráfico, y no debería:

No, se imprime porque estás moviendo el ratón sobre el gráfico.

 
sergeev:

No, hay una impresión porque estás moviendo el ratón sobre el gráfico.

Efectivamente, he pecado: he pasado el ratón por encima del gráfico, por eso se imprime.
 

Buenas tardes.

Pregunta por curiosidad. Aquí está el código:

class cl2;

class cl1
{
public:
        int q;
        void fn2(cl2 &t){t.i = 87;}
};


class cl2
{
public:
        int i;
        void fn(cl1 &w){w.q = 9;}
};

La idea es la siguiente:

  • Hay dos clases (1 y 2).
  • La clase nº 1 está hurgando en la clase nº 2
  • La clase 2 está hurgando en la clase 1.

Compila en MQL sin errores, no compila en VS (dice que no puedo usar clases no definidas). ¿Por qué?

 
220Volt:

Compila en MQL sin errores, no compila en VS (dice que no puede usar una clase indefinida). ¿Por qué?

¡Patamushta mql5 es mejor!

;)

 
MetaDriver:

¡Porque mql5 es mejor!

;)

Sí, tal vez debería poner un signo más ))
Razón de la queja: