記事"МetaTrader 5からWCFサービスを利用し.NETアプリケーションにクオートをエクスポートする方法"についてのディスカッション

 

新しい記事 МetaTrader 5からWCFサービスを利用し.NETアプリケーションにクオートをエクスポートする方法 はパブリッシュされました:

MetaTrader 5からご自身のアプリケーションにクオートをエクスポートしたくありませんか?MQL5-DLLジャンクションを使用するとそのソリューションの作成が可能です!本稿でMetaTrader 5から.NETに書かれたアプリケーションにクオートをエクスポートする方法の一つをお伝えします。私はまさにこのプラットフォームの使用により、クオートのエクスポート実装がおもしろく、根本的にやさしく行えました。残念ながらバージョン5はまだ.NETをサポートしていないので、かつてのように.NETサポート機能のあるwin32 dllを interlayerとして利用します。

作者: Alexander

 

よくやった!他には何も言えない。残念なことに、MQL5と.NETの接続にはまだ仲介者が必要で、そのために全体の構築が面倒になっている。

 
Itso:

残念なことに、MQL5と.NETの通信にはまだ仲介者が必要で、そのため全体の構築があまりにも面倒なのだ。

同感だ。ところで、単純なインタラクションには、Inverse P/Invokeという 素晴らしいものがあります。

また、ILMergeを使って、3つのアセンブリをQExportWrapper.dllにマージしようとしましたが、うまくいきませんでした。

 

こんにちは!

あなたのソースファイルをコピーし、再コンパイルして実行しました。

しかし、MT5がクラッシュしてしまいました。

どのようにデバッグ/トラブルシュートできますか?

ありがとうございます!

 

1.まず、 bin.rarにあるコンパイル済みのファイルを使用してみます。

例えば、MetaTrader5クライアントターミナルのディレクトリは "C:˶Program FilesMetaTrader 5 "です。

Let's create new folder for the expert QExporter.mq5 for example"QE", in the folder "C:\Program Files\MetaTrader 5\MQL5\Experts\"

C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QExporter.mq5 (1615 bytes)
C:\Program Files\MetaTrader 5\MQL5\Experts\QE\QService.mqh (4380 bytes)

C:\Program Files\MetaTrader 5\MQL5\Libraries\QExport.dll (5632 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExport.Service.dll (7168 bytes)
C:\Program Files\MetaTrader 5\MQL5\Libraries\QExportWrapper.dll (27648 bytes)

C:\Program Files\MetaTrader 5\WindowsClient\QExport.Client.dll (6656 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\QExport.dll (5632 bytes)
C:\Program Files\MetaTrader 5\WindowsClient\WindowsClient.exe (12288 bytes)

そして、QExporter.mq5のコンパイル後、コンパイルされたファイルQExporter.ex5がディレクトリに表示されます:

C:¥Program Files¥MetaTrader 5¥MQL5¥Experts¥QE¥QExporter.ex5 (6706バイト)

EURUSD,H1のチャートにアタッチして、WindowsClient.exeを 実行すると、以下のようになりました:

249ドル(2月18日)でテストしました。

 
sgfxtrader:

あなたのソースファイルをコピーし、再コンパイルして実行しました。

しかし、MT5がクラッシュしてしまいました。

どのようにデバッグ/トラブルシュートできますか?

こんにちは、

まず第一に、mql5のソースをデバッグして、エラーの原因となっている関数を 見つけ、すべてのdll関数呼び出しの前にブレークポイントを設定します。残念ながら、ターミナルがクラッシュしてしまったので、デバッグのためにdllをterminal.exeにアタッチすることができませんでした。新しいビルドでは可能かもしれない。

また、どのOSを使っているのかも知りたい。私は32ビットのOSを使っているので、64ビットのシステムでそれをチェックする能力がありません。

また、コンパイルされたファイルを実行してみましたか?

そしてもうひとつ、ソリューションにあるConsoleServiceとConsoleClientを実行してみてください。もしかしたら、問題はmqlやラッパー・ライブラリとは関係ないかもしれません。

最後に、terminal.exe.configファイルを作成(またはコピー)するのを忘れているだけだと思います。試してみてください。

 

MQL5が.NETのラップDLLを使えるようになったのは朗報だ。

なぜMQL4ではこのようなモードが使えないのだろうか?

 
DxdCn posted # :

MQL5が.NETのラップDLLを使えるようになったのは朗報だ。

なぜMQL4ではこのようなモードが使えないのか?

mt4でハイブリッドDLLを使うことは可能だが、問題はmql4が構造体を持っていないことだ。構造体の代わりにいくつかのパラメータを 渡すことができる。
 
sgfxtrader:

こんにちは!

あなたのソースファイルをコピーし、再コンパイルして実行しました。

しかし、MT5がクラッシュしてしまいました。

どのようにデバッグ/トラブルシュートできますか?

ありがとうございます!


私も同じ問題を抱えています。

2010.07.27 12:11:09 Experts QExporter(EURUSD,H1) の初期化に失敗しました。

 

掲載例をどうもありがとうございました。この1週間、(夜な夜な).netとmql5間のデータ交換の ためのライブラリを作ろうと奮闘していました。

私はC++が苦手 なので、この投稿はとても役に立ちました。

ただ一つ問題があります。x64でコンパイルした後、サービスの初期化がエラーになります。

ExportService^ service = gcnew ExportService(serverName); // <- ServiceManaged.cpp 

プロセスは何の説明もなく、ただ「終了」してしまいます。

このエラーをログに出力し、さらに分析するにはどうすればよいでしょうか? それとも、すでにこの問題に遭遇していて、解決策があるのでしょうか?

 

しかし、ストラテジーテスターで EAを実行しようとすると、両方とも見事にクラッシュしてしまいます。

しかし、ストラテジーテスターでEAを実行しようとすると、両方とも見事にクラッシュしてしまいます。このEAを使って、価格とインジケータのデータをデータベースのテーブルにエクスポートし、外部ソフトウェアで分析を行いたいと思っています。 このクラッシュの原因について何か思い当たることはありますか? これが、今のところ最も近い解決策です。


ジョー