Come ottenere la lunghezza di enum e item in MQL4/MQL5?

 

Come ottenere la lunghezza di enum e item in MQL4/MQL5?

Per esempio, c'è una definizione enum:

enum ENUM_FRUIT {APPLE, BANANA, GRAPE};

Poi, voglio usarlo in un ciclo:

for (int i = 0; i < length_of_enum; i++) {
  Print(EnumToString(get_enum_item(i)));
} 

Come implementare questo requisito?

Ho cercato nel forum e nella base di codice, ma non ho avuto risposta.

:-(

 
Xiangdong Guo:

Come ottenere la lunghezza di enum e item in MQL4/MQL5?

Ho cercato nel forum e nella base di codice, ma non ho avuto risposta.

:-(

Cosa intendi con "lunghezza di enum"?

Puoi fornire un esempio di utilizzo per capire la tua domanda - probabilmente enum non è quello che stai cercando?

 
Carl Schreiber:

Cosa intendi con "lunghezza di enum"?

Puoi fornire un esempio di utilizzo per capire la tua domanda - probabilmente enum non è quello che stai cercando?

Ho aggiornato la mia domanda.
 
int ArrayCopyRates(double& dest_array[], string symbol=NULL, int timeframe=0)
Copia i tassi nell'array bidimensionale dall'array RateInfo del grafico, dove la seconda dimensione ha 6 elementi:
0 - tempo,
1 - aperto,
2 - basso,
3 - alto,
4 - chiusura,
5 - volume.
Nota: di solito array recuperato usato per passare grandi blocchi di dati alle funzioni della DLL.
Parametri
dest_array[] - riferimento all'array numerico bidimensionale di destinazione.
symbol - nome del simbolo, di default viene usato il nome del simbolo del grafico corrente.
timeframe - Time frame, di default viene usato il time frame del grafico corrente. Può essere uno qualsiasi dei valori dell'enumerazione Time frame.
Esempio
doppio array1[][6];
ArrayCopyRates(array1, "EURUSD", PERIOD_H1);

Print("Current bar ",TimeToStr(array1[0][0]), "Open", array1[0][1]);

Da MQL4, potrebbe essere utile

 
Maryann T Emmanuel:
int ArrayCopyRates(double& dest_array[], string symbol=NULL, int timeframe=0)
Copia i tassi nell'array bidimensionale dall'array RateInfo del grafico, dove la seconda dimensione ha 6 elementi:
0 - tempo,
1 - aperto,
2 - basso,
3 - alto,
4 - chiusura,
5 - volume.
Nota: di solito array recuperato usato per passare grandi blocchi di dati alle funzioni della DLL.
Parametri
dest_array[] - riferimento all'array numerico bidimensionale di destinazione.
symbol - nome del simbolo, di default viene usato il nome del simbolo del grafico corrente.
timeframe - Time frame, di default viene usato il time frame del grafico corrente. Può essere uno qualsiasi dei valori dell'enumerazione Time frame.
Esempio
doppio array1[][6];
ArrayCopyRates(array1, "EURUSD", PERIOD_H1);

Print("Current bar ",TimeToStr(array1[0][0]), "Open", array1[0][1]);

Da MQL4, potrebbe essere utile

Grazie, Maryann.

Ma non può risolvere la mia domanda.

 
Xiangdong Guo:

Grazie, Maryann.

Ma non può risolvere la mia domanda.

Cosa intendi per "lunghezza di enum"?
 
Xiangdong Guo:

Come ottenere la lunghezza di enum e item in MQL4/MQL5?

Avete un enum dinamico? Se sì, per favore mostra come lo cambi. Se no - perché non puoi impostare length_of_enum = 3 nel tuo codice - questa è una variabile statica immutabile
 
Xiangdong Guo:

Come ottenere la lunghezza di enum e item in MQL4/MQL5?

Per esempio, c'è una definizione enum:

Poi, voglio usarlo in un ciclo:

Come implementare questo requisito?

Ho cercato nel forum e nella base di codice, ma non ho avuto risposta.

:-(

Se vuoi fare un ciclo attraverso una lista usa un array!

Un enum è una specie di variazione di #define:

#define  APPLE 0   
#define  BANANA 1
#define GRAPE  2 
....

Enum è molto utile ad esempio per le variabili di input!

 
  enum Fruit {Apple,Banana,Heineken};
  int err=0;
  int scan=0;
  string item_name;

  while(err==0)
   {
   item_name=EnumToString(Fruit(scan));
   err=GetLastError();
   if(err==0) Alert(item_name);
   scan++;
   }
Questo è il più vicino che ho ottenuto se la lunghezza è sconosciuta
 
Lorentzos Roussos:
Questo è il più vicino che ho ottenuto se la lunghezza è sconosciuta
La lunghezza non è mai sconosciuta e questo argomento è solo il risultato di una cattiva progettazione.
 
Alain Verleyen:
La lunghezza non è mai sconosciuta e questo argomento è solo il risultato di un cattivo design.
Cattiva progettazione di ciò che
Motivazione: