В данной статье я представил различные методы взаимодействия между кодом, написанным на MQL5, и управляемым кодом на C#. Также я подготовил несколько примеров маршалинга структур MQL5 для C# и примеров вызова экспортированных функций DLL в скриптах на MQL5. Приведенные примеры могут служить основой для дальнейших исследований аспектов написания DLL в управляемом коде. Эта статья также открывает двери для использования в MetaTrader 5 множества библиотек, уже реализованных на C#.
Вам необходимо организовать трансляцию котировок из MetaTrader 5 в собственное приложение? Связка MQL5-DLL позволяет создавать подобные решения. В статье продемонстрирован один из способов трансляции котировок из MetaTrader 5 в приложения, написанные на .NET. Мне было рациональнее, интереснее и проще реализовать экспорт котировок именно с использованием этой платформы. К сожалению, с выходом "пятерки" поддержки .Net также не появилось, поэтому по старинке будем использовать как прослойку win32 dll с поддержкой .NET.
MQL5プログラムでの.Netライブラリの使用について、どこで読めばよいか教えてください。ドキュメントに該当する項目がないのですが。
記事を見てください。
例えば、管理しきれないコードhttps://www.mql5.com/ru/articles/249 をエクスポートすることで実現しようという提案が、記事の中にあります。
しかし、私の理解する限り、逆コンパイルによる統合はハッキングの手法です...どこかの掲示板で、MQがハッカーを訴えたという話を読みました。
だから、この方法は、このような訴訟では、論証として、ちょうどいいのです ...)
ドットネット以外のDLLを書き、他のDLLと同様にターミナルで普通に使用する。ドットネットライブラリに対応するため、ネイティブコールに対応した透過型ラッパーを使用しています。
おそらく、.Netの属性を明示的に指し示すために、何らかの追加的な表記が必要なのでしょうが、簡単な例を見ることができれば...と思います。
試してみたが、すぐにはうまくいかなかった。C#のように名前空間とクラス名で関数名を指定してもMQL5コンパイラは通らないし、関数名だけを指定してもターミナルでEX5のランタイムには入っていないのです。
おそらく、.Netの属性を明示的に指し示すために、何らかの追加的な表記が必要なのでしょうが、簡単な例を見ることができれば...と思います。
https://www.mql5.com/ru/articles/27
この記事は、MQL5プログラムのための追加レイヤーについてで、win32 dll QExpertWrapper.dllの形で、順番に.Netで動作します。私の質問は、MQL5プログラムで直接.Net dllを使用することについてです。
https://c.mql5.com/mql4/forum/2009/03/NETSampleR.zip
ありがとうございます、ご提案いただいたのは、DLL仲介(ラッパー)を使った別の解釈ですが、MQL4用です。
私もだいたい同じようにやっていたのですが、ターミナルにすでにあるものを、なぜわざわざ信頼性を下げたり、ライブラリごとに違うラッパーをつけたりする必要があるのか......。
使い方の例をちょっとだけ見せてください、この透明なスタッフ・ブラッパーを...。
...ドットネットライブラリをサポートするために、ネイティブコールをサポートする透過的なラッパーを使用しています。
時々、オプティマイザーが起動しない、プロセッサが忙しすぎるのでは、などという「くだらない」ことが起こります。今日、WIN XPを再起動し、ディスクのデフラメントを行い、オプティマイザを起動しました。
IQ 0 04:19:14 Tester ExpertsSmart Neurons Test.ex5 on EURJPY,H1 from 2003.06.01 00:00 to 2013.06.01 00:00
IP 0 04:19:14 テスター最適化開始
PG 0 04:19:14 初期タスクパックのテスターサイズは512です。
PM 0 04:19:14 Core 1 エージェントプロセス開始
CN 0 04:19:15 Core 1 から 127.0.0.1:3000 に接続中。
II 0 04:19:15 コア1接続中
QP 0 04:19:16 Core 1コネクション終了
2回目、つまり「停止」→「開始」の順に押したときはうまくいくのですが、1回目はうまくいきません。