[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 353

 
Zhunko:

Die Optimierung muss zuerst erfolgen. Die MQL4-Geschwindigkeit ist für die meisten Aufgaben geeignet.

Im MT4-Ordner befindet sich ein Beispiel für eine DLL.


Ich meine einzelne Aufgaben, bei denen ein Durchlauf des Skripts mehrere Stunden dauert. Was verstehen Sie unter Optimierung?
 
Nun, ein paar Stunden sind viel, normalerweise gibt es Möglichkeiten, die Berechnungen zu beschleunigen, indem man den Berechnungsalgorithmus umgestaltet, sich wiederholende Aktionen aus der Schleife herausnimmt, langsame Konstruktionen, mehrdimensionale Arrays usw. vermeidet.
 
splxgf:
In der Regel gibt es Varianten, um die Berechnungen zu beschleunigen, indem man den Berechnungsalgorithmus ändert, sich wiederholende Aktionen aus der Schleife herausnimmt, langsame Konstruktionen, mehrdimensionale Arrays usw. vermeidet.

Haben Sie eine Antwort auf die Frage: Ist es besser, die Merkmale offener Aufträge in einem mehrdimensionalen Array oder in mehreren eindimensionalen Arrays zu speichern, eines pro Merkmal? Ich habe es auf beide Arten versucht. Ich habe keinen Unterschied in der Geschwindigkeit festgestellt. Welches ist der optimale Weg (verschiedene Aufträge, sowohl Markt- als auch Pending-Aufträge, und vielleicht sogar unterschiedlich gerichtete Verlustaufträge)?

Wahrscheinlich "je nach den Anforderungen des Problems"?

 
splxgf:
Nun, ein paar Stunden sind viel, normalerweise gibt es Möglichkeiten, die Berechnungen zu beschleunigen, indem man den Berechnungsalgorithmus umgestaltet, sich wiederholende Aktionen aus der Schleife herausnimmt, langsame Konstruktionen, mehrdimensionale Arrays usw. vermeidet.

Wenn es nicht schwierig ist, können Sie ein Beispiel für eine solche Optimierung zeigen. Zum Beispiel: betrachtet alle Perioden des Alligator-Indikators iAlligator von 1-100 (7 Perioden), die mathematischen Operationen selbst sind einfach (Addition, Subtraktion).

 
snail09:

Haben Sie eine Antwort auf die Frage: Ist es besser, die Merkmale offener Aufträge in einem mehrdimensionalen Array oder in mehreren eindimensionalen Arrays zu speichern, eines pro Merkmal? Ich habe es auf beide Arten versucht. Ich habe keinen Unterschied in der Geschwindigkeit festgestellt. Welches ist der optimale Weg (verschiedene Aufträge, sowohl Markt- als auch Pending-Aufträge, und vielleicht sogar unterschiedlich gerichtete Verlustaufträge)?

Wahrscheinlich wäre es "gemäß der Problemstellung", nicht wahr?


Ich bin noch nicht darauf gestoßen, ich weiß es nicht. Aber wenn Ihr Code korrekt ist und die Aufgabe erfüllt, denke ich, dass es keinen Unterschied macht, in welchem Feld.
 
khorosh:
Gibt es einen Eigenkapitalindikator, der es ermöglicht, ein Datum in seiner externen Variablen festzulegen, so dass alle Aufträge, die vor diesem Datum eröffnet wurden, bei der Berechnung des Eigenkapitals nicht berücksichtigt werden?


Sehen Sie sich diese hier an... Begin_Monitoring und Draw_Begin...

Dateien:
 
FelixFX:

Ich beziehe mich auf einzelne Aufgaben, bei denen die Ausführung eines Skripts mehrere Stunden dauert. Was verstehen Sie unter Optimierung?
Ich möchte den Code so ändern, dass er schneller funktioniert. Es gibt einige besondere Merkmale von MQL4, mit deren Kenntnis Sie Berechnungen um ein Vielfaches beschleunigen können. Ohne Ihren Code können Sie nicht sagen, was optimiert werden kann.
 
Zhunko:
Das bedeutet, dass der Code geändert werden muss, damit er schneller funktioniert. Es gibt einige Besonderheiten von MQL4, wenn Sie diese kennen, können Sie die Berechnungen um ein Vielfaches beschleunigen. Ohne Ihren Code ist es unmöglich zu sagen, was optimiert werden kann.

Betrachten Sie zum Beispiel alle Perioden des Indikators Alligator iAlligator von 1-100 (7 variable Parameter), die mathematischen Operationen sind einfach (Addition, Subtraktion - zum Beispiel können Sie die Summe der Differenzen der Höchst- und Tiefstpreise eines jeden Balkens nehmen, dessen Schlusskurs höher ist als alle Linien des Indikators).
 
FelixFX:

Ich bin noch nicht darauf gestoßen, ich weiß es nicht. Aber wenn Ihr Code korrekt ist und das tut, was er tun soll, denke ich, dass es keinen Unterschied macht, in welchem Feld.
Beide Optionen sind richtig. Deshalb habe ich gefragt. Und wie verfolgen Sie "Ihre" Bestellungen? Bitte teilen.
 
FelixFX:

Wenn es nicht schwierig ist, können Sie ein Beispiel für eine solche Optimierung zeigen. Zum Beispiel betrachtet alle Perioden des Alligator-Indikators iAlligator von 1-100 (7 Perioden), die mathematischen Operationen selbst sind einfach (Addition, Subtraktion).

Das Problem ist zum Beispiel, wie oft der Preis in den letzten zwei Jahren ein bestimmtes Niveau überschritten hat.

1. Sie können jede Stufe nehmen und die Daten für zwei Jahre durchsehen. Kosten: Anzahl der Balken multipliziert mit der Anzahl der Stufen.

2. Sie können eine separate Reihe von Ebenen erstellen. Es genügt, alle Balken zu überprüfen, indem man die erforderlichen Elemente des Arrays überprüft und inkrementiert. In diesem Fall werden die Berechnungen schneller sein.

Grund der Beschwerde: