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

 
Ich danke Ihnen! Sehr nützliche Einführung in wcf und mql5
 

ich habe auch einen Absturz im Strategietester. im normalen Modus ist es ok.

Hat schon jemand eine Lösung?

 
Vielen Dank für Ihre großartige Arbeit!
 

Tolle Arbeit Alexander. Ich hatte noch nie in C# programmiert, und ich war auf der Suche nach MT5 Zitate zu fließen durch in Excel ohne DDE-Server.

Ich habe es schließlich zum Laufen gebracht, indem ich deinen Code mit MT5 32 Bits optimiert habe. Nächster Schritt x64.

SM

 
Ich habe kürzlich eine weitere kostenlose Möglichkeit gesehen, C# für den MetaTrader zu programmieren
TradePlatform.NET
 
Ich bin derzeit versuchen, meine eigenen C++-Wrapper für meine c# dll für mql5 Interop zu implimentieren. Ich habe ein Problem mit dem Hinzufügen von c# dll-Referenz zu meiner C++-Bibliothek. Könnten Sie bitte den folgenden Satz erläutern: "...add the CLR support, System.dll, QExport.dll, Qexport.Service.dll to the build reference". Ich konnte meine dll mit dem regasm-Dienstprogramm registrieren, sie zum gac hinzufügen und eine .tlb-Typdefinitionsdatei erhalten. Mein Problem ist, dass ich in dem von Ihnen zur Verfügung gestellten Quellcode keine #import- oder #include-Anweisungen finden kann. Ihr Projekt scheint Ihre DLL-Bibliotheken auf irgendeine mysteriöse Weise zu referenzieren. Könnte mir bitte jemand erklären, wie man einen Verweis auf eine .NET dll zu einer C++-Bibliothek hinzufügt? Auch wenn es sich nicht um eine reine mql5-Frage handelt, bezieht sie sich direkt auf den Artikel. Ich recherchiere jetzt schon eine ganze Weile zu diesem Thema und kann immer noch nicht verstehen, wie eine C++-Bibliothek .NET dlls in ihren "External Dependencies" ohne #import-Anweisungen haben kann. Dies ist meine erste Begegnung mit C++ und bisher war es nicht angenehm, ich dachte sogar daran, die .dll in .lib zu konvertieren und einen Verweis darauf hinzuzufügen, aber bevor ich etwas tue, beschloss ich, einen COM-Spezialisten um Rat zu fragen. Ich verwende Windows 8 Ultimate x64 und kompiliere meine c# dlls mit VS2012 Ultimate. Bitte helfen Sie dem Neuling.
How to Exchange Data: A DLL for MQL5 in 10 Minutes
  • 2010.01.27
  • MetaQuotes Software Corp.
  • www.mql5.com
Now not so many developers remember how to write a simple DLL, and what are special features of different system binding. Using several examples, I will try to show the entire process of the simple DLL's creation in 10 minutes, as well as to discuss some technical details of our binding implementation. I will show the step-by-step process of DLL creation in Visual Studio with examples of exchanging different types of variables (numbers, arrays, strings, etc.). Besides I will explain how to protect your client terminal from crashes in custom DLLs.
 
Burton:

Ich bin derzeit versuchen, meine eigenen C++-Wrapper für meine c# dll für mql5 Interop zu implementieren. Ich habe ein Problem mit dem Hinzufügen von c# dll-Referenz zu meiner C++-Bibliothek. Könnten Sie bitte den folgenden Satz erläutern: "...add the CLR support, System.dll, QExport.dll, Qexport.Service.dll to the build reference". Ich konnte meine dll mit dem regasm-Dienstprogramm registrieren, sie zum gac hinzufügen und eine .tlb-Typdefinitionsdatei erhalten. Mein Problem ist, dass ich keine #import- oder #include-Anweisungen in dem von Ihnen bereitgestellten Quellcode finden kann. Ihr Projekt scheint Ihre DLL-Bibliotheken auf irgendeine mysteriöse Weise zu referenzieren. Könnte mir bitte jemand erklären, wie man einen Verweis auf eine .NET dll zu einer C++-Bibliothek hinzufügt? Auch wenn es sich nicht um eine reine mql5-Frage handelt, bezieht sie sich direkt auf den Artikel. Ich recherchiere jetzt schon eine ganze Weile zu diesem Thema und kann immer noch nicht verstehen, wie eine C++-Bibliothek .NET dlls in ihren "External Dependencies" ohne #import-Anweisungen haben kann. Dies ist meine erste Begegnung mit C++ und bisher war es nicht angenehm, ich dachte sogar daran, die .dll in .lib zu konvertieren und einen Verweis darauf hinzuzufügen, aber bevor ich etwas tue, beschloss ich, einen COM-Spezialisten um Rat zu fragen. Ich verwende Windows 8 Ultimate x64 und kompiliere meine c# dlls mit VS2012 Ultimate. Bitte helfen Sie dem Neuling.
Dummerweise habe ich festgestellt, dass ich c# dlls aus einem C++-Projekt referenzieren kann, indem ich mit der rechten Maustaste darauf klicke und im Dialogfeld Verweise... wähle. Es gibt so viel Mist da draußen im Web.
 
Das ist sehr interessant, danke. Aber vielleicht gibt es heute einfachere Möglichkeiten.
 
shelandr1:
Sehr interessant... Vielen Dank... Aber vielleicht gibt es heute einfachere Wege*...

Der Artikel ist gut, um über WCF für diejenigen, die nicht mit der Technologie vertraut sind zu erzählen. Übrigens, ich habe die WCF-Leistung über das Internet auf der Strecke Peter - Odessa überprüft, ich bekam eine anständige Geschwindigkeit von etwa 14000 bilateralen Transaktionen/Sek. mit 1kB-Paketen. Ich persönlich mag die Technologie für seine objektorientierte, das heißt, nicht ein Strom von Bytes übertragen wird (obwohl Sie es tun können), aber Instanzen von Klassen, das ist am empfangenden Ende nicht brauchen, um diesen Strom zu decodieren.

Und zum Thema Zitate - es ist einfacher, Memory Mapping zu verwenden. Wir starten einen separaten Task mit einem Mutex in einer .NET-Anwendung, MQL4 lädt Daten in den Speicher und setzt den Mutex zurück, woraufhin die Anwendung die Daten liest. Das ist einfacher und schneller, und man braucht keine DLL. Es ist nur notwendig, System-DLLs in MQL4 hinzuzufügen, um Mapping und Mutexe zu unterstützen, es gab kürzlich einen Artikel zu diesem Thema.

 
joeykruger:

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

Hallo Joe,

Gibt es einen speziellen Trick, um das Programm auf x64 zum Laufen zu bringen? Ich habe es gerade für x64 kompiliert, aber die DLL stürzt beim Starten mit seltsamen Fehlern ab.