Fragen von einem "Dummy" - Seite 117

 
meneo:

Wie kann das sein? (siehe Berechnung der Variablen k und der Werte aller Variablen im Debug-Modus)

Es ist sehr einfach. lparam ist ein Long-Typ (Integer), wdpix ist ein Int-Typ (Integer). lparam/wdpix ist ein privater Long-Typ (Integer). Da lparam < wdpix, lparam/wdpix ==0.

Siehe MQL5 Referenz / Grundlagen der Sprache / Datentypen / Typkonvertierung

 
meneo:

Wie berücksichtigen Sie die Lücken zwischen benachbarten Balken im Diagramm?

Wenn Sie es sehen, wenden Sie sich bitte an den Service Desk und informieren Sie ihn über den Fehler.
 
Ich danke Ihnen allen! )
 
Können Sie feststellen, welcher Experte in einem anderen Fenster ausgeführt wird?
 
meneo:
Können Sie feststellen, welcher Expert Advisor in einem anderen Fenster ausgeführt wird?
Es scheint unmöglich zu sein (wenn ich nichts übersehen habe), aber es ist möglich, die eigenen von den "anderen" zu "unterscheiden". Wenn es mehrere Programme im Projekt gibt, können Sie deren Protokoll für den Austausch von Höflichkeiten durch benutzerdefinierte Nachrichten festlegen. Sie sollten grüßen, ihren Hut abnehmen, ihre Taschen auspacken usw.
 

Ist es auch möglich, eine Aufzählung nach Aufzählung vorzunehmen

wie hier?

for (int i = PERIOD_M1;i<=PERIOD_D;i++)

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

Ist es auch möglich, eine Aufzählung nach Aufzählung vorzunehmen

wie hier?

for (int i = PERIOD_M1;i<=PERIOD_D;i++)

Das wird nicht funktionieren.

Darüber - ich sollte es versuchen.

for (ENUM_TIMEFRAMES i = PERIOD_M1;i<=PERIOD_D;i++) {}

Irgendwie habe ich den Verdacht, dass das nicht funktionieren wird, obwohl "theoretisch" eine Chance besteht. :)

 

Nun, ich habe es versucht.

void OnStart()
  {
//---
   for (ENUM_TIMEFRAMES i = PERIOD_M1;i<=PERIOD_D;i++) { Print(EnumToString(i));}
  }
//+------------------------------------------------------------------+

Lässt sich nicht einmal kompilieren.

'ForEnum.mq5' ForEnum.mq5 1 1
'i' - unerwartetes Token ForEnum.mq5 15 25
'i' - nicht deklarierter Bezeichner ForEnum.mq5 15 25
'PERIOD_D' - nicht deklarierter Bezeichner ForEnum.mq5 15 42
'i' - Parameter für EnumToString muss eine Aufzählung sein ForEnum.mq5 15 77
4 Fehler, 0 Warnung(en) 5 1

Aber es scheint nichts Illegales daran zu sein.

 
MetaDriver:

Ich habe es versucht.

Der Programmierer will nicht einmal kompilieren.

Und es scheint nichts Illegales daran zu sein.


Um mit enum zu arbeiten, sollten Sie wahrscheinlich zumindest solche Funktionen hinzufügen wie

enum::GetName und enum::GetValue

und für jedes Sprachkonstrukt

Dann wird die Aufzählung durch MQL automatisiert

 

Das funktioniert natürlich.

#property script_show_inputs

input  ENUM_TIMEFRAMES P = PERIOD_D1;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for (int i = PERIOD_M1;i<=P;i++)  // { Print(EnumToString(ENUM_TIMEFRAMES(i)));}
    {
      string S=EnumToString(ENUM_TIMEFRAMES(i));
      if (StringGetCharacter(S,0)=='P')   

        {{{{ Print(S);  }}}}

    }

  }

Und das Tolle daran ist, dass nicht gesagt wird, dass P ein unerwartetes Token oder ein nicht deklarierter Bezeichner ist.

Im Gegenteil, als Stammkunde bietet es alle Annehmlichkeiten



Seltsam ..... ;)