MT4のインジケーターからDDE送信をする時に使用するDLLです。
メソッド「SendString」の引数にサーバー名、トピック名、アイテム名、送信したい文字列を指定して呼び出すだけです。
使い方の例として、1台のパソコンに複数のMT4(複数業者のMT4)がインストールされている場合、各MT4ごとに異なるサーバー名を指定(例えば業者名を指定)して、Excelに各業者のデータを一覧表示することが可能です。(後述の「MT4複数起動時の例」を参照)
ファイルはMT4用のトップページからダウンロードできます。
ダウンロードしたZIPファイルを適当なフォルダに展開(解凍)して、その中にあるDLL「MT4DDESV.dll」を「Libraries」フォルダに配置してください。
補足:ZIPファイルはMT4用のトップページからダウンロードできます。
上記インストール時に配置したDLL「MT4DDESV.dll」を削除してください。
当DLLはレジストリを使用していません。
補足:DLLはMT4を終了させてから削除することをおすすめします。
まず、インジケーターに以下の宣言を追加します。
//インポートするDLLの宣言
#import "MT4DDESV.dll"
void SendString(string AServer,string ATopic,string AItem,string AData);
#import
次に、DDE送信したいところでメソッドを呼び出します。
メソッド「SendString」の呼び出し方は
SendString(サーバー名、トピック名、アイテム名、送信したい文字列);
です。応答値はありません。
//DDE送信時の記述例
SendString("ServerName","TopicName","ItemName",Symbol()+"の売値="+DoubleToStr(Bid,Digits()));
修正したら保存し、インジケーターをチャートに挿入してください。
インジケーターをチャートに挿入する際は「DLLの使用を許可する」にチェックを入れてください。
サーバー名、トピック名、アイテム名は半角英数字や全角文字を組み合わせて自由に命名できますが以下の制約があります。
当DLLを組み込んだサンプルファイルを添付しています。参考にしてください。
MT4の標準のDDEの使い方として、例えばExcelでドル円の売値を取得したい場合、
=MT4|BID!USDJPY
のように記述しますが、当DLLを使用する場合はSendString関数の引数に合わせて
=ServerName|TopicName!ItemName
のように記述することで「送信したい文字列」の値を取得できます。
サーバー名、トピック名、アイテム名はSendString関数のパラメーターで指定した文字列を記述しますので、例えばインジケーターに
SendString("FX業者A", "アカウント", "口座残高", DoubleToString(AccountBalance(),0));
と記述している場合は、Excelには
=FX業者A|アカウント!口座残高
と記述することになります。
補足:縦棒「|」と感嘆符「!」は見やすくするために全角で記述してますが、実際は半角文字です。
補足:トピック名やアイテム名に「数字だけ」または「先頭が数字」の名称を使用する場合、Excelではシングルクォーテーション「'」で括る必要があります。
例:サーバー名が「01Server」、トピック名が「00123456」、アイテム名が「1A2B」の場合
='01Server'|'00123456'!'1A2B'
各FX業者のMT4を起動し、それぞれのMT4で実行するインジケーターに異なるサーバー名を指定して各FX業者の口座残高を一覧表示および合算する例です。
FX業者Aのインジケーターには
SendString("FX業者A", "アカウント", "口座残高", DoubleToString(AccountBalance(),0));
FX業者Bのインジケーターには
SendString("FX業者B", "アカウント", "口座残高", DoubleToString(AccountBalance(),0));
と記述します。
ExcelのセルA1に
=FX業者A|アカウント!口座残高
ExcelのセルA2に
=FX業者B|アカウント!口座残高
ExcelのセルA3に
=SUM(A1:A2)
と記述します。
これで、ExcelのセルA1にはFX業者Aの口座残高が、セルA2にはFX業者Bの口座残高が、セルA3には口座残高の合算値が表示されます。
一部のソースのみを添付しています。リソースファイル(.res)などは添付されていません。
流用した「Delphi7」のコンポーネントソースは配布不可なので代わりに改造箇所説明ファイル「DdeMan.pasの改造箇所について.txt」を添付しています。
リリース日 | バージョン | 内容 |
---|---|---|
2017/04/19 | 1.0.0.0 | 初リリース |
2017/07/19 | 2.0.0.0 | 1.パラメーターに、サーバー名、トピック名、アイテム名を追加しました。 2.MT4が強制終了する不具合を修正しました。 なお、バージョンアップに伴いバージョン「1.0.0.0」との互換性はありません。 |
2017/10/07 | 2.1.0.0 | 1.異なるトピック名で同じアイテム名が使用できない制約を解除しました。 |
2017/12/05 | 2.2.0.0 | 1.DDE通信が正しく行われない不具合に対応しました。 |
2018/01/11 | 2.3.0.0 | 1.トピック名とアイテム名にも「数字だけ」または「先頭が数字」の名称を使用できるように対応しました。 2.サーバー名は上書きするように変更しました。 |