Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1117

 
Roman:

Wirklich praktisch...

Drucken in verschiedenen Zeiträumen.

Da die vordefinierte Variable _Period den Wert ausgibt, der:

Die Variable _Period speichert den Wert des Zeitrahmens des aktuellen Charts.

Und dieser Zeitrahmen wird durch den Wert der Konstante aus der Aufzählung ENUM_TIMEFRAMES definiert, die der Periode des Diagramms entspricht.

Okay, dann mal los:

//+------------------------------------------------------------------+
//|                                         TestTimeframe_Period.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print
     (
      "Значение предопределённой переменной _Period на графике ",TimeframeDescription(Period())," = ",(string)(int)_Period,"\n",
      "Значение константы перечисления ENUM_TIMEFRAMES ",EnumToString(Period())," = ",(string)(int)Period(),"\n",
      "Период графика, соответствующий константе перечисления ENUM_TIMEFRAMES ",EnumToString(Period()),", со значением ",(string)(int)Period()," = ",TimeframeDescription(Period())
     );
  }
//+------------------------------------------------------------------+
//| Возвращает описание таймфрейма                                   |
//+------------------------------------------------------------------+
string TimeframeDescription(const ENUM_TIMEFRAMES timeframe)
  {
   return StringSubstr(EnumToString((timeframe>PERIOD_CURRENT ? timeframe : (ENUM_TIMEFRAMES)Period())),7);
  }
//+------------------------------------------------------------------+
Документация по MQL5: Предопределенные переменные / _Period
Документация по MQL5: Предопределенные переменные / _Period
  • www.mql5.com
Предопределенные переменные / _Period - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Roman:

Ich habe mql4 nicht verwendet)) und habe mich nicht daran gewöhnt.
Warum müssen wir noch einmal durch 60 dividieren?
Wo steht das in der Referenz?
Es sind bereits Ihre Krücken, die den Fehler umgehen.
Prüfen Sie jetzt Ihre Krücke, auf allen Zeitrahmen

Ein Fehler? Sie glauben also, dass die Zeitrahmen M1, M2, M3, M4, M5, M6 und dann M10 auch ein Fehler sind?

Warum bitten Sie die Entwickler nicht, die Fehler der fehlenden Zeitrahmen zu beseitigen?

M7, M8, M9, M11, M13, M14, M16, M17, M18, M19, M21, M22, M23, M24, M25, M26, M27, M28, M29, M31 - M59, N1_M1, N1_M2, N1_M3, --- , ---, HUNDRED_YEARS ?

Warum ist die interne Darstellung von Übertragungskonstanten plötzlich ein Fehler ?

Stört es Sie nicht, dass es keine Dreihundert-Rubel-Noten gibt?

 
Artyom Trishkin:

Ein Fehler? Sie glauben also, dass die Zeitrahmen M1, M2, M3, M4, M5, M6 und dann M10 auch ein Fehler sind?

Warum bitten Sie die Entwickler nicht, die Fehler der fehlenden Zeitrahmen zu beseitigen?

M7, M8, M9, M11, M13, M14, M16, M17, M18, M19, M21, M22, M23, M24, M25, M26, M27, M28, M29, M31 - M59, N1_M1, N1_M2, N1_M3, --- , ---, HUNDRED_YEARS ?

Warum ist die interne Darstellung von Enum-Konstanten plötzlich ein Fehler ?

Stört es Sie nicht, dass es keine Dreihundert-Rubel-Noten gibt?

Können Sie mir bitte sagen, ob der Wert von 16385 dem Periodenwert des H1-Diagramms entspricht?
Und alle anderen Periodenwerte über H1.
Igor hat Ihnen sogar das Binärformat gezeigt, und mein nächster Beitrag ist derselbe, nur in einem anderen Format.

Sie gehen in eine völlig andere Richtung, bringen Sie nicht etwas vor, was Sie nicht gesagt haben.
Was mich stört, ist, dass der Moderator mit seinen Krücken Wanzen mundtot macht!
Sie tragen nicht zu ihrer Beseitigung bei.

Hier ist ein weiterer Fehler für Sie.

Print(PeriodSeconds(PERIOD_MN1)*1000);

Das Gleiche gilt für das MN-Diagramm.

Print(PeriodSeconds(PERIOD_CURRENT)*1000);
 
Roman:

Sagen Sie mir bitte, ob der Wert von 16385 dem Periodenwert des H1-Charts entspricht?
Und alle anderen Periodenwerte über H1.

Sie gehen in eine völlig andere Richtung, bringen Sie nichts zur Sprache, worüber noch nicht gesprochen wurde.
Was mich stört, ist, dass der Moderator mit seinen Krücken Wanzen auswäscht!
Und nicht zu ihrer Beseitigung beizutragen.
Hier ist ein weiterer Fehler für Sie.

Haben Sie keine Zeit, die Hilfe zu studieren?

Alles, was Sie nicht verstehen, ist ein Fehler, den die Entwickler Ihrer Meinung nach beheben sollten?

Oder sollten Sie in diesem Fall vielleicht lesen lernen, anstatt den Schwarzen Peter einem Moderator zuzuschieben?

Print((string)(uint)PeriodSeconds(PERIOD_MN1)*1000)

Warum überfüllen Sie den int?

Drucken Sie es also selbst aus:

Print
  (
   "(int)PeriodSeconds(PERIOD_MN1) = ",(int)PeriodSeconds(PERIOD_MN1),
   ", (ulong)PeriodSeconds(PERIOD_MN1)*1000 = ",(ulong)PeriodSeconds(PERIOD_MN1)*1000,
   ", INT_MAX = ",INT_MAX
  );

und korrigieren Sie bitte den Fehler in Ihrem eigenen Denken.

Und wenn Sie Millisekunden benötigen, stellen Sie sie als ulong dar.

 
Artyom Trishkin:

Haben Sie keine Zeit, die Hilfe zu studieren?

Alles, was Sie nicht verstehen, ist ein Fehler, den die Entwickler Ihrer Meinung nach beheben sollten?

Oder sollten Sie in diesem Fall vielleicht lesen lernen, anstatt den Schwarzen Peter einem Moderator zuzuschieben?

Warum überfüllen Sie den int?

Drucken Sie es also selbst aus:

und korrigieren Sie bitte den Fehler in Ihrem eigenen Denken.

Überbelegung, ja, das war ein Versehen, das habe ich nicht bedacht. Danke hier.
Aber Ihr Beispiel lässt sich nicht kompilieren.

Da es gut druckt, raten Sie mal, wann Sie einen String brauchen und wann nicht ))

Print((uint)PeriodSeconds(PERIOD_MN1)*1000);


Und was die _Period-Variable betrifft, so ist dort über H1 etwas falsch.

 
Roman:

Sagen Sie mir bitte, entspricht der Wert von 16385 dem Wert der Periode des H1-Charts?
Und alle anderen Periodenwerte über H1.
Igor hat Ihnen sogar den Wert im Binärformat gezeigt, und in meinem nächsten Beitrag sehen Sie denselben Wert in einem anderen Format.

Sie gehen in eine völlig andere Richtung, bringen Sie nicht etwas vor, was Sie nicht gesagt haben.
Was mich stört, ist, dass der Moderator mit seinen Krücken Wanzen mundtot macht!
Sie tragen nicht zu ihrer Beseitigung bei.

Hier ist ein weiterer Fehler für Sie.

Dasselbe gilt für die MN-Karte.

1. Ja, entspricht dem Wert der Konstante.

2. und alle anderen entsprechen dem Wert der Konstante.

Versuchen Sie, es auszudrucken.

Print("SYMBOL_BID=",SYMBOL_BID); 

Glauben Sie, dass Ihnen der aktuelle Angebotspreis ausgedruckt wird, oder etwas anderes?

Warum erwarten Sie dann von

Print("PERIOD_H1=",PERIOD_H1);

dass Sie so etwas wie H1 oder 60 erhalten werden?

Und Igor hat esnicht für mich ausgedruckt, sondern Ihnen die interne Darstellung der konstanten Werte der ENUM_TIMEFRAMES-Aufzählung im Binärformat gezeigt.

Sie haben behauptet, die Werte der Aufzählungskonstanten, die Sie mir gezeigt haben, seien ein Fehler und meine Erklärung sei eine Krücke. Das ist nicht der Fall - das ist nur Ihre Unkenntnis der einfachen Grundlagen.

Ich verabschiede mich jetzt - lernen Sie die Grundlagen und zeigen Sie Ihre Unwissenheit bitte nicht in Bugs und Krücken von Entwicklern - es ist nicht gut, eine Leerstelle zu werfen. Ja, und Sie wählen ein paar "knappe Worte" und vergessen dabei, dass Sie etwas nicht wissen.

Sie werden es herausfinden, aber Ihre Skizze wird für andere bleiben, die genauso "sachkundig" sind. Es ist eine Plage...

 
Roman:

Mit Überlauf, ja, überreagiert, diesen Punkt nicht berücksichtigt. Ich danke Ihnen.
Aber Ihr Beispiel wird nicht kompiliert.

Aber es druckt gut, so erraten, wenn Sie eine Zeichenfolge und wenn Sie nicht brauchen ))


Und was die _Period-Variable betrifft, so bin ich mir sicher, dass dort etwas über H1 falsch ist.

Ich meine, was meinen Sie mit "es lässt sich nicht kompilieren"? Aus dem Forum in das Skript kopiert und kompiliert:


Und die Variable _Period gibt den Wert der Aufzählungskonstante ENUM_TIMEFRAMES des aktuellen Diagramms als int zurück . Das heißt, nicht die Anzahl der Minuten, nicht die Anzahl der Sekunden, sondern der Wert der Konstante aus ENUM_TIMEFRAMES, die dem aktuellen Diagramm entspricht.

 
Roman:

Aber es wird alles richtig gedruckt, also raten Sie mal, wann Sie einen String brauchen und wann nicht ))

Sie brauchen nicht zu raten. Man muss nachdenken und verstehen, was getan wird und zu welchem Zweck. Wann etwas geschrieben werden muss und wann nicht.

 
Artyom Trishkin:

Warum sollten Sie dann erwarten

dass Sie etwas wie H1 oder 60 bekommen werden?

Denn die Minuten-Zeitrahmen unterhalb von H1 liefern die richtigen Werte.
Wie in der Hilfe beschrieben, geben sie den Wert des Zeitrahmens zurück, nicht eine zufällige Konstante.

Print("PERIOD_M1=",PERIOD_M1);
Print("PERIOD_M5=",PERIOD_M5);
Print("PERIOD_M30=",PERIOD_M30);
Print("PERIOD_H1=",PERIOD_H1);
2020.04.10 03:19:50.600 VP (EPM20,H4)   PERIOD_M1=1
2020.04.10 03:19:50.600 VP (EPM20,H4)   PERIOD_M5=5
2020.04.10 03:19:50.600 VP (EPM20,H4)   PERIOD_M30=30
2020.04.10 03:19:50.600 VP (EPM20,H4)   PERIOD_H1=16385

Deshalb ist es logisch, dies von höheren Zeitrahmen aus zu erwarten und die Sequenz in Minuten fortzusetzen.
PERIOD_H1=60

usw.

 
Roman:

Denn die Minuten-Zeitrahmen unterhalb von H1 liefern korrekte Werte.
Wie in der Hilfe beschrieben, geben sie den Wert des Zeitrahmens zurück, nicht die willkürlichen Konstanten.

Deshalb ist es logisch, dies von höheren Zeitrahmen aus zu erwarten und die Sequenz in Minuten fortzusetzen.
PERIOD_H1=60

usw.

... weiterhin böse Lieder zu komponieren, den Kommunismus zu erwarten, Trench-Branding und *** zu sammeln...

Es ist logisch, keine konstanten Werte zu verwenden, wenn man erwartet, dass sie "logische" Werte zurückgeben.

Ich möchte Sie noch einmal (zum letzten Mal) an die Konstante SYMBOL_BID erinnern. Es ist doch "logisch", von ihm den Wert des aktuellen Geldkurses anstelle von 1 zu erwarten, oder? Oder ist es nicht so?

Das war's. Ich bin der Süßholzraspelei überdrüssig und habe sozusagen nicht mit dem Unterrichten angefangen.

Grund der Beschwerde: