Discussione sull’articolo "Come Esportare Quotazioni da МetaTrader 5 ad Applicazioni .NET Utilizzando i Servizi WCF" - pagina 3

 
Ho incontrato alcune difficoltà nell'implementazione di quanto sopra. Ecco perché ve ne parlo, nel caso in cui qualcuno abbia problemi simili.


1) Se avete un terminale x64, molto probabilmente dovrete ricompilare il vostro progetto C++ in x64. Per essere sicuri, dovreste farlo in questo modo: Visual Studio -> Proprietà (del progetto C++) -> Configuration Manager -> e cambiarlo in x64 tramite l'elenco a discesa o <New...>. Compilare. Fatto. Se non compila, controllare i riferimenti del progetto, esaminare gli errori del compilatore.
2) Ho avuto problemi con l'EA, non si è nemmeno inizializzato. Me ne sono accorto solo quando ho disconnesso l'EA dal grafico, quando l'errore init è fallito (strano...). L'EA è caduto in uno Sleep infinito nella fase di inizializzazione ed era tutto in queste righe (in QService.mqh):

 QService::EnterCriticalSection()
{
   while (GlobalVariableCheck("QService_CriticalSection") > 0)
   Sleep(1);
   GlobalVariableTemp("QService_CriticalSection");

Dopo il debug e i vani tentativi di capire questo "Sleep(1)", ho sostituito il codice con:

QService::EnterCriticalSection()
{
   if(!GlobalVariableCheck("QService_CriticalSection"))
   GlobalVariableTemp("QService_CriticalSection");
}

A proposito, questo articolo vale anche per MT4. Anche se MT4 ha DDE, mi piace di più questo approccio. Tutto funziona alla grande.

P.S.: Grazie all'autore dell'articolo! Tutto va bene!
 
Non capisco, è scritto bene ma non funziona. QEXPORTWRAPPER non funziona su un terminale a 64 bit.
 
shelandr1:
Molto interessante... Grazie... Ma forse oggi ci sono opzioni più semplici*????

Certo che c'è: utilizzare la connessione tramite la capacità intrinseca del terminale. Si tratta di un canale PIPE.

https://www.mql5.com/ru/docs/files/fileopen

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Ho appena inviato un nuovo lavoro basato su questo articolo: https: //www.mql5.com/en/job/34392.

Non funziona nel mio ambiente MT5 64 bit...

Ottimo articolo!

Grazie

Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
Freelance service at MQL5.com: Make Visual Studio 2012 solution downloaded from article work with Metatrader 5 64 bits
  • www.mql5.com
Hi, I'm a C# developer and downloaded the code from the article "HOW TO EXPORT QUOTES FROM METATRADER 5 TO .NET APPLICATIONS USING WCF SERVICES" ( https://www.mql5.com/en/articles/27 ). The problem is that my machine is a Windows 64 bits with MetaTrader 5 64 bits installed and I had to change the compile configurations to 64 bits in Visual Studio 2012. Ok, it compiled normally, then I added one new method that aims to return a string to MT5 which i called ReadBroker2MeInstructions . Compiled...
 

Solo per conoscenza, ho scoperto cosa è successo nella mia macchina a 64 bit.

Dopo ore e ore di ricerche e debug, ho scoperto che un assembly di riferimento non veniva caricato, generando l'eccezione "System.IO.FileNotFoundException: Unable to load file or assembly 'QExport.Service, Version=1.0.5771.13857, Culture=neutral, PublicKeyToken=56996a45dd1e337b'".

Forse perché la dll non ha un file di configurazione, non lo so ancora, MT 5 non sapeva dove trovare l'assembly. Quindi cercava di trovarlo nel percorso di base (percorso in cui si trova metaeditor64.exe). Dopo aver cambiato la directory di output dei progetti di riferimento in quel percorso, ha funzionato alla perfezione.

 
sabe:

Ciao Joe,

C'è qualche trucco speciale per farlo funzionare su x64? L'ho appena compilato per x64, ma la dll si blocca con strani errori all'avvio.

Sabe, vedi la mia risposta qui sotto.

[]'s

 

Salve,


Ho testato il vostro file finito, tutto sembra buono in MT5. Ma non ci sono dati nel WinClient.







 

Mi chiedo se esista un progetto simile con il precaricamento delle barre storiche. Vorrei aggiungere il tutto a Lightweight-Chart e utilizzare comodamente il grafico.