Domande da un "manichino" - pagina 138

 
joo:
Se non è uno script, allora tutta la logica dovrebbe essere eseguita/chiamata in/da OnChartEvent()?

Puoi farlo ovunque, c'è anche un timer.

Se avete bisogno di una logica ciclica, potete metterla in un timer.

Se la logica è guidata da eventi, allora in chartevent.

 
sergeev:

Puoi farlo ovunque, c'è anche un timer.

Se volete una logica ciclica, potete metterla in un timer.

Se la logica è guidata da eventi, allora in chartevent.

Questa è la logica:

1. Inizio del programma (lanciato su chartevent).

2. dalla finestra di dialogo (elenco dei file) ottenere il nome del file.

3. Apriamo il file per nome e riceviamo ed elaboriamo i dati.

4. Uscito dal programma.

Non c'è altro da dire. Come può essere organizzato questo caso, per favore mostratelo almeno schematicamente.

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

Che logica:

1. Avviare il programma (gettato sul grafico).

OnInit. scannerizza il disco, trova i file, crea una finestra con una lista (Controlli).

2. dalla finestra di dialogo (elenco dei file) ha ottenuto il nome del file.

OnChartEvent. Elaborare i clic del mouse; sappiamo quale riga della lista è stata cliccata, rispettivamente, conosciamo il file.

3. Aperto il file per nome, ottenuto i dati, elaborato.

OnChartEvent. Processo di clic del mouse sul pulsante "Go". Ricevuto il nome di un file dalla lista. Ulteriore è puramente il tuo trattamento dei dati di questo file.

4. Uscire dal programma.

EspertoRimuovi()

 
sergeev:
...

Bene, questo chiarisce le cose ora, grazie.

Ma, solo per provare, ho creato un Expert Advisor. Stampa anche quando non succede niente sul grafico - e non dovrebbe:

#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:

Beh, qualsiasi metodo di classe è solo codice semplice. Prova ad analizzare questo codice qui:

Grazie! L'ho fatto funzionare.
 
joo:

Bene, questo chiarisce le cose ora, grazie.

Ma, solo per provare, ho creato un Expert Advisor. Stampa anche quando non succede niente sul grafico - e non dovrebbe:

No, stampa perché stai muovendo il mouse sul grafico.

 
sergeev:

No, c'è una stampa in corso perché stai muovendo il mouse sul grafico.

In effetti, ho peccato - ho spostato il mouse sul grafico, ecco perché si stampa.
 

Buon pomeriggio.

Domanda per curiosità. Ecco il codice:

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;}
};

L'idea è la seguente:

  • Ci sono due classi (#1 e #2).
  • La classe #1 sta frugando nella classe #2
  • La classe 2 sta frugando nella classe 1.

Si compila in MQL senza errori, non si compila in VS (dice che non posso usare classi non definite). Perché?

 
220Volt:

Si compila in MQL senza errori, non si compila in VS (dice che non si possono usare classi non definite). Perché?

Patamushta mql5 è meglio!

;)

 
MetaDriver:

Perché mql5 è meglio!

;)

Sì, forse dovrei dare un segno più ))