Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1379

 
User_mt5 #:

Bitte erklären Sie...

Die Bibel sagt: Die Variable _Period speichert den Zeitrahmenwert des aktuellen Diagramms.

Die tatsächlichen Werte von _Period für die TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Erklären Sie bitte, dass die Zahlen 60, 120 usw... nicht mehr in Mode sind?

Wenn Sie es wissen, können Sie mir wenigstens einen Tipp geben, was der Trick dabei ist?

Und jetzt habe ich Angst zu fragen ... wo sonst in unserem geheimnisvollen MQL gibt es solche Tricks? :(

Hier sind die Zeiträumehttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

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

anstelle von Zahlen - die Punkte schreiben

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

Bitte erklären Sie...

Die Bibel sagt: Die Variable _Period speichert den Zeitrahmenwert des aktuellen Diagramms.

Die tatsächlichen Werte von _Period für die TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Erklären Sie bitte, dass die Zahlen 60, 120 usw... nicht mehr in Mode sind?

Wenn Sie es wissen, können Sie mir wenigstens einen Tipp geben, was der Trick dabei ist?

Und jetzt habe ich Angst zu fragen ... wo sonst in unserem geheimnisvollen MQL gibt es solche Tricks? :(

Sie sollten die gesamte Hilfe lesen:

Inhalt der Variablen_Period, in der der Zeitrahmenwert des aktuellen Charts gespeichert wird. Der Wert kann einer der Werteder AufzählungENUM_TIMEFRAMESsein. Das Schlüsselwort ist hier "... enumerationENUM_TIMEFRAMES".

Und Sie MÜSSEN ENUMENTE der Aufzählung verwenden. Zum Beispiel PERIOD_H1, PERIOD_M15 ... Und Sie brauchen nicht zu wissen, welchen internen Wert ein Aufzählungselement hat.

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

Bitte erklären Sie...

Die Bibel sagt: Die Variable _Period speichert den Zeitrahmenwert des aktuellen Diagramms.

Die tatsächlichen Werte von _Period für die TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Erklären Sie bitte, dass die Zahlen 60, 120 usw... nicht mehr in Mode sind?

Wenn Sie es wissen, können Sie mir wenigstens einen Tipp geben, was der Trick dabei ist?

Und jetzt habe ich Angst zu fragen ... wo sonst in unserem geheimnisvollen MQL gibt es solche Tricks? :(

Wie haben Sie sie bekommen?

 
SanAlex #:

es gibt hier Zeiträumehttps://www.mql5.com/ru/docs/constants/chartconstants/enum_timeframes

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

anstelle von Zahlen - die Punkte schreiben

Danke für den Rat.

Wenn das Merkmal bekannt ist, ist es nicht schwer, es zu berücksichtigen. Ich verwende PeriodSeconds();

Das Problem ist, dass man im Voraus nicht weiß, woher diese... Funktionen kommen.

 
Vladimir Karputov #:

Die Hilfe sollte vollständig gelesen werden:

Inhalt der Variablen_Period, die den Zeitrahmenwert des aktuellen Diagramms speichert. Der Wert kann einer derAufzählungswerte vonENUM_TIMEFRAMESsein. Der Schlüssel ist hier "...ENUM_TIMEFRAMES enumeration".

Und Sie MÜSSEN ENUMENTE der Aufzählung verwenden. Zum Beispiel PERIOD_H1, PERIOD_M15 ... Und Sie brauchen nicht zu wissen, welchen internen Wert ein Aufzählungselement hat.

Wir danken Ihnen für Ihre Teilnahme.

Aber das Problem ist, dass ich nicht einmal lesen kann:(

Und im Allgemeinen erwarte ich nicht, dass man mir sagt, was ich zu tun habe. Ich hatte gehofft, eine Antwort auf meine dumme Frage zu bekommen.

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

Wie haben Sie sie bekommen?

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

Das war's. Sie erhalten den Wert der Aufzählung.

Benutzer_mt5 #:

...

Wenn das Merkmal bekannt ist, ist es nicht schwer, es zu berücksichtigen. Ich verwende PeriodSeconds();

...

Wenn Sie es benutzen würden, würde sich die Frage nicht stellen.

 
User_mt5 #:

Bitte erklären Sie...

Die Bibel sagt: Die Variable _Period speichert den Zeitrahmenwert des aktuellen Diagramms.

Die tatsächlichen Werte von _Period für die TF:

М1 = 1

М5 = 5

М15 = 15

М30 = 30

H1 = 16385

H4 = 16388

H6 = 16390

Erklären Sie bitte, dass die Zahlen 60, 120 usw... nicht mehr in Mode sind?

Wenn Sie es wissen, können Sie mir wenigstens einen Tipp geben, was der Trick dabei ist?

Und jetzt habe ich Angst zu fragen ... wo sonst in unserem geheimnisvollen MQL gibt es solche Tricks? :(

Quelle:

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Die verborgene Bedeutung der Zeitrahmen in MQL5

Serhii Shevchuk, 2017.02.27 01:53

Ja, aber es ist langsam. Zum Vergleich habe ich ein kleines Skript skizziert:

#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);
//---
  }    
//+------------------------------------------------------------------+
Wie Sie sehen können, ist es etwa halb so langsam wie if-units:



и

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

Das war's. Sie erhalten den Wert der Aufzählung.

Hätten Sie das getan, hätte sich die Frage nicht gestellt.

Da bin ich anderer Meinung.

Ich denke, das ist keine Entschuldigung oder gar eine Erklärung.

Die allgemeine Logik der vordefinierten Variablen besteht darin, dass auf sie direkt zugegriffen werden kann und sie ihre Werte angeben.

So können Sie z. B. auf _Point, _Digits usw. zugreifen. Und das ist gut so.

Intuitiv wird erwartet, dass alle anderen vordefinierten Variablen ähnliche Eigenschaften haben.

Im Fall von _Period ist dies jedoch nicht der Fall.

--

Nochmals vielen Dank an Sie alle. Betrachten wir die Angelegenheit als erledigt.
Ich wünsche allen ein schönes Wochenende ;-)

 
Fast235 #:

wozu dient der in mql eingebaute encryptor? ich kann keine sinnvolle verwendung dafür finden

es macht keinen Sinn, von sich aus zu verschlüsseln, und nur globale Variablen-Terminals sind für einen zweiten Benutzer sichtbar

Sie können ihren Zustand auf der Festplatte speichern und Daten über das Internet austauschen.