Wünsche für MQL5 - Seite 3

 
alexnau:
wellx:
Ich habe es schon einmal geschrieben, aber ich sage es noch einmal:
- Callback-Funktionen für die Arbeit mit dem Terminal selbst
- Verbindung unterbrechen/wiederherstellen
- Verwaltung der Warteschlange mehrerer EAs (Mutexe, kritische Abschnitte....)
- Debugger (beliebig)
- Unterstützung der direkten Nummerierung der Balken (vom ältesten bis zum jüngsten) mit Benachrichtigung über Änderungen der Balkenanzahl
- Erstellung von DLLs aus MQL-Funktionen (hilft bei der Erstellung von Bibliotheken, was den Gesamtcode mit einer großen Anzahl von Indikatoren reduziert)


Lösen Sie die Probleme mit der Ungewissheit, ist es unwahrscheinlich, dass es die aktualisierte MQL verbessern wird. Warum brauchen wir einige Warnungen, um die Nummer des aktuellen Balkens (Zero Bar) zu berechnen?

Trotz des "Countdowns" ist die Logik für die Bestimmung des erforderlichen Balkens meiner Meinung nach klar und einfach.

Ich bitte nicht darum, die aktuelle Variante zu ändern, sondern nur darum, eine Unterstützung hinzuzufügen. Dadurch wird die Historie nicht bei jedem neuen Balken neu berechnet, sondern Sie müssen nur die Änderung der Anzahl der Balken überprüfen. Dadurch wird die Belastung des Terminals verringert, und es muss nicht mehr so häufig geklingelt werden.
 
Die Anzahl der Balken kann weiterhin kontrolliert werden. Dafür sind die Bars da.
 
alexnau:
wellx:
- Unterstützung der direkten Nummerierung der Takte (vom ältesten bis zum jüngsten) mit Benachrichtigung über die Änderung der Anzahl der Takte


um die Unsicherheitsprobleme zu lösen, ist es unwahrscheinlich, dass es die aktualisierte MQL verbessert. Warum brauchen wir Warnmeldungen, um die Nummer des aktuellen Balkens (Zero Bar) zu berechnen?

Trotz des "Countdowns" ist die Logik der Bestimmung des erforderlichen Balkens meiner Meinung nach klar und einfach.


Dadurch würde sich das Problem des Auffindens des richtigen Balkens in der Historie auf die Angabe seines "Rückwärts"-Index reduzieren und wäre wesentlich wirtschaftlicher.

Eh, der frühere Enthusiasmus und Optimismus ist verschwunden :), aber ich werde meine 5 Kopeken hinzufügen:

Fügen Sie im Tester anstelle des Modus "Kontrollpunkte" den Parameter "Alle Ticks" und die Anzahl der Starts des Expert Advisors pro Takt hinzu. Der Modus "nach offenen Preisen" sollte ohnehin nicht aufgehoben werden, da dafür kompaktere fxt verwendet wird. Aber nein, es ist besser, ihn durch den Modus "zu nahen Preisen" zu ersetzen :)

Und wieder:

-Hinzufügen der Bindung von globalen Variablen an Programmvariablen in init.

Um eine Exe-Datei für den Tester zu erstellen.

-Zum Hinzufügen zu Indikatorpuffern ( für jeden Variablentyp) - für einen effektiven Datenaustausch mit Expert Advisor.

 
Außerdem: Hinzufügen der Möglichkeit, eine bestimmte fxt-Datei mit einem beliebigen Namen zu testen. Warum die derzeitige starre Beziehung zwischen fxt-Dateiname und Zeichen?
 
Hier sind meine Wünsche für das neue System, die mir bisher in den Sinn gekommen sind (in absteigender Reihenfolge):

Sprache
----

Double in String umwandeln mit maximaler Genauigkeit (> 8)

Bedingte Kompilierung (#ifdef, #ifndef, #define, #undefine)

Möglichkeit, Schlüsselwörter durch #define zu ersetzen (für bedingte Kompilierung). Der Wert kann leer sein.
Beispiel:
//#define EXTERN extern // normal
#define EXTERN // Wettbewerb
EXTERN int opt = 0;

Verschachtelte Kommentare /* */.
Nicht ANSI, aber fast überall implementiert (und deaktiviert). Ermöglicht das schnelle Auskommentieren eines großen Stücks Code mit normalen Textkommentaren.

Strukturen (versprochen)

Mehrdimensionale Arrays, bessere Din-Verwaltung.

Debugger (versprochen?)

Veranstaltungen

Ausnahmen

API

Zeiger oder ähnliches, für Listen, Decks, ...

Schnittstelle zur Datenbank (SQL oder ODBC). Bei der Datenbank darf es sich nicht um einen Server handeln.

Inline-Funktionen

Überlastung der Funktion

Obfuscating (schwer zu dekompilieren).
Verschlüsselung von Zeichenketten mit einmaliger Entschlüsselung bei der EA-Initialisierung, Änderung des Codeflusses, Vermischung von Code, kein Löschen von unbenutztem Code,
Junk-Code und Daten hinzufügen...
All dies wird mit #pragma gesteuert.


Terminal
--------
Geben Sie in den Einstellungen ein Programm oder ein MQL-Skript mit Optionen (und Meta-Variablen) an, das vor (und nach?) der Kompilierung (für die benutzerdefinierte Vorverarbeitung) aufgerufen werden soll.


Herausgeber
--------
Kommentier-/Entkommentiervorgänge (per Schaltfläche und/oder Hotkey)
 
1. Machen Sie den Tester in einem separaten Programm (wie MQL-Editor und Terminal).
2. Entwicklung eines leistungsfähigeren genetischen Algorithmus (der in der Lage sein sollte, eine Anzahl von Varianten 10 hoch 20 zu testen).
3. Beschleunigen Sie den Prüfprozess. (Ich werde kaum 15-30 Stunden warten können, und es wird eine mörderische Aufgabe sein!
4. Führen Sie die Funktion der Positionsumkehr ein (d.h. wenn Sie eine Kaufposition mit 5 Lots haben, können Sie diese in einen Verkauf mit 5 Lots umwandeln).
Das ist alles für den Moment.
 

Ein weiterer Wunsch für die Wipptiere. Es wäre gut, wenn wir neben dem Optimierungszeitraum auch den Zeitraum für die Gegenprüfung der gefundenen Parameter angeben könnten. Diese Funktion erspart ein wenig die Umschulung des Handelssystems (oder die Umschulung des NS).

 
Ich möchte eine Funktion. Die Eingabedaten sind die Optimierungsdaten und eine Reihe von zurückgegebenen Werten. Das Ergebnis sind natürlich die optimierten Werte.
 
klot:

Ein weiterer Wunsch für die Wipptiere. Es wäre gut, wenn wir neben dem Optimierungszeitraum auch den Zeitraum für die Gegenprüfung der gefundenen Parameter angeben könnten. Diese Funktion erspart ein wenig die Umschulung des Handelssystems (oder die Umschulung des NS).

Das ist es, was wir wirklich brauchen.
 
Integer:
drknn:
Nun, ich habe einen bescheidenen Vorschlag. Ich schlage vor, eine Funktion in die Sprache einzuführen, die die Anzahl der Array-Zellen zurückgibt, in denen der angegebene Wert liegt (oder im Falle eines Fehlers minus eins zurückgibt). Ansonsten müssen wir jedes Mal eine Schleife einrichten. Die Funktion ArrayBsearch() ist nicht geeignet - sie gibt den falschen Wert zurück.

Der von dieser Funktion zurückgegebene Wert wird immer noch auf Gleichheit -1 geprüft, so dass wir den Wert mit dem von ArrayBsearch zurückgegebenen Index auf Gleichheit mit dem gewünschten Wert prüfen können. Kein großer Unterschied

Um die Referenz zu zitieren.

int ArrayBsearch(...)
Gibt den Index des ersten gefundenen Elements in der ersten Array-Dimension zurück.
Wenn es kein Element mit dem angegebenen Wert im Array gibt, gibt die Funktion den Index des nächstgelegenen Elements (nach Wert) zurück.

Nun, wenn man nicht nur nach dem Index einer Nummer im Array sucht, sondern nach einem Ticket der Bestellung, passt diese Funktion überhaupt nicht - warum brauche ich den Index des nächstgelegenen ähnlichen Tickets, wenn ich genau dieses Ticket benötige, und wenn es nicht vorhanden ist, ist die Bestellung nicht unter den marktgängigen - sie ist geschlossen und wir sollten sie in der Geschichte finden! Wenn Sie mit synchron verschobenen Arrays arbeiten, ist der Index sehr wichtig, und er muss entweder genau sein oder nicht verfügbar.