Discussione sull’articolo "Come Esportare Quotazioni da МetaTrader 5 ad Applicazioni .NET Utilizzando i Servizi WCF"
Ben fatto! Non posso dire altro. Purtroppo, la connessione MQL5 - .NET richiede ancora un intermediario, il che rende l'intera costruzione troppo macchinosa.
Purtroppo la comunicazione MQL5 - .NET richiede ancora un intermediario, il che rende l'intera costruzione troppo macchinosa.
Sono d'accordo. A proposito, per le interazioni semplici c'è una cosa fantastica: Inverse P/Invoke - interazione senza intermediari.
Ho anche provato a usare ILMerge per unire tutti e 3 gli assiemi in QExportWrapper.dll - non ha funzionato, o meglio ha funzionato, ma dopo l'unione da mql5 non vede le funzioni esportate
Ciao!
Ho copiato i vostri file sorgente e li ho ricompilati per eseguirli.
Ma ho avuto un crash della MT5.
Come posso eseguire il debug / risolvere il problema?
Grazie!
1. Per prima cosa, provare a utilizzare i file compilati, situati nell'archivio bin.rar
Ad esempio, la directory del terminale client MetaTrader5 è "C:\Program Files\MetaTrader 5\".
Creiamo una nuova cartella per l'esperto QExporter.mq5, ad esempio"QE", nella cartella "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)
Dopo la compilazione di QExporter.mq5, il file compilato QExporter.ex5 apparirà nella cartella:
C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QExporter.ex5 (6706 byte)
Dopo averlo collegato al grafico EURUSD,H1 e aver eseguito WindowsClient.exe, ho ottenuto la seguente immagine:
L'ho testato a buld 249 (18 febbraio).
Ho copiato i vostri file sorgente e li ho ricompilati per eseguirli.
Ma ho avuto un crash della MT5.
Come posso eseguire il debug/risolvere il problema?
Ciao,
Prima di tutto, cercherei di eseguire il debug dei sorgenti di mql5 per trovare la funzione che causa l'errore - impostare i punti di interruzione prima di tutte le funzioni della dll che chiamano. Purtroppo non ho potuto collegare la dll a terminal.exe per il debug perché il terminale si è bloccato. Forse nelle nuove versioni è possibile
Inoltre vorrei sapere quale sistema operativo utilizzate. Io ho un sistema operativo a 32 bit e quindi non ho avuto la possibilità di verificarlo su sistemi a 64 bit.
Avete provato a eseguire i file compilati?
E un'altra cosa, provate a eseguire ConsoleService e ConsoleClient nella soluzione. Forse il problema non è legato a mql o alla libreria wrapper.
Infine, suppongo che abbiate dimenticato di creare (o copiare) il file terminal.exe.config. Provate a farlo.
È una buona notizia per MQL5 che può utilizzare la wrap dll di NET.
Perché Mql4 non può utilizzare questa modalità per comunicare con le DLL avvolte da Net?
È una buona notizia per MQL5 che può utilizzare la wrap dll di NET.
Perché Mql4 non può utilizzare questa modalità per comunicare con le DLL wrappate di Net?
Grazie mille per l'esempio postato. Da una settimana (la sera) sto lottando per creare una libreria per lo scambio di dati tra.net e mql5.
Non sono bravo in C++ e questo post mi è stato molto utile.
C'è solo un problema. Dopo la compilazione sotto x64, l'inizializzazione del servizio dà un errore.
ExportService^ service = gcnew ExportService(serverName); // <- ServiceManaged.cpp
Il processo si "chiude" senza alcuna spiegazione.
Come posso inserire questo errore nel log per ulteriori analisi? O forse avete già riscontrato questo problema e c'è una soluzione ????.
Sono riuscito a farlo funzionare con MT5 a 32 bit e, dopo averlo ricompilato per x64, sono riuscito a farlo funzionare con MT5 a 64 bit.... tuttavia, quando provo a eseguire l'EA nel tester della strategia, entrambi si bloccano in modo spettacolare.
Vorrei usarlo per esportare alcuni dati di prezzi e indicatori in una tabella di database per fare alcune analisi con software esterni..... idee su cosa potrebbe causare questo crash? Questa è la soluzione più vicina a quella che ho trovato finora.
Joe

- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Il nuovo articolo Come Esportare Quotazioni da МetaTrader 5 ad Applicazioni .NET Utilizzando i Servizi WCF è stato pubblicato:
Vuoi organizzare l'esportazione delle quotazioni da MetaTrader 5 alla tua applicazione? La giunzione MQL5-DLL permette di creare tali soluzioni! Questo articolo ti mostrerà uno dei modi per esportare le quotazioni da MetaTrader 5 ad applicazioni scritte in .NET. Per me è stato più interessante, razionale e facile implementare l'esportazione dei preventivi utilizzando proprio questa piattaforma. Sfortunatamente, la versione 5 non supporta ancora .NET quindi, come ai vecchi tempi, utilizzeremo win32 dll con supporto .NET come interlayer.
Ho creato un esempio di tabella tick utilizzando il servizio. Il progetto è allegato nell'archivio e denominato WindowsClient. Il risultato del suo lavoro è presentato di seguito:
Autore: Alexander