Entwicklung einer Bibliothek von API-Funktionen für MetaTrader 4 - Seite 6

 
<br / translate="no"> Beachten Sie auch, dass Omega die Definitionen aus der Datei Mforex.h "nicht kennt". D.h., wenn Sie z.B. die Funktion der Positionseröffnung aufrufen, sollten Sie den Operationscode für z.B. Verkaufen - 1 anstelle von OP_SELL usw. angeben. Weitere Einzelheiten finden Sie in der DevKit-Dokumentation, in der beschrieben wird, wie Omega mit externen Bibliotheken arbeitet.
Viel Glück!


Ich habe die Dokumentation für DevKit, aber ich habe dort nichts gefunden, Englisch ist ein dunkler Wald.
Aber es gibt einen Auszug aus dem mforex.n-Dokument,
Bestellungen
enum { OP_BUY=0,
OP_SELL,
OP_BUY_LIMIT,
OP_SELL_LIMIT,
OP_BUY_STOP,
OP_SELL_STOP,
OP_BALANCE,
OP_CREDIT
};

bedeutet das, dass, wenn
OP_BUY=0 dann
OP_SELL=1 und
OP_BUY_LIMIT=2 usw.?

Wenn ja, ist das nicht schwer.

Was ist mit dem Namen des Tools?
 
<br / translate="no"> Was ist mit dem Namen des Tools?

Sie haben sich das alles ziemlich genau ausgemalt. Der Toolname muss in Anführungszeichen stehen, da er unverändert an MT4 übergeben wird. Als ich die MFOREX-Bibliothek erstellte, wollte ich ursprünglich alle verfügbaren Paare auf die gleiche Weise nummerieren, aber dann stellte sich heraus, dass die Standardwege keine Liste der gehandelten Instrumente liefern können! Wir schreiben also einfach "USDCHF" oder "GBPUSD".
Sie können den Namen des Paares auch in einer String-Variablen übergeben.
Viel Glück!
 
Vielen Dank, mit dem Omega gibt es jetzt weniger Probleme.
Ich habe ein größeres Problem gefunden:
Der Expert Advisor in MT4 ist kaputt, d.h. er funktioniert nicht von selbst, er ist in der Liste grau, was ist zu tun?
Ich habe es erneut heruntergeladen, und es hat sich nicht geändert.

Ich habe es von HELP heruntergeladen:

Nachdem wir die Entwicklung abgeschlossen haben, müssen wir den Expert Advisor kompilieren. Rufen Sie dazu im EA-Editor den Menübefehl "Datei - Kompilieren" auf, drücken Sie F9 oder klicken Sie auf die Schaltfläche in der Symbolleiste. Als Ergebnis der erfolgreichen Kompilierung wird eine ausführbare Datei des Programms mit der Erweiterung *.EX4 erstellt, die automatisch im Ordner /EXPERTS abgelegt wird. Die Liste der erstellten Expert Advisors kann im Fenster "Navigator - Expert Advisors" des Client-Terminals eingesehen werden. Wenn die Kompilierung nicht erfolgreich ist, wird das Symbol des Expert Advisors ausgegraut. Es bedeutet, dass es nicht verwendet werden kann.
 
Als Ergebnis der erfolgreichen Kompilierung wird eine ausführbare Programmdatei mit der Erweiterung *.EX4 erstellt, die automatisch im Ordner /EXPERTS abgelegt wird. Die Liste der kompilierten EAs kann im Navigator-Advisors-Fenster des Client-Terminals eingesehen werden. Wenn die Kompilierung nicht erfolgreich ist, wird das Symbol des Expert Advisors ausgegraut. Es bedeutet, dass es nicht verwendet werden kann. <br / translate="no">

Sie liegen hier falsch. Der Expert Advisor ist voll funktionsfähig. Die graue Farbe bedeutet auch, dass es keine *.MQ4-Quelldatei gibt. Die meisten kommerziellen EAs werden auf diese Weise in kompilierter Form vertrieben. Versuchen Sie, die Quelle eines beliebigen Expert Advisors zu entfernen, und starten Sie das Terminal neu - der Expert Advisor wird dann grau.
Außerdem empfehle ich, die Datei Mem.dll durch eine neue Datei zu ersetzen. Letzteren habe ich auf die neue Version des 197er-Terminals umgestellt. Mem.dll wurde in den Dateien auf meiner Website bereits auf die neue Version geändert:
http://www.min2006.ru
Viel Glück!
 
Guten Tag, ich habe folgende Frage:
Wenn ich den Markt nach Märkten erschließen möchte, muss ich dann trotzdem einen Preis angeben?
 
Guten Tag, ich habe folgende Frage:<br/ translate="no"> Wenn ich den Markt nach Markt betreten möchte, muss ich dann immer noch einen Preis angeben?

Hallo, dies ist ein Standardverfahren. Alle Expert Advisors funktionieren so: Zuerst wird der aktuelle Preis ermittelt (TikKot-Funktion), und dann wird eine neue Order zu diesem Preis erstellt (NewPos). Wenn Sie eine Kauforder eröffnen, nehmen Sie den Briefkurs, und wenn Sie eine Verkaufsorder eröffnen, nehmen Sie den Geldkurs.
Sehen Sie sich das Beispiel auf meiner Website in C++ oder Delphi an. Dort finden Sie Varianten der Positionseröffnung.
Viel Glück!
 
Also gestern habe ich DLL in Omega den ganzen Tag mit verschiedenen Funktionen ausgeführt und festgestellt, dass Omega ständig von DLL hängen bleibt. Das Fenster mit der Computernummer erscheint und sogar ein paar, ich weiß nicht, ob dies ein Problem ist nur in der Demo oder was? Das Zahlenfenster stört mich also nicht wirklich, aber das Omega hängt und macht das Arbeiten unmöglich...
 
Also gestern habe ich DLL in Omega den ganzen Tag mit verschiedenen Funktionen ausgeführt und festgestellt, dass Omega ständig von DLL hängen bleibt. Das Fenster mit der Computernummer erscheint und sogar ein paar, ich weiß nicht, ob dies ein Problem ist nur in der Demo oder was? Das Fenster mit der Nummer stört mich also nicht wirklich, aber das Omega, das hängt, macht es unmöglich zu arbeiten... <br/ translate="no">

Ich kann nichts Konkretes beantworten. Ich habe die Bibliothek nicht mit Omega getestet. Offenbar liegt das Problem in einem falschen Funktionsaufruf der Bibliothek. Haben Sie Speicher für zurückgegebene Datenfelder reserviert? Ich kann Ihnen auch empfehlen, die Logs von MT4 und der Bibliothek selbst sorgfältig zu untersuchen (sie erstellt die Datei Protokol.dat, wenn sie funktioniert).
Das Fenster mit der Computernummer erscheint nur in der Demoversion. Viel Glück!
 
Haben Sie Speicherplatz für die zurückgegebenen Datensätze reserviert? <br / translate="no">


Wie wird das gemacht?
 
<br/ translate="no">Wie wird das gemacht?

Das ist ein Standardverfahren für jede Programmiersprache. Schauen Sie in der Omega-Dokumentation nach. Sie müssen ein Array für seine spätere Verwendung deklarieren. Um zum Beispiel die Historie von Kursen zu erhalten, benötigen Sie 2000-5000 Array-Elemente. Für das Array müssen wir vor der Operation Omega verwenden, um den erforderlichen Speicherplatz zuzuweisen.
Haben Sie gesehen, was in den Protokollen steht?
Grund der Beschwerde: