Discussione sull’articolo "Una soluzione senza DLL per comunicare tra i terminali MetaTrader 5 utilizzando le Named Pipe" - pagina 3

 
Tenendo conto del fatto che mql4/5 non ha la possibilità del multithreading, fare un server su mql4/5 è come guardare un televisore a tubo (sembra funzionare, ma la sensazione non è la stessa. Per questo motivo è meglio scrivere un server separato e usarlo per trasferire i dati tra i programmi mql.
 
Salve, questo prodotto è ancora funzionante? In caso contrario, è possibile aggiornarlo per farlo funzionare con l'ultima build di MT5? In questo momento sta lanciando un 'Access Violation'.
 

Ho anche riscontrato errori di violazione degli accessi quando ho chiamato i metodi writeTick, readTick... e così via. In allegato trovate il file CNamedPipes corretto.

Ho anche aggiunto il metodo WriteDouble alla classeCNamedPipe :

#import "kernel32.dll"
...
int WriteFile(ulong fileHandle,double &var,int bytes,int &numOfBytes,ulong overlapped);
...
#import

...

bool CNamedPipe::WriteDouble(double data)
  {
   int data_size = sizeof(data);
//--- controllo dei parametri
   if(!data || data_size<1) return(false);

//--- inviare i dati
   int written;
   if(!WriteFile(hPipe,data,data_size,written,NULL) || written!=data_size)
      return(false);
//--- ok
   return(true);
  }


Nota a margine: per leggere/scrivere sul lato client (ad esempio da un altro terminale Metatrader), ho utilizzato la libreria standard MQL5 FilePipe. Gli esempi di utilizzo possono essere scaricati qui:


https://www.mql5.com/it/articles/503

Communicating With MetaTrader 5 Using Named Pipes Without Using DLLs
Communicating With MetaTrader 5 Using Named Pipes Without Using DLLs
  • www.mql5.com
Many developers face the same problem - how to get to the trading terminal sandbox without using unsafe DLLs. One of the easiest and safest method is to use standard Named Pipes that work as normal file operations. They allow you to organize interprocessor client-server communication between programs. Take a look at practical examples in C++ and MQL5 that include server, client, data exchange between them and performance benchmark.
File:
 
lavoro fantastico
 
È passato un po' di tempo da quando c'è stato un aggiornamento qui... Vedo un errore di "Access Violation" quando collego l'indicatore al grafico. Immagino che non ci sia modo di farlo funzionare.