- ホーム
- MetaTrader 4からリアルタイムレートを取得。
- タグクラウド
MetaTrader 4からリアルタイムレートを取得。
posted by SBT at 2005-02-14(月) 20:54
MetaTrader 4はDDEに対応しています。
DDEを使えば、他のソフトでリアルタイムにレートを取得することができます。
Excelの場合を例に、DDEを使ったリアルタイムレートの取得方法を紹介します。
(Excelと互換性の高いOpenOffice.orgを使用すれば、全て無料の環境で、リアルタイムデータを取得することができます。)
・仕様
アプリケーション名 : MT4
トピック名 :
BID = 売値
ASK = 買値
HIGH = 高値(日足)
LOW = 安値(日足)
TIME = 時間(GMT+1)
QUOTE = クォート(時間 売値 買値)
フィールド名 : Forex・Indexes・CFDの各シンボル
・使用方法
1.MetaTrader 4を起動します。
2.Tools -> Options -> Server -> Enable DDE Serverをチェックします。
3.Excel(またはOpenOffice.org)を起動します(MetaTrader 4は起動したまま)。
4.データを取得したいセルに次のように入力します。
=アプリケーション名|トピック名!フィールド名) (Excel)
=DDE(アプリケーション名;トピック名;フィールド名) (OpenOffice.org)
例えば、EXCELのセルに、
=MT4|BID!USDJPY
と入力すれば、ドル円の買値レートが取得できます。
データは、ほぼリアルタイムに更新されるので、MetaTrader 4のTickと同じようなデータが流れてきます。
ただし、時間に関しては1分単位となっています。
つまり、Tickデータを蓄積する目的としては使えないかと思います。
また、時間は全てGMT+1となっています。
高値・安値もGMT+1の高値・安値となるため、そのままでは使えません。
日本時間でのリアルタイムレートを蓄積するためには、Excel側で、各種の処理が必要になってきます。
例えば、1分足をリアルタイムに蓄積していくためには、次のような流れになるかと思います。
1.時間をGMT+9に変換する。
2.tickデータを蓄積する。
3.1分間隔で、蓄積したtickデータから4本値を算出して蓄積する。
リアルタイムでの蓄積にこだわらなければ、スクリプトでヒストリカルデータをエクスポートできます。
また、Excelなどにこだわらなければ、スクリプトでリアルタイムにファイル出力していくこともできます。
tickデータも、秒数入りでファイル出力することができます。
APIも公開されているので、それを使えば、自作のプログラムからデータを取得することができます。
(現時点では、APIはMetaTrader 3用のみです。)
インジケータ・売買システム作り・データ蓄積(リアルタイム含む)にはスクリプトを使い、自作のプログラムで使用したい場合にはAPIを使い、その他の特定のソフトで使用したい場合にはDDEを使う、という感じにすると、よいのではないかと思います。
・DDE使用例(Excel・OpenOffice.org)
DDEを使えば、他のソフトでリアルタイムにレートを取得することができます。
Excelの場合を例に、DDEを使ったリアルタイムレートの取得方法を紹介します。
(Excelと互換性の高いOpenOffice.orgを使用すれば、全て無料の環境で、リアルタイムデータを取得することができます。)
アプリケーション名 : MT4
トピック名 :
BID = 売値
ASK = 買値
HIGH = 高値(日足)
LOW = 安値(日足)
TIME = 時間(GMT+1)
QUOTE = クォート(時間 売値 買値)
フィールド名 : Forex・Indexes・CFDの各シンボル
・使用方法
1.MetaTrader 4を起動します。
2.Tools -> Options -> Server -> Enable DDE Serverをチェックします。
3.Excel(またはOpenOffice.org)を起動します(MetaTrader 4は起動したまま)。
4.データを取得したいセルに次のように入力します。
=アプリケーション名|トピック名!フィールド名) (Excel)
=DDE(アプリケーション名;トピック名;フィールド名) (OpenOffice.org)
例えば、EXCELのセルに、
=MT4|BID!USDJPY
と入力すれば、ドル円の買値レートが取得できます。
データは、ほぼリアルタイムに更新されるので、MetaTrader 4のTickと同じようなデータが流れてきます。
ただし、時間に関しては1分単位となっています。
つまり、Tickデータを蓄積する目的としては使えないかと思います。
また、時間は全てGMT+1となっています。
高値・安値もGMT+1の高値・安値となるため、そのままでは使えません。
日本時間でのリアルタイムレートを蓄積するためには、Excel側で、各種の処理が必要になってきます。
例えば、1分足をリアルタイムに蓄積していくためには、次のような流れになるかと思います。
1.時間をGMT+9に変換する。
2.tickデータを蓄積する。
3.1分間隔で、蓄積したtickデータから4本値を算出して蓄積する。
リアルタイムでの蓄積にこだわらなければ、スクリプトでヒストリカルデータをエクスポートできます。
また、Excelなどにこだわらなければ、スクリプトでリアルタイムにファイル出力していくこともできます。
tickデータも、秒数入りでファイル出力することができます。
APIも公開されているので、それを使えば、自作のプログラムからデータを取得することができます。
(現時点では、APIはMetaTrader 3用のみです。)
インジケータ・売買システム作り・データ蓄積(リアルタイム含む)にはスクリプトを使い、自作のプログラムで使用したい場合にはAPIを使い、その他の特定のソフトで使用したい場合にはDDEを使う、という感じにすると、よいのではないかと思います。
・DDE使用例(Excel・OpenOffice.org)
- ダウンロード数
- 2297回
コメント
Posted by トリプルFX at 2008-10-19(日) 23:13
セルに[=MT4|BID!USDJPY」と入力しても、「プログラムを起動できません」とエラーが出て実行できません・・・ なぜでしょうか・・・
Posted by SBT at 2008-11-03(月) 22:01
MT4かアプリケーション側のどちらかでDDEを許可していないとかでは?
トラックバック
このエントリーへのトラックバックはありません。
- トラックバックURL
- http://core.t3-ism.net/trackback/155



Posted by 名無し at 2008-03-27(木) 00:07