Ist die lineare Verlangsamung ein Programmierfehler oder ein Merkmal von MT4? - Seite 6

 
sergeev:


Sie müssen aufhören, Zeit zu verschwenden und endlich mit der Entwicklung beginnen. Erstellen Sie die ToR.

Denn der Kunde will eine Lösung und nicht nur einen Zeitrahmen.

Läuft bereits).
 
FAQ:

Es wurde Ihnen von einer erfahrenen Person zum x-ten Mal erklärt, dass in diesem Code in einem Durchgang der Startfunktion

32 "für"-Zyklen

17 Mal scannen Sie die Aufträge (sowohl offene als auch historische),

24 Aufrufe der Funktion zur Löschung schwebender Aufträge, die auch einen Zyklus für alle Aufträge hat (* Anzahl der Aufträge)

7 Aufrufe der Funktion zur Löschung von Marktaufträgen mit demselben Zyklus für alle Aufträge (*Anzahl der Aufträge)

6 Änderungen der Limits mit Zyklen im Inneren (* Anzahl der Aufträge)

6 Änderungen von Stop-Aufträgen mit Zyklen innerhalb (* Anzahl der Aufträge)

10 Auftragsfunktionsaufrufe mit Zyklen darin (*Anzahl der Aufträge)

37 Mal drucken Sie (Drucken),

7 (sieben) Mal haben Sie Zugriff auf die gesamte Historie der Balken (und sie wächst während der Prüfung).

Und das kostet eine Menge Zeit.

Ich spreche nicht einmal von nicht optimierten "if"-Filtern, die komplexe Bedingungen enthalten (und es gibt keine verkürzte Prüfung in MT4).

Und danach können Sie Ihre Augen vor absolut unlesbarem Code verschließen, es ist nicht wichtig, zumindest können Sie ihn durch einen Styler schicken und etwas erhalten (obwohl ich persönlich seinen Stil nicht mag):

micle:
Ich darf es noch einmal sagen, aber: Das erste und wahrscheinlich größte Problem ist, dass der Code unlesbar und unstrukturiert ist. Sie haben vielleicht eine ganz klare ToR. Wenn man die ToR versteht und den Code richtig schreibt, bringt das (in der Regel) einen erheblichen Gewinn an Ausführungsgeschwindigkeit, kostet aber auch einiges an Geld.

Im Endeffekt brauchen Sie ein so genanntes Flussdiagramm, das Ihnen zeigt, was unnötig ausgeführt wird. Für Programmieranfänger (sprich "Trader") wäre es praktisch, eine solche Code-Visualisierung mit Hilfe des MT4-Programms zu sehen.

Die einfachste Optimierung, so wie ich sie verstehe, besteht darin, den Code für die Arbeit mit Aufträgen zu systematisieren, d.h. nur 2 Hauptanfragen pro Takt und zusätzlich pro 1 Tick zu stellen, wenn die Bedingungen der ToR die Arbeit mit Aufträgen erfordern, wenn bestimmte Bedingungen eintreten, als Ergebnis erhalten wir

1. die Überprüfung der Bedingungen für die Aktualisierung/Schließung eines Auftrags, wenn ein neuer Balken geöffnet wird;

2. Auftrag ändern/abschließen

3. Überprüfung der Bedingungen für die Eröffnung eines neuen Auftrags, wenn ein neuer Takt geöffnet wird

Eröffnen Sie einen neuen Auftrag; 4.

5. Überprüfung der Bedingungen für die Aktualisierung des Balkens bei jedem Tick

6. Modernisierung/Abschluss eines Auftrags, wenn Bedingung 5 erfüllt ist.

Aber ein Programmierer sagte mir, dass der Code sowieso bei jedem Tick ausgeführt wird (vollständige Konformitätsprüfung der Bestellung und nicht nur der Teil, der bei jedem Tick geprüft werden sollte), kann das nicht irgendwie gelöst werden?

Verlangsamt die Funktion "Drucken" den Expert Advisor während der Optimierung?

Welche Datei haben Sie angehängt, nachdem Sie sie im "Styler" ausgeführt haben?

 
die Sie im ersten Beitrag des Themas angegeben haben.
 

FAQ:
который вы выложили в первом посте темы. 

Und zu "der Code wird immer noch bei jedem Tick ausgeführt (vollständige Prüfung gegen den TOR, nicht nur der Teil, der bei jedem Tick geprüft werden sollte)", können Sie das kommentieren?

 
-Aleks-:

Und wie kommentieren Sie "der Code wird weiterhin bei jedem Tick ausgeführt (vollständige Prüfung der Einhaltung der TOR, nicht nur der Teil, der bei jedem Tick geprüft werden sollte)"?

Sie müssen es neu machen, und zwar mit Bedacht. Dann wird alles funktionieren, wann und wie es soll.
 
FAQ:
Man muss es neu machen, und man muss es klug machen. Dann wird alles funktionieren, wann und wie es soll.

Ich spreche nicht von diesem Code, sondern von einem globalen. Sie widerlegen also diese Aussage?

 
-Aleks-:

Ich spreche nicht von diesem Code, sondern von einem globalen. Sie widerlegen also diese Aussage?

Lassen Sie sich nicht auf die Theorie ein, Sie werden sowieso nichts verstehen.

Alle Theorie ohne einen konkreten Code oder eine Anwendung ist reiner Unsinn.

Wenn Sie es widerlegen oder beweisen wollen, machen Sie den Code und sehen Sie, wie er sich verhält.

 
sergeev:

Lassen Sie sich nicht auf die Theorie ein. Sie werden sowieso nichts verstehen.

Alle Theorie ohne einen konkreten Code oder eine Anwendung ist bloßes Geschwätz.

Wenn Sie es widerlegen oder beweisen wollen, machen Sie den Code und sehen Sie, wie er sich verhält.

Es gibt wahrscheinlich vieles, was ich nicht verstehe, aber ich versuche, es zu verstehen...

Denken Sie über Ihren Aufruf zum Handeln nach...

 
-Aleks-:

Aber der Versuch, es zu verstehen...

Solange Sie MetaEditor nicht öffnen und Ihren eigenen Code schreiben, werden Sie nicht verstehen, wie er funktioniert.
Und selbst ein kleiner Anfänger-Progger wird all Ihr theoretisches Wissen mit seinen praktischen Fähigkeiten und empirischen Beobachtungen überwältigen.
Wenn Sie nicht vorhaben, "Ihren eigenen Code zu schreiben" - dann fangen Sie gar nicht erst an, in diesem Forum zu fragen, warum etwas nicht funktioniert, weil es für Sie keinen Sinn ergibt.

Oder haben Sie auf Anraten des Forums beschlossen, ein professioneller Programmierer zu werden? :)))) Der Name des Themas "lineare Verzögerung" verrät uns, dass Sie an einer wissenschaftlichen Fakultät oder als Ingenieur studiert haben.


In der Programmierung gibt es keine Theoretiker, so wie es auch keine Profifußballer/Coaches/Chirurgen/Linguisten gibt, die Theoretiker sind und nie in der Praxis gearbeitet haben.

All Ihre Bemühungen, die Gründe herauszufinden, warum das Programm nicht funktioniert, sollten nicht auf der Ebene des "Ich will es wissen" liegen, sondern auf der Ebene des konkreten "Ich muss es tun".

Alle anderen theoretischen Überlegungen mit hochtrabenden Begriffen sind ohne konkrete Maßnahmen keinen Pfennig wert.


Und ein bisschen Humor auf den Punkt gebracht.






 
sergeev:

Solange Sie MetaEditor nicht öffnen und Ihren eigenen Code schreiben, werden Sie nicht verstehen, wie er funktioniert.
Und selbst ein kleiner Anfänger-Progger wird all Ihr theoretisches Wissen mit seinen praktischen Fähigkeiten und empirischen Beobachtungen überwältigen.
Wenn Sie nicht vorhaben, "Ihren eigenen Code zu schreiben", dann fangen Sie gar nicht erst an, das Forum zu fragen, warum etwas verzögert wird, weil es für Sie keinen Sinn ergibt.

Oder haben Sie auf Anraten des Forums beschlossen, ein Programmierprofi zu werden? :))) Der Name des Themas "Lineares Bremsen" verrät uns, dass Sie an einer naturwissenschaftlichen oder technischen Hochschule studiert haben.

In der Programmierung gibt es keine Theoretiker, so wie es auch keine Profifußballer/Coaches/Chirurgen/Linguisten gibt, die Theoretiker sind und nie in der Praxis gearbeitet haben.

Alle Ihre Bemühungen, die Ursachen für das Scheitern des Programms herauszufinden, dürfen nicht auf der Ebene des "Ich will es wissen" liegen, sondern auf einem bestimmten Vektor des "Muss".

Alle anderen theoretischen Überlegungen mit hochtrabenden Begriffen sind ohne konkrete Maßnahmen keinen Pfennig wert.

Und ein bisschen Humor zum Thema.

Danke für den Humor!

Aber zum Thema, meine berufliche Tätigkeit liegt im Bereich der Steueroptimierung, also bin ich mit Algorithmen vertraut ;) Ich bin davon überzeugt, dass meine TOR verständlich sind, natürlich erst nach Angabe der Details (ich versuche, Bilder und Berechnungen in Excel zu zeichnen).

Darüber hinaus bin ich mit MetaEditor vertraut und in der Lage, einen einfachen Indikator zu erstellen oder die Logik eines Expert Advisors zu korrigieren. Aber ich habe ein großes Problem mit den Handelsfunktionen... Ich habe nur wenig Zeit, und ich fühle mich nicht als geborener Programmierer, aber ich muss die Grundlagen und Funktionen der MQL-Sprache verstehen, um meine Interessen bei der Ausführung meines Auftrags zu wahren.

Und dann bin ich wirklich neugierig.

Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5