Fehler, Irrtümer, Fragen - Seite 978

 
voix_kas:

Um die Reinheit der Programmierung zu verbessern, möchte ich die Öffentlichkeit dazu befragen.

Angenommen, es gibt ein global deklariertes Flag (bool Flag). Wenn bestimmte Ereignisse/Bedingungen eintreten, muss er auf einen bestimmten Wert gesetzt werden.

Die erste Variante:

Zweite Möglichkeit:

Welche Option:

1. schneller in Bezug auf die Leistung?

2. Wenn ich so sagen darf, "professioneller"?

Dieser Abschnitt des Codes soll recht häufig kontrolliert werden, z. B. bei jedem Tick.

Und Ihrer Meinung nach ist jede Zecke oft?

Es gibt etwa 3-5 Millionen solcher Vergleiche in einem Tick; die CPU wird Ihre Bedingungen nicht einmal bemerken.

Aber wenn Sie mehrere Tausend pro Tick vergleichen wollen, dann lohnt sich eine Optimierung.

Im Allgemeinen gibt es einen Profiler für die Geschwindigkeitsoptimierung.

 

Fragen 1 und 2 zur Bedingung wie unten:

if (A==1 || B==2 || C==3)
{  // некие действия
}

1) Wenn die Bedingung A==1 erfüllt ist, werden dann B und C als nächstes geprüft? Oder ohne Prüfung von B und C wird "irgendeine Art von Aktion" durchgeführt.

2) Wird die Prüfung von links nach rechts (A, B, C) oder umgekehrt (C, B, A) durchgeführt?

3) Wie kann der Code an Wochenenden profiliert werden, wenn es keine Zecken gibt?

 
paladin800:

Fragen 1 und 2 zur Bedingung wie unten:

1) Wenn die Bedingung A==1 erfüllt ist, werden dann B und C als nächstes geprüft? Oder ohne Prüfung von B und C wird "irgendeine Art von Aktion" durchgeführt.

2) Wird die Prüfung von links nach rechts (A, B, C) oder umgekehrt (C, B, A) durchgeführt?

3) Wie kann ich den Code an einem Wochenende ausprobieren, wenn es keine Zecken gibt?

1. wenn die erste Bedingung erfüllt ist, werden die folgenden nicht geprüft. es handelt sich um eine "oder"-Bedingung

2. von links nach rechts

3. durch Timer-Einstellung stimulieren, z.B.

 

Entweder funktionieren meine Skier nicht, oder es ist meine Schuld...

void OnStart()
  {
   int intDATA[];ArrayResize(intDATA,10);ArrayInitialize(intDATA,0);
   Print(string(sizeof(intDATA)));

   int doubleDATA[];ArrayResize(doubleDATA,10);ArrayInitialize(doubleDATA,0.0);
   Print(string(sizeof(doubleDATA)));

   int intD=0;
   Print(string(sizeof(intD)));

   double doubleD=0.0;
   Print(string(sizeof(doubleD)));
  }

2013.04.29 15:28:17    Size (EURUSD,D1)    8   //верно
2013.04.29 15:28:17    Size (EURUSD,D1)    4   //верно
2013.04.29 15:28:17    Size (EURUSD,D1)    52 //должно быть 8*10=80?
2013.04.29 15:28:17    Size (EURUSD,D1)    52 //должно быть 4*10=40?

 
joo:

Entweder funktionieren meine Skier nicht, oder es ist meine Schuld...

Das sizeof von einem Array gibt die Größe eines beschreibenden Blocks des Arrays an, nicht die Größe des Arrays. Um die Array-Größe zu ermitteln, sollten Sie sizeof(element)*ArraySize() verwenden.
Документация по MQL5: Операции с массивами / ArraySize
Документация по MQL5: Операции с массивами / ArraySize
  • www.mql5.com
Операции с массивами / ArraySize - Документация по MQL5
 
Renat:
Das sizeof von einem Array gibt die Größe des beschreibenden Blocks des Arrays an, nicht die Größe des Arrays. Um die Größe eines Arrays zu ermitteln, tun Sie sizeof(element)*ArraySize()
Ich danke Ihnen.
 
Hilfe! Diagramme und Statistiken werden nicht mehr angezeigthttps://www.mql5.com/ru/signals/5894
 
necroslav:
Hilfe! Diagramme und Statistiken werden nicht mehr angezeigthttps://www.mql5.com/ru/signals/5894
Der Broker hat den Handelsverlauf aus irgendeinem Grund gelöscht. Sie müssen ihm Fragen stellen.
 
Rosh:
Aus irgendeinem Grund hat der Broker den Handelsverlauf gelöscht. Sie müssen ihm Fragen stellen.

im Terminal selbst habe ich noch die Geschichte. Liegt das Problem nicht eher beim Makler?

p.s. Es ist wieder an... seltsam

 
Hallo, die Registerkarte Signale in MT4 ist weg, war morgens da, kam abends und ist weg. Und jetzt wird das Ersuchen nicht ausgeführt, was soll ich tun?