MetaTrader4のDDE機能拡張の初心者向け解説。

fai > パパロッテイ 2010/02/22 17:50
DDE経由で複雑な情報を送るのは無理がありそうな気がします。^^;
せいぜい、残高、評価残高、保有総ロット数ぐらいが限界なのではと思います。

そして、その程度でよければ、近いうちに解説します。

基本的に、http://d.hatena.ne.jp/fai_fx/20091009/1255014941 に書いた通りなので、それで使いこなせている人は問題ありません。^^;
今日は、初心者向けに簡単に出来るように説明し直します。

目的

「複数のMT4 業者の残高と、評価残高を1つのエクセルファイル上に表示する。」


↑この目的以外のことは考えないでください。
ややこしい事に挑戦する前に、まずは簡単なところから動作するのを確かめてゆくことが重要です。



準備するもの

(1) 業者毎の MetaTrader
(2) Excel
(3) DDEMap.dll
(4) 実験用 Excel ファイル(DDESenderSample.xls)と業者毎のインジケータ(DDESender_A〜C.mq4)セット


それぞれダウンロードする等して入手して下さい。
ダウンロードが上手くできない場合は、FirefoxGoogle Chrome , Opera 等の他のブラウザを試してください。



インストール

(1) DDEMap.dll を libraries フォルダにコピーします。


(2) 業者毎のインジケータセットを解凍し、DDESender_A〜C.mq4ファイル を indicators フォルダにコピーします。


フォルダの場所は、
C:\Program Files\FXDD - MetaTrader 4\experts\libraries
C:\Program Files\FXDD - MetaTrader 4\experts\indicators
のような場所です。使用する全ての業者の MT4 フォルダ内にコピーします
ここにファイルがコピー出来ない場合は、管理者権限でコピーするか、MT4 のインストール先を変えて
C:\MT4\FXDD - MetaTrader 4\experts\libraries
C:\MT4\FXDD - MetaTrader 4\experts\indicators
のような場所にしてください。VistaWindows7 では、C:\Program Files を使わない方が無難です。




MetaTrader の設定

DLL を使うインジケータやEAでは必ず、
ツール -> オプション -> Expert Advisors タブで、Allow DLL imports にチェックを入れます。



インジケータの設定

今回は、業者別に A,B,C のファイルを用意してあるので、それぞれを別の業者のチャートにドロップします。
FXDD には A , ODL には B , FxPro には C のように区別してドロップしてください。

ドロップすると、ダイアログがでるので、必ずチェックを入れます。


業者別のファイルは、単にIDを変えているだけなので、一連の仕組みが理解できたら適宜IDを変えてください。
(※IDを変えたら Excel ファイルも書き換えないと駄目です..)


↑今回の実験では変更不要です。



Excel の起動


ここまで設定できた時点で、DDESenderSample.xls を開きます。

↑MT4 の設定が上手くできていれば残高(BALANCE)と評価残高(EQUITY)が表示されます。

おわり


初心者の人は、まずは、DDESenderSample.xls もDDESender_ABC.mq4 も何も書き換えずに動作することを確認してください
動作確認ができたら、適宜カスタマイズしてみて、動かなくなったら、カスタマイズ方法が間違っているので、やり直す…という試行錯誤をしてみてください。

プログラムの部分は、mq4 ファイルに書いたDDEの変数名と Excel 側に書いた DDEの表記が一致すればデータが送信されます。
SendDDE("FXDD","XYZ","ABC")
と書いたら、Excel 側は、
='FXDD'|XYZ!ABC
と書くことで受信できます。
MT4BrokerID は、もし、1つの業者で複数のMT4 を起動する場合は、起動する MT4 毎に違うIDを付けてください。




この説明でも駄目っぽかったら、1回20万円(交通費別)でサポートに伺いましょうか。^^;