Diskussion zum Artikel "Exportieren von Angeboten aus MetaTrader 5 in .NET-Anwendungen mithilfe von WCF-Services"

 

Neuer Artikel Exportieren von Angeboten aus MetaTrader 5 in .NET-Anwendungen mithilfe von WCF-Services :

Möchten Sie den Export von Angeboten aus MetaTrader 5 in Ihre eigene Anwendung aktualisieren? Mit der MQL5-DLL-Verbindung können Sie solche Lösungen erschaffen! Dieser Beitrag zeigt Ihnen eine der Möglichkeiten zum Exportieren von Angeboten aus MetaTrader 5 in .NET-Anwendungen. Für mich war es interessanter, sinnvoller und einfacher, den Export von Angeboten mithilfe dieser Plattform umzusetzen. Leider wird .NET von Version 5 weiterhin nicht unterstützt, sodass wir wie in den alten Tagen win32 dll mit .NET-Unterstützung als Zwischenlösung nutzen werden.

Autor: Alexander

 

Gut gemacht! Mehr kann ich dazu nicht sagen. Leider erfordert die MQL5 - .NET Verbindung immer noch einen Vermittler, was die ganze Konstruktion zu umständlich macht.

 
Itso:

Leider erfordert die Kommunikation zwischen MQL5 und .NET immer noch einen Vermittler, was die ganze Konstruktion zu umständlich macht.

Ich stimme zu. Übrigens, für einfache Interaktionen gibt es eine tolle Sache - Inverse P/Invoke - Interaktion ohne Zwischenhändler.

Ich habe auch versucht, ILMerge zu verwenden, um alle 3 Assemblies in QExportWrapper.dll zusammenzuführen - es hat nicht funktioniert, oder besser gesagt, es hat funktioniert, aber nach dem Zusammenführen von mql5 sieht es die exportierten Funktionen nicht

 

Hallo!

Ich habe Ihre Quelldateien kopiert und neu kompiliert, um sie auszuführen.

Aber ich hatte einen Absturz des MT5.

Wie kann ich das Problem beheben / Fehlerbehebung auf diese?

Danke!

 

1. Versuchen Sie zunächst, die kompilierten Dateien zu verwenden, die sich im Archiv bin.rarbefinden

Das Verzeichnis des MetaTrader5-Client-Terminals ist zum Beispiel "C:\Programme\MetaTrader 5\"

Erstellen wir einen neuen Ordner für den Experten QExporter.mq5, zum Beispiel"QE", im Ordner "C:\Program Files\MetaTrader 5\MQL5\Experts\"

C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QExporter.mq5 (1615 bytes)
C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QService.mqh (4380 bytes)

C:\Program Files\MetaTrader 5\MQL5\Libraries\QExport.dll (5632 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExport.Service.dll (7168 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExportWrapper.dll (27648 bytes)

C:\Program Files\MetaTrader 5\WindowsClient\QExport.Client.dll (6656 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\QExport.dll (5632 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\WindowsClient.exe (12288 bytes)

Nach der Kompilierung von QExporter.mq5 erscheint dann die kompilierte Datei QExporter.ex5 im Verzeichnis:

C:\Programmdateien\MetaTrader 5\MQL5\Experts\QE\QExporter.ex5 (6706 Bytes)

Nachdem ich es an den Chart EURUSD,H1 angehängt und WindowsClient.exe ausgeführt habe, habe ich das folgende Bild erhalten:

Ich habe es mit dem Kurs 249 (18 Feb) getestet.

 
sgfxtrader:

Ich habe Ihre Quelldateien kopiert und neu kompiliert, um sie auszuführen.

Aber ich hatte einen Absturz des MT5.

Wie kann ich dieses Problem beheben?

Hallo,

Zunächst einmal würde ich versuchen, die mql5-Quellen zu debuggen, um die Funktion zu finden, die den Fehler verursacht - setzen Sie Haltepunkte vor allen dll-Funktionen aufrufen. Leider konnte ich die dll nicht an terminal.exe zum Debuggen anhängen, weil terminal abgestürzt ist. Vielleicht ist es in neuen Builds möglich.

Außerdem möchte ich wissen, welches Betriebssystem du verwendest. Ich habe ein 32bit Betriebssystem und konnte es daher nicht auf 64bit Systemen überprüfen.

Und haben Sie versucht, kompilierte Dateien auszuführen?

Und noch etwas, versuchen Sie bitte, ConsoleService und ConsoleClient in der Lösung auszuführen. Vielleicht ist das Problem nicht mit mql oder der Wrapper-Bibliothek verbunden.

Ich vermute, Sie haben einfach vergessen, die Datei terminal.exe.config zu erstellen (oder zu kopieren). Bitte versuchen Sie es.

 

Es ist eine gute Nachricht für MQL5 kann wrap dll von NET verwenden.

Warum Mql4 kann nicht solchen Modus verwenden, um mit Net gewickelt DLL comm?

 
DxdCn posted # :

Es ist eine gute Nachricht für MQL5 kann wrap dll von NET verwenden.

Warum Mql4 nicht verwenden können, solchen Modus mit Net umhüllte DLL comm?

Es ist möglich, Hybrid-DLL in Mt4 zu verwenden, das Problem ist, dass Mql4 keine Strukturen hat. Aber seine nicht so große Sache, können Sie ein paar Parameter anstelle von Struktur übergeben.
 
sgfxtrader:

Hallo!

Ich habe Ihre Quelldateien kopiert und neu kompiliert, um sie auszuführen.

Aber ich hatte einen Absturz des MT5.

Wie kann ich das Problem beheben / Fehlerbehebung auf diese?

Vielen Dank!


Ich habe das gleiche Problem.

2010.07.27 12:11:09 Experten Initialisierung von QExporter(EURUSD,H1) fehlgeschlagen

 

Vielen Dank für das gepostete Beispiel. Seit einer Woche (abends) kämpfe ich damit, eine Bibliothek für den Datenaustausch zwischen .net und mql5 zu erstellen.

Ich bin nicht gut in C++ und dieser Beitrag war sehr nützlich für mich.

Es gibt nur ein Problem. Nach der Kompilierung unter x64 gibt die Initialisierung des Dienstes einen Fehler.

ExportService^ service = gcnew ExportService(serverName); // <- ServiceManaged.cpp 

Der Prozess wird einfach "beendet", ohne jegliche Erklärung.

Wie kann ich diesen Fehler zur weiteren Analyse in das Protokoll ausgeben? Oder sind Sie vielleicht schon auf dieses Problem gestoßen und es gibt eine Lösung ????.

 

Ich schaffte es, sowohl diese Arbeit mit 32bit MT5 zu bekommen und, nach recompling für x64, schaffte es, es mit 64bit MT5 zu bekommen....jedoch, wenn ich versuche, die EA in der Strategie-Tester laufen sie beide spektakulär abstürzen.

Ich möchte damit einige Preis- und Indikatordaten in eine Datenbanktabelle exportieren, um einige Analysen mit externer Software durchzuführen.....irgendwelche Ideen, was diesen Absturz verursachen könnte? Das ist das, was einer funktionierenden Lösung bisher am nächsten gekommen ist.


Joe