Wünsche für Meta Trader 4/5

 

1) Erstellen Sie einen intuitiven Drag-and-Drop-Strategie-Builder à la Gordago (oder besser noch einen komplexeren Strategie-Builder), der sicherlich neue Nutzer anziehen wird, die mehr oder weniger systematisch handeln wollen, aber nicht viel Zeit mit dem Lernen und Herumstochern in MQL verbringen wollen. Die Aufgabe des Händlers ist es, über den Markt nachzudenken und Optionen auszuprobieren, nicht darüber, wo sich ein Fehler in den Programmcode eingeschlichen hat.

2) Ankreuzen des Verlaufs für Tests. Früher oder später werden Sie aufgrund des Wettbewerbs und der Veränderungen ohnehin "für alle" tätig werden müssen, und erfahrene und "altgediente" Leute wissen ohnehin, wie man Tests in MT4 angeht.

Wenn Sie diese Dinge tun, wird MT für lange Zeit ohne Frage die Nummer 1 sein. Und wenn Sie es nicht tun, werden es andere tun (und tun es bereits). Aber Sie haben bereits ein ausreichend hochwertiges und geeignetes Produkt für den Überbau dieser notwendigen Dinge.

In der Hoffnung auf Verständnis.

 
Sehr naiv.

Nur wenige Menschen können dem Traum widerstehen: "Ich werfe die Würfel visuell umher und dann ist es geschafft". Die harte Realität und die langjährige Praxis beweisen, dass dies nie funktioniert hat und auch in Zukunft nicht funktionieren wird. Wir bewegen uns genau in die entgegengesetzte Richtung - wir konzentrieren uns auf die Programmierer und stellen ihnen umfassende Entwicklungswerkzeuge zur Verfügung.
 
Lieber Renat.

Ist es in der neuen Version von Meta Trader 4
möglich, im Strategietester auf der Seite "Log"
über das Menü, das nach einem Rechtsklick auf
erscheint, zusammen mit dem Punkt "Auto-scrolling" den Punkt
"Disable output of tester messages" hinzuzufügen.
"Log-Ausgabe deaktivieren".

Die Protokolle zeigen also nur die Ergebnisse des Expert Advisors und keine Meldungen:

2007.09.04 22:49:44 Expert: loaded successfully
2007.09.04 22:55:37 2006.01.02 07:00 Expert: EURUSD,M1: open #1 buy 0.50 EURUSD at 1.1832 sl: 1.1732 tp: 1.1882 ok
2007.09.04 22:55:38 2006.01.03 06:03 Tester: take profit #1 at 1.1882 (1.1883 / 1.1886)

und ähnliche Meldungen.
Wenn ein Expert Advisor innerhalb eines Testzeitraums
viele Aufträge sendet, ist es fast unmöglich, die Nachrichten des Expert Advisors selbst
zu finden, was die Fehlersuche sehr erschwert.
Es ist nicht bequem, in den Protokollen auf der Festplatte nach etwas zu suchen.

Ich danke Ihnen im Voraus.
 
1) Volle Fähigkeit, mit der Geschichte zu spielen.
2) Fähigkeit, während der Optimierung die gesamte Form des Raums zweier Variablen zu betrachten
und nicht nur das beste Ergebnis, wenn alle anderen Werte festgelegt sind.
3) Fähigkeit, automatische WFA durchzuführen.
4) Fähigkeit zum Testen und Optimieren von Mehrwährungs-EAs (Portfolio).
 
Renat:
Sehr naiv.

Nur wenige Menschen können dem Traum von einer Art "Jetzt würfle ich und das war's" widerstehen. Die harte Realität und die langjährige Praxis beweisen, dass dies nicht funktioniert hat, nicht funktioniert und wahrscheinlich auch nicht funktionieren wird. Wir bewegen uns genau in die entgegengesetzte Richtung - wir konzentrieren uns auf die Programmierer und stellen ihnen umfassende Entwicklungswerkzeuge zur Verfügung.


Das ist eine seltsame Antwort. "Politisch", wie übrigens auch viele andere Antworten. Ich spreche nicht von einem "Hirngespinst", sondern von einer tatsächlichen Schnittstelle, und ich werde meine Zeit nicht mit Argumenten darüber verschwenden, was, wer sie hat und wie sie genau "funktioniert", sozusagen. Stattdessen schlage ich vor, die komplexe Programmierung beizubehalten und weiterzuentwickeln und einen visuellen, intuitiven Designer für einen anderen Teil der CA-Plattform hinzuzufügen. Wenn man es funktional identisch mit dem Programmieren macht (wenn auch nicht sofort), und noch besser, die Möglichkeit hat, diese beiden Methoden zu kombinieren, welchen Unterschied macht es dann, wie der Benutzer die Strategie bildet - durch Code, "Würfel" oder summarisch?

Offensichtlich werden Sie mir sagen: "Wir haben nicht die Mittel, um diesen ganzen Unsinn zu machen. Wir werden für den Rest unseres Lebens dieselbe Melodie singen." Ist das richtig?

 
ADI:


Offensichtlich werden Sie mir sagen: "Wir haben nicht die Mittel, um diesen ganzen Unsinn zu machen. Wir werden den Rest unseres Lebens damit verbringen, dieselbe Melodie zu singen" - ist das richtig?

Theorie ist gut, aber wir sind Praktiker. Versuche, eine "einfache Lösung für Händler" zu schaffen, wurden schon früher unternommen (MQL, MQL2). Ich habe schon oft darüber geschrieben.

Aber wir werden mit dem Konstruktor/Visard arbeiten - wir werden versuchen, einfache Grundgerüste (keine vollständigen Programme) automatisch zu erstellen.
 
Neben der üblichen Deklaration von Variablen würde ich gerne ähnliche Variablen mit einem Stringnamen erstellen, der als Parameter fungiert, der während des Betriebs eines Indikators oder eines Expert Advisors geändert werden kann. Dies ist ähnlich wie bei globalen Variablen! Zum Beispiel so:
CreatIntVariable("Variable_Name");
 

Renat, ich würde Ihnen vorschlagen, den Prototyp der iCustom-Funktion in zukünftigen Versionen zu überdenken. Jetzt müssen Sie die Parameterliste explizit in den Code schreiben, und Sie können z. B. keinen beliebigen Indikator, der von einem Benutzer gesetzt wurde, namentlich aufrufen, da die Anzahl der Argumente eines Indikators im Voraus unbekannt ist. Sie schränkt die Verwendung von iCustom stark ein. Außerdem gibt es zwei Aufrufparameter (int mode, int shift) am Ende der iCustom-Argumentenliste, d. h. die Indikatorparameter "unterbrechen" die iCustom-Parameter im Prototyp.

Ich kann einen solchen Prototyp vorschlagen:

double iCustom( string symbol, int timeframe, string name, int mode, int shift, object[] indicatorParams)

D.h. alle obligatorischen Parameter von iCustom selbst stehen am Anfang, und das letzte Argument der Funktion ist ein Array der Indikatorargumente eines neuen beliebigen Objekttyps (in Wirklichkeit sind es int, bool, double, datetime und andere eingebaute MQL-Typen) mit einer variablen Nummer im Array. Obwohl die Idee selbst nicht realistisch ist - vor etwa 5 Jahren sagte mir ein Mann, dass Programmierer eine aussterbende Klasse von Menschen sind, die eine unnötige Schicht zwischen Fachleuten und Computern darstellt. Mit der Zeit bewahrheitet sich die Prognose im Gegenteil - die Anzahl und Komplexität der IT-Lösungen nimmt weiter zu.

Und es wäre schön, Funktionen zu haben, die ihre Argumente für Indikatoren aufzählen: IndicatorArgsCount(), ArgsItemName[i] gibt den Parameternamen zurück, usw.
Und das Wichtigste - es ist ein Debugger in MQL 5.

 

Zu chv - es ist immer noch möglich, Standardparameter in iCustom zu verwenden - siehe https://docs.mql4.com/ru/indicators/iCustom.

Im Prinzip stellt MQL4 jetzt alles dar, aber es ist noch mehr möglich. Hier ist meine Liste:

1.) Es ist möglich festzustellen, ob ein StopLoss- oder TakeProfit-Auftrag gerade geschlossen wurde. Das ist jetzt möglich, aber ziemlich kompliziert:

3 Funktionen

int OrderJustClosedCount() - gibt die Anzahl der zu Stops geschlossenen Aufträge zurück

int OrderJustClosed(int pos) - Nummer des Tickets

void OrderJustClosedClear() - löscht den Puffer - unmittelbar nachdem OrderJustClosedCount den Wert 0 zurückgegeben hat - wenn die Bearbeitung zu lange gedauert hat.

2.) Bei einigen Objekten (z. B. einem linearen Regressionskanal) können Sie einige Werte nach dem Zeichnen nicht mehr lesen (z. B. den Preis am Ende des Kanals).

3.) Hinzufügen von mehr MathArcTan2 - zumindest MathArcTan2 - natürlich ist vieles bereits in MQL4 implementiert, aber trotzdem - warum nicht integrieren?

Und was den Debugger angeht - ich glaube, Sie arbeiten bereits daran ;-)

 
Itso:

1.) Die Möglichkeit zu bestimmen, ob StopLoss- oder TakeProfit-Aufträge gerade geschlossen wurden. Das ist jetzt möglich, aber ziemlich kompliziert.

Dann gibt es auch eine Liste der ausgelösten schwebenden Aufträge.

Im Allgemeinen sollten wir einfach den Begriff "Ereignis" einführen, und alle derartigen Situationen können gehandhabt werden.
Zum Beispiel das Ereignis "Auftrag ausgelöst", "SL ausgelöst" oder "Auftrag gelöscht durch Verfallszeit".
 
Itso:

Zu chv - die Möglichkeit, Standardparameter in iCustom zu verwenden, besteht weiterhin - siehe https://docs.mql4.com/ru/indicators/iCustom


Wissen Sie, ich habe den Prototyp der iCustom-Funktion bereits gelesen ;). Die "Standardparameter" erlauben es mir nicht, das zu tun, was ich brauche. Hier ist die einfachste Aufgabe - der Expert Advisor nimmt als Argument in einem String den Namen eines beliebigen Indikators und z.B. eine kommagetrennte Liste von Werten seiner Parameter in einer Textdatei. Der Expert Advisor muss den Indikator namentlich mit den angegebenen Argumenten aufrufen und seine Werte empfangen und im Journal ausdrucken, z. B. wenn die iCustom-Beschreibung eine Phrase enthält:

...   -   Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных  пользовательского индикатора.

Nun können wir dies nicht für einen beliebigen Indikator tun - wir schreiben, was wir nicht wissen. Zum Zeitpunkt der Erstellung des Expert Advisors sind die Anzahl und die Art der Indikatorargumente noch nicht bekannt. Sie wird erst zur Ausführungszeit bestimmt. In Programmiersprachen wird dies als "late binding" bezeichnet. Sie existiert derzeit nicht in MQL.