Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Was wollen Sie damit erreichen? Um ehrlich zu sein, verstehe ich das nicht. Zuerst dachte ich, es sei ein Rahmenwerk vorgesehen, aber nein, keine Wrapper-Klassen für Indikatoren, Aufträge, Standardalgorithmen für die Entscheidungsfindung, nichts. Viel lesbarer ist zwar dieses Konstrukt: fast.Get(2)>=slow.Get(1); (nur als Beispiel), aber die Erklärung:
CMA fast=new CMA(NULL,0,12,...);
CMA slow=new CMA(NULL,0,100,...);
Jetzt können wir darüber diskutieren, während Sie, IMHO, auf der Stelle trampeln.
z. B. statt fast.Get(2)>=slow.Get(1); ist dies ein ganz legaler und funktionierender Code:
table[FAST_MA][1] >=table[SLOW_MA][2]
Es funktioniert wie eine Tabellenkalkulation mit Excel. Sie wird in einer Tabelle zusammengefasst, nicht durch einzelne Griffe, da die Daten (Formeln) voneinander abhängig sein können.
Das ist möglich (ich habe es nur noch nicht in einer bestimmten Bibliothek getan):
fast=table[FAST_MA]; slow=table[SLOW_MA];
und dann ist schnell[2]>langsam[1] noch einfacher zu lesen
und alle internen Berechnungen werden "bei Bedarf" durchgeführt.
auch z.B. anstelle von fast.Get(2)>=slow.Get(1); ganz legaler und funktionierender Code:
table[FAST_MA][1] >=table[SLOW_MA][2]
es funktioniert wie bei einer Tabellenkalkulation, bei Excel. Sie wird in einer Tabelle zusammengefasst, nicht durch einzelne Griffe, da die Daten (Formeln) voneinander abhängig sein können.
Das ist möglich (ich habe es nur noch nicht in einer bestimmten Bibliothek getan):
fast=table[FAST_MA]; slow=table[SLOW_MA];
und dann liest schnell[2]>langsam[1] noch einfacher
und alle internen Berechnungen werden "bei Bedarf" durchgeführt
Ich stimme zu, dass es sehr schwierig ist, Ihren Code zu lesen, selbst wenn Sie die Sprache beherrschen.
Diese Regel gilt eigentlich für jeden Code von Dritten. Die Frage ist nur, welcher Code nicht schwer, aber leichter zu lesen ist.
Und hier ist es einfacher, fast immer MQL4-Code zu lesen und zu bearbeiten. Die Entwickler haben es einmal erraten.
Diese Regel gilt eigentlich für jeden Code von Dritten. Die Frage ist nur, welcher Code nicht schwierig, aber leichter zu lesen ist.
Und es ist einfacher zu lesen und zu bearbeiten fast immer MQL4-Code. Die Entwickler haben es einmal erraten.
Aber lassen Sie mich Ihnen eine Frage stellen. Was war die Vermutung? Standard C/C++, mit Ausnahme spezifischer Abfragen in Bezug auf Handel und Diagramme, kann als "windows.h" in C++ betrachtet werden.
Also, Respekt an die Entwickler, dass sie das Rad nicht neu erfunden haben, obwohl das Verbot von Links ein eindeutiges Minus ist, konnte ich mich nicht freuen, als ich in C/C++ nach mql fiel. Deshalb, wenn ein Wunder geschieht, vielleicht sollten Sie in Erwägung ziehen, als Alternative, wie C # usafe, vor allem für Leute wie mich, wie wenn Sie die Wand zu schlagen wollen, töten Sie sich, wir haben Sie gewarnt.
Lassen Sie mich Ihnen eine Frage stellen. Wie lautet die Vermutung?
Kodobase ist voll von MT5 EAs, die Remakes von MT4 EAs sind. Vergleichen Sie den Code des Originals und des Remakes.
Es ist natürlich viel einfacher, die Logik des MT4-Originals zu verstehen. Aber es ist noch einfacher, wenn man etwas in TS korrigieren muss. Nicht umsonst ist MQL4 ein Standard für die Diskussion von Handelsalgorithmen in Foren auf der ganzen Welt. Keine andere Sprache, sondern MQL4. Und es hat eine große Rolle bei der Popularität von MT4 gespielt, nicht umgekehrt.
Und wenn wir über MT5 Konvertierungen sprechen, sind sie krumm - sie funktionieren nicht immer. Ein einfaches Beispiel. Sie senden eine Aufforderung zur Schließung einer Position, erhalten aber einen Handelsauftrag, anstatt die Position zu schließen. Es gibt eine Reihe von Tricks, die gelöst werden müssen, um zum echten Konto zu gelangen. Mit MT4 ist das einfach und zuverlässig.
Die kodobase ist voll von MT5 EAs, die Remakes von MT4 EAs sind. Vergleichen Sie den Code des Originals und des Remakes.
Offensichtlich ist es viel einfacher, die Logik des MT4-Originals zu verstehen. Aber es ist noch einfacher, wenn man etwas in TS korrigieren muss. Nicht umsonst ist MQL4 ein Standard für die Diskussion von Handelsalgorithmen in Foren auf der ganzen Welt. Keine andere Sprache, sondern MQL4. Und es hat eine große Rolle bei der Popularität von MT4 gespielt, nicht umgekehrt.
Und wenn wir über MT5 Konvertierungen sprechen, sind sie krumm - sie funktionieren nicht immer. Ein einfaches Beispiel. Sie senden eine Aufforderung zur Schließung einer Position, erhalten aber einen Handelsauftrag, anstatt die Position zu schließen. Es gibt eine Reihe von Tricks, die gelöst werden müssen, um zum echten Konto zu gelangen. Mit MT4 ist das einfach und zuverlässig.
Es ist also unsinnig, mit Ordnungen/Stellungen in Analogie zu arbeiten. Ich habe eine Wrapper-Klasse für sie in mql4 und zwei verschiedene in mql5, weil es in mt4 eine Entität und in mt5 zwei verschiedene sind. Jetzt habe ich vor, die Wrapper-Klasse auf sie zu implementieren und vergessen, mit Bestellungen zu arbeiten, wie ich vor einem halben Jahr auf mql4 tat.
Das ist der Grund, warum wir das Gleiche in Mathematik lernen sollten und nicht meckern, alles funktioniert gut und geht gut, aber zuerst müssen wir die Handelsmechanik von Börse und Forex lernen und ihre Unterschiede berücksichtigen. Alles, was dazu nötig ist, haben die Entwickler in den Docks angegeben und beschrieben, und dann liegt es an Ihnen.
Versuchen Sie, Ihren Horizont zu erweitern, denn was Sie geschrieben haben, ist wirklich zum Jammern.
Es scheint eine Krücke zu sein. Neben Wischpuffern, die das Terminal ohnehin erstellt, fügen wir auch Arrays doppelt hinzu. Ich verstehe, dass Sie gehen, um Speicher für Sie auf die volle Tiefe der Geschichte zu reservieren (für M1 USHORT_MAX, wenn ich mich richtig erinnere *8 Byte) oder planen Sie, teure ArrayResize regelmäßig in den Prozess der Operation verwenden?
Ich weise ihnen natürlich Speicherplatz zu. Nur so tief, wie es für Berechnungen und Fehlersuche erforderlich ist. In dem vorliegenden Fragment sind es 30, was mehr als genug ist. Wenn es irgendwo notwendig sein wird, z.B. die Standardabweichung der Tiefe 50 zu berechnen, dann sollte der Cache vergrößert werden. Und das nur, um die Berechnungen zu beschleunigen.
Versuchen Sie, Ihren Horizont zu erweitern, denn was Sie geschrieben haben, ist wirklich zum Jammern.
Mir geht es gut, aber so ist die Verbindung zwischen Position und Auftrag in mql5 implementiert (als Teil der letzten Arbeit war es im Prinzip in dieser Form bereits in der Bibliothek für Hedge-Konten enthalten).