Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1309

 
Grazie mille a tutti quelli che hanno risposto!!! Proverò le vostre opzioni!
 
Alexey Viktorov:

Se fate questa enumerazione

potresti provare a scriverlo in questo modo

Avete, come sempre, offerto il modo migliore per risolvere il mio problema!

 
Alexey Viktorov:

Perché convertire in int? Perché in mql5, a partire da H1, il valore di enumerazione non è uguale al numero di minuti. E secondo me, al contrario, introdurrà molta confusione.

Anche il tuo metodo sembra funzionare, grazie!

 
Alexey Viktorov:

Quindi? Hanno qualcosa di diverso nell'enumerazione ENUM_TIMEFRAMES? O c'è la paura di esaurire la memoria? Non so come fare con questo...


ps; Ah come sono lento a scrivere...)))) Mentre stavo scrivendo una riga, Kira27 ha digitato così tanto......... E qualcosa che sospetto sarà usato in mql4.

IN MQL5 )))

 
Ecco uno script da provare, funziona)))
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   enum frame1 // перечисление именованных констант
     {
      m1  = (int)PERIOD_M1,
      m5  = (int)PERIOD_M5,
      m15 = (int)PERIOD_M15,
      m30 = (int)PERIOD_M30,
      h1  = (int)PERIOD_H1,
      h4  = (int)PERIOD_H4,
      d1  = (int)PERIOD_D1,
      W1  = (int)PERIOD_W1,
      MN1 = (int)PERIOD_MN1
     };
   double T = iHigh(NULL,(ENUM_TIMEFRAMES) d1,0);

   Alert("Frame= ", (ENUM_TIMEFRAMES)  d1," iHigh= ",T);

  }

il risultato è il seguente Anche se il valore int del giorno in minuti è 1440. Ma funziona, hih è corretto.

 
Alexey Viktorov:

Quindi? Hanno qualcosa di diverso nell'enumerazione ENUM_TIMEFRAMES? O c'è la paura di esaurire la memoria? Non so come fare con questo...


ps; Ah come sono lento a scrivere...)))) Mentre stavo scrivendo una sola riga Kira27 ha digitato wow......... E qualcosa che sospetto sarà usato in mql4.

Il tuo modo dà lo stesso risultato)))

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   enum frame1 // перечисление именованных констант
     {
      m1  = PERIOD_M1,
      m5  = PERIOD_M5,
      m15 = PERIOD_M15,
      m30 = PERIOD_M30,
      h1  = PERIOD_H1,
      h4  = PERIOD_H4,
      d1  = PERIOD_D1,
      W1  = PERIOD_W1,
      MN1 = PERIOD_MN1
     };
 
   double T = iHigh(NULL,(ENUM_TIMEFRAMES) d1,0);
   
   Alert("Frame= ", (ENUM_TIMEFRAMES)  d1," iHigh= ",T);
  }

 
Kira27:

Il tuo modo dà lo stesso risultato)))

Non ne dubitavo :-)))

 
Ciao a tutti!

Per favore aiutatemi a sostituire la funzione scritta in MQL4 con MQL5.

double iHig(datetime ds, datetime de)
  {
   //Alert(iBarShift(Symbol(),PERIOD_CURRENT,ds),"  ",ds);
   return
      High[
         iHighest(Symbol(),PERIOD_CURRENT,MODE_HIGH,
                  iBarShift(Symbol(),PERIOD_CURRENT,ds)-iBarShift(Symbol(),PERIOD_CURRENT,de)+1,
                  iBarShift(Symbol(),PERIOD_CURRENT,de)
                 )
          ];
  }

Il problema è che in MQL5 non ci sono variabili predefinite High, e non so come o con cosa sostituire questa variabile.

 
Sprut 185:
Ciao a tutti!

Per favore aiutatemi a sostituire la funzione scritta in MQL4 con MQL5.

Il problema è che in MQL5 non ci sono variabili predefinite High, e non so come o con cosa sostituire questa variabile.

C'è una serie temporale in MQL5

iHigh,

iLow,

ecc.

Sezione Aiuto: Accesso alle serie temporali e ai dati degli indicatori/
 
Kira27:

Ci sono serie temporali in MQL5

iHigh,

iLow,

ecc.

Sezione Aiuto: Accesso alle serie temporali e ai dati degli indicatori/.
Grazie per il suggerimento, non l'ho trovato su first........ Si scopre che questa variabile è solo sotto un nome diverso.