Excel用にデータを出力してみる2

Excel用にデータを出力してみる2

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

にほんブログ村 為替ブログ FX システムトレード派へ

前回に引き続き、エクセルを使っていろいろやってみたいと思います。

今回は、DDEというアプリケーション間通信の機能を利用します。

 

DDEというのは、かなり古い規格で今はほとんど利用されません。

最近の.NETではサポートされていないほどの企画です。

ですが、なぜかMT4ではDDEのサーバー機能を持っていて、ExcelはDDEのクライアント機能を実装しています。

 

ということで、通信できてしまいます。

やり方も簡単です。

 

まず、メタトレーダーの設定です。

メニューの「ツール」-「オプション」でオプションを開きます。

dde1

「DDEサーバーを有効にする」にチェックを入れて、「OK」を押します。

これだけです。

 

Excel側は、サンプルがあるのでそれを使ってみましょう。

インストールフォルダ\MetaTrader

DDE-Sample.xls

があるので、開いて見ましょう。

開くと

dde2

こんな感じのメッセージが表示されるので、「更新する」を押します。

dde3

こんな感じで、最新の状況がリアルタイムに表示されます。

売値は、MT4|BID!USDCHF

買値は、MT4|ASK!USDCHF

高値は、MT4|HIGH!USDCHF

安値は、MT4|LOW!USDCHF

時間は、MT4|TIME!USDCHF

時間・売値・買値は、MT4|QUOTE!USDCHF

を表示したいセルに「=MT4|QUOTE!USDCHF」と書けば、利用できます。

 

通貨ペアを変更したいときは、USDCHFの部分を変更するだけです。

これで、いろいろできると思います。

にほんブログ村 為替ブログ FX システムトレード派へ 人気ブログランキングへ

タグ

トラックバック&コメント

この記事のトラックバックURL:

コメント

  1. ryou より:

    エクセルにDDEで価格をリンクする方法を探していて、こちらを訪れました。もしわかれば教えていただきたいのですが、4Hチャートのopen priceを自動リンクするにはどのような数式をセルに入れればいいのでしょうか。
    また、特定の日の特定の時間のopen priceも読み込みたいのですが、これも教えていただけると幸いでございます。
    例えば、9/1の10時のopen priceといったものです。
    よろしくお願いします。

    • kei より:

      DDEで取得できるデータは、現在値です。
      そのため、?Hとかのデータをとるようなことはできません。

      過去のデータを取得するには、ヒストリーセンター(F2キーで呼び出せます)で必要な通貨の時間軸を選択して、エクスポートすることでCSVファイルとして取り出せますので利用してみてください。
      もし、最新のデータがない場合は、ダウンロードすることで更新できます。

  2. sige より:

    はじめまして。
    DDEというアプリケーション間通信の方法があることを知りました。
    ・ddeは古い規格だそうですが、MT4ではアプリケーション通信としては、DDEが唯一ですか。
    ・ddeならば、mt4からの価格情報をエクセルなどに送ることができるとのことはわかりましたが、逆にエクセルなどから、MT4に小さなデータを送り、eaで受信することはできますか。(ddeは双方向定義されているでしょうか)・。
    ・mt4の日本語翻訳マニュアルを見てみたのですが、ddeの機能についての記述は見つけられませんでした。どこなddeの仕様について情報はないでしょうか。

    目的は、mt4から価格情報をddeで外部プログラム(C++)でリアルタイムで受信し、売買サインを計算後、結果をmt4に送りEAを通じてチャートに重ねて表示させることです。C++ではサインに応じて、クリック証券に発注画面を自動操作するUWSCを操作しようかともくろんでいます。
    サインをEAでなくC++で行うのは、かなり大量の計算をリアルタイムで行うからです。たぶんEAでは能力不足かと予想しています。C++からDDEを使えそうなことはわかりました。


コメントを投稿する



この記事のコメントだけのRSSフィードを取得

Spam Protection by WP-SpamFree


Excel用にデータを出力してみる »
« メタトレーダーに日本語を表示してみる