Wünsche für MQL5 - Seite 4

 
drknn:
Ganzzahlig:
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), da wir sonst jedes Mal eine Schleife machen müssen. Die Funktion ArrayBsearch() ist nicht geeignet - sie gibt den falschen Wert zurück.

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

Ich zitiere aus der Referenz.

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.



Lesen Sie noch einmal, was ich Ihnen geschrieben habe

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

Suchen Sie das nächstgelegene Ticket, vergleichen Sie es mit dem gesuchten Ticket, und wenn es nicht gleich ist, ist es nicht in der Liste.

 
Integer:

Lesen Sie noch einmal, was ich Ihnen geschrieben habe

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

Finden Sie das nächstgelegene Ticket, vergleichen Sie es mit dem Ticket, wenn es nicht gleich ist, bedeutet dies, dass es nicht im Array ist.

Warum müssen Sie ständig herumlaufen? Zeigen Sie mir eine normale Programmiersprache, die nicht über eine Funktion verfügt, die den Index des gewünschten Array-Elements zurückgibt. Gut, ich schreibe die Funktion selbst, dann kann ich wenigstens das Array als Parameter an ein Unterprogramm übergeben.

Die Nachteile von MQL4 sind zahlreich. Die Flexibilität dieser Sprache ist unbrauchbar. Hören wir auf unsere Bedürfnisse und speichern wir den Code des Expert Advisors. А? Oder interessieren sich die Entwickler für niemanden außer sich selbst?

 
drknn:

Na ja, was soll's, ich schreibe diese Funktion selbst, dann kann ich wenigstens das Array als Parameter an das Unterprogramm übergeben.

In MQL4 ist es einfach, ein Array an ein Unterprogramm zu übergeben und ebenso einfach zu akzeptieren.
MQL4 hat eine Reihe von Nachteilen. Hören wir uns an, was notwendig ist, und speichern Sie den Expert Advisor-Code. А? Oder interessieren sich die Entwickler nicht für alle außer sich selbst?
Ja, die Nachteile sind allgemein bekannt. Die Entwickler haben doch nichts dagegen gesagt, oder? Wir arbeiten schon seit langem an der Sprache MQL5.
 
drknn, schauen Sie mal hier: https://docs.mql4.com/ru/basis/variables/formal. Es geht nur um die Übertragung von Arrays.
 
xenon13:

Bei allem Respekt, MQL4 ist immer noch das beste MTS auf dem Markt, aber die folgenden Dinge fehlen sehr stark:

1. eine API oder eine Möglichkeit, EA-Funktionen von einer DLL aus aufzurufen (Mister Developers - wir brauchen das wirklich !!!! )

Ereignisbehandler - mindestens ein Systemereignis (ein CallBack oder etwas mit einer Meldungsnummer, z. B. die Meldung - der Handel mit diesem Symbol wird eingestellt)

3. Strukturen, Zuweisungen im Satz a = b = d = e, implizite Typumwandlungen.

Ich bitte andere, sich anzuschließen und die Wunschliste in diesem Thread fortzuführen.

P.S. noch einmal zum ersten Punkt: Sie können alles so lassen, wie es ist - aber rufen Sie von der DLL aus an.


Ich würde gerne eine objektorientierte Sprache ähnlich wie C++ sehen.

Wenn wir uns dem Handel nähern

Ich möchte gerne

1 Aufruf dieser Funktion mit anpassbarem Timer (wäre eine sehr schöne Funktion)

2 LOSS TAKE ACTION (obwohl ich verstehe, dass dies programmatisch mit verschiedenen Handlern verfolgt werden kann)

3 es wäre schön, eine Art visuellen Debugger zu haben (obwohl ich mit dem Prüfdruck zufrieden bin)

 
Mathemat:
drknn, schauen Sie mal hier: https://docs.mql4.com/ru/basis/variables/formal. Es geht nur um die Übertragung von Arrays.

Danke. Ich werde es mir ansehen.
 
Renat:
Ja, die Unzulänglichkeiten sind bekannt. Die Entwickler haben doch nichts dagegen gesagt, oder? Wir arbeiten schon seit langem an der Sprache MQL5.

Es tut mir leid, vielleicht habe ich überreagiert. Das Problem ist, dass es keinen richtigen Leitfaden für diese Sprache gibt. Hätten wir eine angemessene Hilfe gehabt, hätten die Benutzer weniger Fragen gehabt.
 
MQ würde eine Liste der neuen Funktionen der MQL5-Sprache veröffentlichen. Es wäre möglich gewesen, einige Punkte im Voraus zu besprechen - die neuen Spracheigenschaften. Die Entwickler hätten ihre Pläne überarbeitet. Wir könnten sogar eine Abstimmung über die neuen oder die abgeschafften Funktionen durchführen.

Übrigens wäre es gut, die Sortierung der Registerkarten mit Code im Meta-Editor hinzuzufügen. Oft möchte man einige Module nebeneinander gruppieren, um nicht ständig scrollen zu müssen, um ein benötigtes zu finden.
In einer Sprache gab es ein Problem, als ich eine Zeichenfolgenvariable übergab, die ein Parameter einer anderen Funktion war.
Das hat so nicht funktioniert:

func(Symbol());

void func(string symbol) {
mql_func(symbol);
}

Aber es funktioniert folgendermaßen

void func() {
mql_func(symbol();
}
 
drknn писал (а):


Warum müssen Sie ständig herumlaufen? Zeigen Sie mir eine normale Programmiersprache, die nicht über eine Funktion verfügt, die den Index des gewünschten Array-Elements zurückgibt. Gut, ich schreibe die Funktion selbst, dann kann ich wenigstens das Array als Parameter an ein Unterprogramm übergeben.


Delphi hat eine solche Funktion nicht. :) Und vielleicht existiert es irgendwo in einem separaten Modul. Wenn es existiert, weiß ich nichts darüber, weil es einfacher ist, es selbst zu schreiben, als danach zu suchen oder nicht.

Die Algorithmen selbst zu implementieren ist übrigens kein "Workaround", sondern die Verwendung von Komponenten, Prozeduren, Bibliotheken und vorgefertigtem Code von Dritten. Dies ist eine Umgehung. Der wissenschaftliche Begriff dafür lautet "Lamerismus". :)
Die Entwickler haben bereits gesagt, dass sie eine Sprache für Programmierer und nicht für lahmarschige Programmierer entwickeln. :)

Jede Funktion, die sich viele Leute wünschen, kann man in einer halben Stunde selbst erstellen, anstatt 3 Jahre zu warten, bis die Entwickler sie für einen machen. Dann packt man sie in eine separate Bibliothek und fügt sie einfach in jeden neuen Expert Advisor mit einem üblichen Inlude ein. Ist es so schwer, das zu durchdenken? Das ist ein Kindergarten. Die Sprache ist cool, es gibt viele Möglichkeiten für Kreativität. Aber wenn ein Mensch nicht kreativ ist, ist diese Sprache für ihn kontraindiziert. Er ist in vielen Dingen kontraindiziert, auch im Handel. :) Entschuldigen Sie die mögliche Abruptheit, ich konnte es nicht ertragen.



Ich hätte mir nur gewünscht, dass ein Übergangsoperator hinzugefügt worden wäre. Der Rest ist für mich in Ordnung.

Wenn ich den OrderLots-Parameter im realen Handel ändern möchte, möchte ich ihn nicht löschen und einen neuen setzen müssen. Ich habe alle meine Zustände mit schwebenden Aufträgen gefüllt. Ich denke, es sollte nicht schwer zu implementieren sein. Renat, wenn Sie dies lesen, antworten Sie bitte.
 
Bauleken:
drknn schrieb (a):


Mann, warum musst du ständig herumlaufen? Zeigen Sie mir eine normale Programmiersprache, die nicht über eine Funktion verfügt, die den Index des gewünschten Array-Elements zurückgibt. Komm schon, ich werde diese Funktion selbst schreiben, dann kann ich wenigstens das Array als Parameter an ein Unterprogramm übergeben.


Eine solche Funktion gibt es in Delphi nicht. :) Wenn es sie gibt, weiß ich nichts davon, denn es ist einfacher, sie selbst zu schreiben, als sie zu suchen oder nicht.

Die Algorithmen selbst zu implementieren ist übrigens kein "Workaround", sondern die Verwendung von Komponenten, Prozeduren, Bibliotheken und vorgefertigtem Code von Dritten. Dies ist eine Umgehung. Der wissenschaftliche Begriff dafür lautet "Lamerismus". :)
Die Entwickler haben bereits gesagt, dass sie eine Sprache für Programmierer und nicht für lahmarschige Programmierer entwickeln. :)
Sollten wir nicht überhaupt in Maschinencode programmieren? Warum all diese Hochsprachen und sogar Assembler? Mit so etwas Einzigartigem wie Maschinencode kann man alles machen, was man will :)


Jede Funktion, die viele Leute wollen, kann man in einer halben Stunde selbst machen, anstatt 3 Jahre zu warten, bis die Entwickler sie für einen machen. Dann wurden sie in eine separate Bibliothek geladen und einfach in jeden neuen Expert Advisor durch ein gewöhnliches Inlude eingefügt. Ist es so schwer, das zu durchdenken? Das ist ein Kindergarten. Die Sprache ist cool, es gibt viele Möglichkeiten für Kreativität. Aber wenn ein Mensch nicht kreativ ist, ist diese Sprache für ihn kontraindiziert. Er ist in vielen Dingen kontraindiziert, auch im Handel. :) Entschuldigen Sie die mögliche Abruptheit, ich konnte es nicht ertragen.
:))))))))))) Hat mich aufgeheitert - hat mich herzlich zum Lachen gebracht :))))))))) Danke. Nein, wirklich :)))))
Ich hätte mir nur gewünscht, dass ein Übergangsoperator hinzugefügt worden wäre. Der Rest ist für mich in Ordnung.

Wenn ich den OrderLots-Parameter im realen Handel ändern möchte, möchte ich ihn nicht löschen und einen neuen setzen müssen. Ich habe alle meine Zustände mit schwebenden Aufträgen gefüllt. Ich denke, es sollte nicht schwer zu implementieren sein. Renat, wenn Sie dies lesen, antworten Sie bitte.
Wenn Sie es lesen, antworten Sie mir bitte, aber könnten Sie mir bitte mehr darüber erzählen? Sie können eine Verkaufsposition ändern oder verstehe ich etwas nicht?