Non mi interessano i trucchi, ma una caratteristica standard, visto che è stata dichiarata ufficialmente. Per esempio, ci sono suggerimenti negli articoli per farlo attraverso l'esportazione di codice ingestibile https://www.mql5.com/ru/articles/249. Ma per quanto ho capito, l'integrazione tramite decompilazione è una tecnica di hacking... Ho letto da qualche parte su un forum che MQ ha fatto causa agli hacker. Quindi, questo metodo sarebbe giusto, come argomento, in una tale causa...)
В данной статье я представил различные методы взаимодействия между кодом, написанным на MQL5, и управляемым кодом на C#. Также я подготовил несколько примеров маршалинга структур MQL5 для C# и примеров вызова экспортированных функций DLL в скриптах на MQL5. Приведенные примеры могут служить основой для дальнейших исследований аспектов написания DLL в управляемом коде. Эта статья также открывает двери для использования в MetaTrader 5 множества библиотек, уже реализованных на C#.
Scrivete una dll non-dotnet e usatela normalmente nel terminale come le altre dll. Per supportare le librerie dotnet, usiamo un wrapper trasparente che supporta le chiamate native.
Renat: Scrivete una dll non-dotnet e usatela normalmente nel terminale come le altre dll. Per supportare le librerie dotnet, usiamo un wrapper trasparente che supporta le chiamate native.
Ho provato, ma non ha funzionato. Se ho specificato il nome della funzione con spazio dei nomi e nome della classe, come in C#, il compilatore MQL5 non lo passa e se ho specificato solo un nome di funzione, non è nel runtime di EX5 nel terminale. Probabilmente è necessaria qualche notazione aggiuntiva per puntare esplicitamente agli attributi .Net, se potessi vedere un semplice esempio...
revers45: Ho provato, ma non ha funzionato subito. Se ho specificato un nome di funzione con spazio dei nomi e nome della classe, come in C#, il compilatore MQL5 non lo passa, e se ho specificato solo un nome di funzione, non è nel runtime di EX5 nel terminale. Probabilmente è necessaria qualche notazione aggiuntiva per puntare esplicitamente agli attributi .Net, se potessi vedere un semplice esempio...
Вам необходимо организовать трансляцию котировок из MetaTrader 5 в собственное приложение? Связка MQL5-DLL позволяет создавать подобные решения. В статье продемонстрирован один из способов трансляции котировок из MetaTrader 5 в приложения, написанные на .NET. Мне было рациональнее, интереснее и проще реализовать экспорт котировок именно с использованием этой платформы. К сожалению, с выходом "пятерки" поддержки .Net также не появилось, поэтому по старинке будем использовать как прослойку win32 dll с поддержкой .NET.
Questo articolo riguarda un livello aggiuntivo per i programmi MQL5, sotto forma di win32 dll QExpertWrapper.dll, che a sua volta funziona con .Net, e la mia domanda riguarda l'uso di .Net dll direttamente nei programmi MQL5.
revers45: Questo articolo riguarda un livello aggiuntivo per i programmi MQL5, sotto forma di win32 dll QExpertWrapper.dll, che a sua volta funziona con .Net, e la mia domanda riguarda l'uso di .Net dll direttamente nei programmi MQL5.
Grazie, quello che hai suggerito è un'altra interpretazione con dll intermediario (wrapper), ma per MQL4. Lo stavo facendo più o meno allo stesso modo, ma perché dovrei avere bisogno di tutti quei trucchi, diminuire l'affidabilità e mettere un wrapper diverso su ogni libreria, se è già nel terminale... Mostrami solo un piccolo esempio di come usarlo, questo vrapper personale trasparente...
Renat: ...Per supportare le librerie dotnet usiamo un wrapper trasparente che supporta le chiamate native.
Ho riscritto il mio robot da MQL4 a MQL5 con difficoltà. Nel tester il parametro TakeProfit non è ottimizzato e i trade non vengono chiusi da esso. L'ho trovato sul mio conto demo, il TP è impostato e una linea rossa tratteggiata è disegnata sul grafico e i trade sono chiusi. Qual è la ragione.
Di tanto in tanto succede qualche "cavolata": l'ottimizzatore non parte, ho pensato che il processore potrebbe essere troppo occupato o qualcosa del genere. Oggi ho riavviato WIN XP, deframmentato il disco, avviato l'ottimizzatore:
IQ 0 04:19:14 Tester Experts\Smart Neurons Test.ex5 su EURJPY,H1 da 2003.06.01 00:00 a 2013.06.01 00:00 IP 0 04:19:14 PM Ottimizzazione Tester avviata PG 0 04:19:14 La dimensione del pacchetto iniziale di attività del tester è 512 PM 0 04:19:14 Processo agente Core 1 avviato CN 0 04:19:15 Core 1 in connessione con 127.0.0.1:3000 II 0 04:19:15 Core 1 connesso QP 0 04:19:16Connessione Core 1chiusa
Funziona la seconda volta, cioè ho premuto "stop" poi "start", e non è la prima volta.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Potete consigliarmi dove leggere sull'uso delle librerie .Net nei programmi MQL5? Non ho trovato la sezione appropriata nella documentazione.
Guarda negli articoli.
Per esempio, ci sono suggerimenti negli articoli per farlo attraverso l'esportazione di codice ingestibile https://www.mql5.com/ru/articles/249.
Ma per quanto ho capito, l'integrazione tramite decompilazione è una tecnica di hacking... Ho letto da qualche parte su un forum che MQ ha fatto causa agli hacker.
Quindi, questo metodo sarebbe giusto, come argomento, in una tale causa...)
Scrivete una dll non-dotnet e usatela normalmente nel terminale come le altre dll. Per supportare le librerie dotnet, usiamo un wrapper trasparente che supporta le chiamate native.
Probabilmente è necessaria qualche notazione aggiuntiva per puntare esplicitamente agli attributi .Net, se potessi vedere un semplice esempio...
Ho provato, ma non ha funzionato subito. Se ho specificato un nome di funzione con spazio dei nomi e nome della classe, come in C#, il compilatore MQL5 non lo passa, e se ho specificato solo un nome di funzione, non è nel runtime di EX5 nel terminale.
Probabilmente è necessaria qualche notazione aggiuntiva per puntare esplicitamente agli attributi .Net, se potessi vedere un semplice esempio...
https://www.mql5.com/ru/articles/27
Questo articolo riguarda un livello aggiuntivo per i programmi MQL5, sotto forma di win32 dll QExpertWrapper.dll, che a sua volta funziona con .Net, e la mia domanda riguarda l'uso di .Net dll direttamente nei programmi MQL5.
https://c.mql5.com/mql4/forum/2009/03/NETSampleR.zip
Grazie, quello che hai suggerito è un'altra interpretazione con dll intermediario (wrapper), ma per MQL4.
Lo stavo facendo più o meno allo stesso modo, ma perché dovrei avere bisogno di tutti quei trucchi, diminuire l'affidabilità e mettere un wrapper diverso su ogni libreria, se è già nel terminale...
Mostrami solo un piccolo esempio di come usarlo, questo vrapper personale trasparente...
...Per supportare le librerie dotnet usiamo un wrapper trasparente che supporta le chiamate native.
Di tanto in tanto succede qualche "cavolata": l'ottimizzatore non parte, ho pensato che il processore potrebbe essere troppo occupato o qualcosa del genere. Oggi ho riavviato WIN XP, deframmentato il disco, avviato l'ottimizzatore:
IQ 0 04:19:14 Tester Experts\Smart Neurons Test.ex5 su EURJPY,H1 da 2003.06.01 00:00 a 2013.06.01 00:00
IP 0 04:19:14 PM Ottimizzazione Tester avviata
PG 0 04:19:14 La dimensione del pacchetto iniziale di attività del tester è 512
PM 0 04:19:14 Processo agente Core 1 avviato
CN 0 04:19:15 Core 1 in connessione con 127.0.0.1:3000
II 0 04:19:15 Core 1 connesso
QP 0 04:19:16Connessione Core 1chiusa
Funziona la seconda volta, cioè ho premuto "stop" poi "start", e non è la prima volta.