Discussione sull’articolo "Comunicare con MetaTrader 5 utilizzando pipe denominate senza utilizzare DLL" - pagina 2

 
Reshetov:
................

Da un lato ci siamo liberati della dll, ma dall'altro, ancora una volta, sono necessarie stampelle in altri linguaggi di programmazione per l'applicazione.

Lo svantaggio del metodo proposto è che è adatto solo ai programmatori che sviluppano applicazioni in linguaggi diversi da MQL. ...................

È anche possibile disegnare un pappagallo in MQL5. Ecco un articolo con i codici.
 
MetaDriver:
È possibile disegnare un pappagallo anche in MQL5. Ecco статья, с кодами.

Dovreste almeno leggere il titolo di questo argomento, per motivi di interesse.

Non più. Vedere https://www.mql5.com/ru/forum/7806/page3.

Renat:
Si noti solo che si tratta di un supporto client e che le connessioni al server non possono essere create nel terminale.
Использование MQL5 для торговли на МТ4
Использование MQL5 для торговли на МТ4
  • www.mql5.com
Подскажите, можно ли каким-нибудь образом извернуться, чтобы с помощью программ на MQL5 торговать у брокера, поддерживающего МТ4?
 
Lo farò in silenzio. Non dirlo a nessuno. Shhhh.....
 
MetaDriver:
Terrò un profilo basso. Non dirlo a nessuno. Shhhh.....

Oh, tu. Gli sviluppatori hanno lavorato sodo, hanno creato contatti con i clienti, hanno scritto l'articolo.

E voi cosa fate? Invece di mollare tutto, di imparare il C e di usare tutta questa roba apertamente e onestamente, ve ne state in silenzio e nel profondo del sottosuolo a caccia di connettori attraverso le dll.

Non importa quanto (non puntiamo il dito) gli diate da mangiare, lui vuole ancora usare le dll nel terminale.


Gli eroi normali fanno sempre una deviazione © N. Korostylev

 
Reshetov:

Scrivete il vostro gateway in MQL5 basandovi sugli esempi dell'articolo sopra citato. E potete scrivere gli script client in MQL puro.

Tuttavia, non capisco perché si debba adottare una soluzione così unilaterale. Per coloro che scriveranno il proprio server in C, non è un problema collegare la dll, ma il resto delle funzionalità attuali non sarà sufficiente. A meno che la dll non rallenti molto il lavoro (cosa di cui dubito).

 
Si prega di prestare attenzione all'argomento e all'essenza dell'articolo.

Si tratta della possibilità di connettersi dal terminale a sistemi di terze parti senza utilizzare le DLL. L'obiettivo è stato raggiunto: ora esiste un modo semplice per connettersi e scambiare dati full-duplex.

La lamentela per il fatto che ora è necessario scrivere un'applicazione di terze parti è fuori luogo.
 
Renat:
Prestate attenzione all'argomento e alla sostanza dell'articolo.

Si tratta della possibilità di connettersi dal terminale a sistemi di terze parti senza utilizzare le DLL. Il compito è stato raggiunto: ora esiste un modo semplice per connettersi e scambiare dati full-duplex.

La lamentela di dover scrivere un'applicazione di terze parti è fuori luogo.
Renat, quando hai intenzione di creare delle pipe nella MT4?
 
Renat:
Prestare attenzione all'argomento e alla sostanza dell'articolo.

Si tratta della possibilità di connettersi dal terminale a sistemi di terze parti senza utilizzare le DLL. Il compito è stato raggiunto: ora esiste un modo semplice per connettersi e scambiare dati full-duplex.

La lamentela di dover scrivere un'applicazione di terze parti è fuori luogo.

In effetti, è vero, perché non è dichiarato che con metodi standard, cioè senza stampelle di terze parti, la comunicazione sarà fornita, ad esempio, tra applicazioni MQL.

"Molti sviluppatori si trovano ad affrontare lo stesso problema: come entrare nella sandbox del terminale di trading senza utilizzare DLL non sicure".

Non ci sono rivendicazioni qui e non dovrebbero essercene.

Ma d'altra parte, il compito più richiesto nel piano applicativo di fornire la comunicazione tra le applicazioni scritte in MQL è risolto in modo molto efficace utilizzando le DLL non sicure sugli esempi di questo articolo. Poiché in quell'articolo, per implementare la comunicazione tramite messaggi di stringa, è sufficiente avere la conoscenza e l'esperienza della programmazione in MQL5 (il resto del lavoro, cioè le stampelle di terze parti tramite le API di Windows, l'autore dell'articolo l'ha già fatto e pubblicato come classe già pronta).

 
Credo che la questione della comunicazione tra terminali abbia una piccola parte di applicazione.

Ma la comunicazione con sistemi esterni è più importante e applicabile. È per questo che è stato aperto il canale sicuro.

E si noti che l'intera implementazione rientra nel quadro delle operazioni standard sui file. Non è stato necessario introdurre nuove funzioni.
 
komposter:

Scrivete il vostro gateway in MQL5 sulla base degli esempi riportati nell'articolo precedente.

Teoricamente è possibile, ma in pratica sarà una stampella, e anche simplex.

Ho trovato alcune informazioni su come realizzare gateway con costi minimi. È emerso che il C++ ha una classe di flussi NamedPipeServerStream(String)

Se la si chiama, viene creato un canale con nome. Poi possiamo attendere una connessione chiamando il metodo IsConnected e creare un secondo canale denominato. Aspettiamo che un altro client si connetta al secondo canale e reindirizziamo le informazioni dal primo stream al secondo usando il metodo CopyToAsync(Stream). Dopodiché dobbiamo avviare un sottoprocesso e, sempre con CopyToAsync(Stream), reindirizzare le informazioni dal secondo stream al primo. In questo modo entrambi i canali nominati saranno collegati in duplex.

Sembra facile, ma non ho esperienza con il C++. Se si trattasse di Java, ci vorrebbe mezz'ora di debug.

Finora ho trovato un esempio adatto per la riprogettazione: http://msdn.microsoft.com/en-us/library/bb546085.aspx. Proverò a costruire un gateway full-duplex sulla sua base con calma. E se funziona?

NamedPipeServerStream Constructor (String) (System.IO.Pipes)
NamedPipeServerStream Constructor (String) (System.IO.Pipes)
  • msdn.microsoft.com
Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)