Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1379

 
User_mt5 #:

Per favore, spiega...

La Bibbia dice: La variabile _Period memorizza il valore del timeframe del grafico corrente.

I valori attuali di _Period per la TF sono:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Spiegare per favore, i numeri 60, 120 ecc. non sono... più in voga?

Se lo sai, almeno dammi un indizio su quale sia il trucco qui?

E ora ho paura di chiedere ... dove altro nel nostro misterioso MQL sono tali trucchi? :(

ecco i periodihttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

invece di numeri - scrivere i periodi

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Периоды графиков - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
User_mt5 #:

Per favore, spiega...

La Bibbia dice: La variabile _Period memorizza il valore del timeframe del grafico corrente.

I valori attuali di _Period per la TF sono:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Spiegare per favore, i numeri 60, 120 ecc. non sono... più in voga?

Se lo sai, almeno dammi un indizio su quale sia il trucco qui?

E ora ho paura di chiedere ... dove altro nel nostro misterioso MQL sono tali trucchi? :(

Dovreste leggere l'intera Guida:

Contenuto della variabile_Period, in cui viene memorizzato il valore del timeframe del grafico corrente. Il valore può essere uno dei valoridell'enumerazioneENUM_TIMEFRAMES. La parola chiave qui è "... enumerazioneENUM_TIMEFRAMES".

E si DEVE usare ENUMENTI dell'enumerazione. Per esempio PERIOD_H1, PERIOD_M15 ... E non c'è bisogno di sapere quale valore interno ha un elemento dell'enumerazione.

Документация по MQL5: Предопределенные переменные / _Period
Документация по MQL5: Предопределенные переменные / _Period
  • www.mql5.com
_Period - Предопределенные переменные - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
User_mt5 #:

Per favore, spiega...

La Bibbia dice: La variabile _Period memorizza il valore del timeframe del grafico corrente.

I valori attuali di _Period per la TF sono:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Spiegare per favore, i numeri 60, 120 ecc. non sono... più in voga?

Se lo sai, almeno dammi un indizio su quale sia il trucco qui?

E ora ho paura di chiedere ... dove altro nel nostro misterioso MQL sono tali trucchi? :(

Come li hai avuti?

 
SanAlex #:

ci sono dei periodi quihttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

invece di numeri - scrivere i periodi

Grazie per il consiglio.

Se la caratteristica è nota, non è difficile tenerne conto. Io uso PeriodSeconds();

Il problema è che non si sa in anticipo da dove vengano queste... caratteristiche.

 
Vladimir Karputov #:

La guida dovrebbe essere letta per intero:

Contenuto della variabile_Period, che memorizza il valore del timeframe del grafico corrente. Il valore può essere uno dei valoridell'enumerazioneENUM_TIMEFRAMES. La chiave qui è "... enumerazioneENUM_TIMEFRAMES".

E si DEVE usare ENUMENTI dell'enumerazione. Per esempio PERIOD_H1, PERIOD_M15 ... E non c'è bisogno di sapere quale valore interno ha un elemento dell'enumerazione.

Grazie per la vostra partecipazione.

Ma il problema è che non riesco nemmeno a leggere:(

E in generale, non mi aspetto che mi si dica cosa devo fare. Speravo di ottenere una risposta alla mia stupida domanda.

 
Сергей Таболин #:

Come li hai avuti?

Print("_Period = ", _Period );
 
User_mt5 #:

Ecco fatto. Si ottiene il valore dell'enumerazione.

Utente_mt5 #:

...

Se la caratteristica è nota, non è difficile tenerne conto. Io uso PeriodSeconds();

...

Se lo usasse, la domanda non si porrebbe.

 
User_mt5 #:

Per favore, spiega...

La Bibbia dice: La variabile _Period memorizza il valore del timeframe del grafico corrente.

I valori effettivi di _Period per la TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Spiegare per favore, i numeri 60, 120 ecc. non sono... più in voga?

Se lo sai, almeno dammi un indizio su quale sia il trucco qui?

E ora ho paura di chiedere ... dove altro nel nostro misterioso MQL sono tali trucchi? :(

Fonte:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Il significato nascosto dei timeframe in MQL5

Serhii Shevchuk, 2017.02.27 01:53

Sì, ma è lento. Ho abbozzato un piccolo script per il confronto:

#property script_show_inputs

input long              InpCycles=1000000000;

ENUM_TIMEFRAMES TF_list[32]={
PERIOD_MN1, PERIOD_W1,  PERIOD_D1,  PERIOD_H12,
PERIOD_H8,  PERIOD_H6,  PERIOD_H4,  PERIOD_H3,  
PERIOD_H2,  PERIOD_H1,  PERIOD_M30, PERIOD_M20,
PERIOD_M15, PERIOD_M12, PERIOD_M10, PERIOD_M6,  
PERIOD_M5,  PERIOD_M4,  PERIOD_M3,  PERIOD_M2,  
PERIOD_M1,  PERIOD_MN1, PERIOD_W1,  PERIOD_D1,
PERIOD_M5,  PERIOD_M4,  PERIOD_M3,  PERIOD_M2,
PERIOD_H2,  PERIOD_H1,  PERIOD_M30, PERIOD_M20
};

int PeriodMinutes(ENUM_TIMEFRAMES tf)
{
      uint t = uint(tf);
      uint f = 0xc000&t;
      uint min = 0x00FF&t;
      if(f==0x4000) min*= 60;
      else if(f==0x8000) min*= 10080;
      else if(f==0xc000)  min*= 43200;
      return(int(min));  
}

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   ulong tmp = 0;
   //
   uint idx = 0;
   ulong t0 = GetMicrosecondCount();
   for(long i=0;i<InpCycles;i++)
      tmp+= PeriodMinutes(TF_list[0x1f&(idx++)]);  
   ulong t1 = GetMicrosecondCount();
   Print("1) tmp = ",tmp,"... dT = ",t1-t0);
//---
   tmp = 0;
   idx = 0;
   t0 = GetMicrosecondCount();
   for(long i=0;i<InpCycles;i++)
      tmp+= PeriodSeconds(TF_list[0x1f&(idx++)])/60;
   t1 = GetMicrosecondCount();
   Print("2) tmp = ",tmp,"... dT = ",t1-t0);
//---
  }    
//+------------------------------------------------------------------+
Come potete vedere, è circa la metà più lento di if-units:



и

 
Сергей Таболин #:

Ecco fatto. State ottenendo il valore dell'enumerazione.

Se l 'avessi fatto, la domanda non sarebbe sorta.

Non sono d'accordo.

Immagino che non sia una scusa e nemmeno una spiegazione.

La logica generale delle variabili predefinite è che vi si può accedere direttamente, e che danno i loro valori.

È così che ci si può riferire, per esempio, a _Point, _Digits, ecc. E questo va bene.

Intuitivamente, ci si aspetta che tutte le altre variabili predefinite abbiano proprietà simili.

Ma nel caso di _Period, non è così.

--

Grazie ancora a tutti voi. Consideriamo la questione risolta.
Buon fine settimana a tutti)!

 
Fast235 #:

A cosa serve l'encryptor incorporato in mql? Non riesco a trovare un uso ragionevole per esso

non ha senso criptare da se stesso, e solo i terminali delle variabili globali sono visibili a un secondo utente

Salva il suo stato su disco, scambia dati su internet.