お金が稼げる自動売買ツールを自作してみる!その4

お金が稼げる自動売買ツールを自作してみる!その4
※自己責任でお願いします。損失や損害については責任を負いかねます。
今回の記事でExcelファイルにXM MetaTrader5の相場データを読み込めるように設定します(*’▽’)
けっこう長い記事になっていますがひとつひとつ難しくないように説明してあるので見た目よりもスムーズにできると思います!(^^)!
田中はこのWebサイトを参考にして自動売買ツールを作ろうと思います。
参考にするサイトはこちら⇒株・為替・FX・N225自動売買、自動取引システムの作り方・自作方法
Excelに相場データを流す準備
私は右も左も分からない状態から自動売買ツールを作成しているので参考にしているWebサイトがあります(*’▽’)
参考にしているWebサイト⇒株・為替・FX・N225自動売買、自動取引システムの作り方・自作方法
大体の内容は問題ありませんが参考サイトの通りに作って進めると…動かない!!
そんな状況に多々なります(^_^;)
なので私のブログでは参考サイトとは多少違う部分がありますのでご注意ください(*’▽’)
XM MetaTraderからデータを読み込む
XM MetaTrader5のデータを読み込むためにいくつか準備をしましょう(*’▽’)
MQL5に登録する
データの読み込みに「DDE」という機能を使うのですがMetaTrader5では「DDE」がサポートされていないため自分で設定が必要になります!!
そこでMQL5というサイトに登録して必要となるファイルをダウンロードします(*’▽’)
※ダウンロードしたファイルはウイルスが混じっていないか必ずスキャンしましょう!!
MQL5にアクセス⇒https://www.mql5.com/
画面右上の新規登録をクリックして登録してください(*’▽’)
登録が完了したら必要なファイルをダウンロードしに行きます(^_^)
必要なファイルをダウンロードする
「dde_example.mq5」と「dde-server-mfc-application.zip」が必要なのでダウンロードします(*’▽’)
このサイトからファイルを2つ入手⇒https://www.mql5.com/en/code/1246
「dde_example.mq5」をXM MetaTrader5のデータフォルダに貼り付ける
XM MetaTrader5を開いて次のように進めて下さい(*’▽’)
「ファイルメニュー」→「データフォルダを開く」
■「MQL5」→「Experts」→「dde_example.mq5」の順に進みます。
「MQL5」
「Experts」
「Experts」フォルダが開けたら先ほどダウンロードした「dde_example.mq5」を「Experts」フォルダに貼り付けます(*’▽’)
「dde-server-mfc-application.zip」の解凍と実行
次にアプリを起動させます。
アプリは先ほどダウンロードした「dde-server-mfc-application.zip」の中にあります。
ZIPで圧縮されているので解凍して展開して下さい。展開先はどこでもいいのですが利便性を考えるとXM MetaTrader5のショートカットアイコンの近くがいいかと思います(*’▽’)
「dde-server-mfc-application.zip」を解凍すると中に…、
解凍が済んだらアプリを実行します。「DDE Server.exe」を実行して下さい…、
「DDE Server.exe」を実行すると、空っぽのプログラムが開かれます(*’▽’)
「DDE_Example.mq5」をメタエディターで開く
「ファイル」→「データフォルダを開く」
「MQL5」→「Experts」
「dde_example.mq5」をダブルクリックして「メタエディタ」を開きます(*’▽’)
※メタエディタが英語表記の場合
もしもメタエディタが英語で表記されていたら日本語に変換しておきましょう(*’▽’)
メタエディタの上部メニューから~
「View」→「Languages」→「Japanese」と選択します(*’▽’)
言語の選択が終わったら「メタエディタを再起動」します。すると英語表記が日本語に変更されていると思います(^^♪
「DDE_Example.mq5」に通貨ペアを追加する
void OnTimer() //ここの関数に追加する
{
//— filling an array MA[] with current values of iMA
//— Copying 100 elements
CopyBuffer(MA_handle,0,0,100,MA);
ArraySetAsSeries(MA,true);
// Check & Add Item DDE
if(!CheckItem(“A”,”B”))
{
if(!AddItem(“A”,”B”)) return;
}
if(!CheckItem(“COMPANY”,”Value”)) AddItem(“COMPANY”,”Value”);
if(!CheckItem(“TIME”,”Value”)) AddItem(“TIME”,”Value”);
if(!CheckItem(“BID”,”USDJPY”)) AddItem(“BID”,”USDJPY”);
if(!CheckItem(“ASK”,”USDJPY”)) AddItem(“ASK”,”USDJPY”);
MqlTick tick;
SymbolInfoTick(“USDJPY”, tick);
SetItem(“BID”,”USDJPY”,DoubleToString(tick.bid,5));
SetItem(“ASK”,”USDJPY”,DoubleToString(tick.ask,5));
上記のピンク色のコード部分を「void OnTimer()」関数に追加します。
「DDE_Example.mq5」をメタエディターでコンパイル
通貨ペアの記述が終わったら「DDE_Example.mq5」を開いた状態で「コンパイルボタン」をクリックします。
コンパイルは以上です!簡単ですね(笑)
…なんにも変化がない(*’▽’)??
「dde_example.mq5」を「メタエディタ」でコンパイルした後にいくつか設定を行う必要があります(^_^)
「DDE」のアプリはXM MetaTrader5に標準でサポートされていない「外部アプリ」です!
なのでXM MetaTrader5の設定で外部アプリと連動する許可を与える必要があります(*’▽’)
次の順番に進めてみTましょう(*’▽’)
「XM MetaTrader5」「ツール」「オプション」「エキスパートアドバイザ」「DLLの使用を許可する」にチェック!!
最後の仕上げに入りますよ~!(^^)!
忘れてないとは思いますが…先ほど「dde_example.mq5」を「メタエディタ」で「コンパイル」しています(*’▽’)
コンパイルされた「dde_example.mq5」は「XM MetaTrader5」の「エキスパートアドバイザ(EA)」に追加されています!
エキスパートアドバイザ(EA)にある「dde_example.mq5」を任意のチャート上にドラッグ&ドロップします(*’▽’)
すると…変化あり!!!!
DDEサーバーとXM MetaTrader5のアプリが連携に成功しました!(^^)!
Excelファイルに数式を入力する
XM MetaTrader5のデータをExcelファイルに読み込む準備は整いました(*’▽’)
実際にデータを読み込んでみまよう!
①B2のセルを選択し、②の入力窓に「= MT4DDE|BID!USDJPY」と入力します(*’▽’)
すると画像のようにB2のセルにXM MetaTrader5とリンクした売値がリアルタイムで読み込まれていきます!!
同じ様に買値にも数式を入力しましょう(*’▽’)
①C2のセルを選択し、②の入力窓に「= MT4DDE|ASK!USDJPY」と入力します(*’▽’)
まとめ
だいぶ長くなっちゃいましたね(^_^;)
次回からは今回読み込んだXM MetaTrader5のデータを自動でExcelに更新しながら記録していくプログラムをVBAで作り上げていきます(*’▽’)
Comment
はじめまして。ノリアキという者です。
私もこちらのサイトを参考に自動売買ツールを作成してみようと
記された手順通りにやっているのですが、
「DDE_Example.mq5」をコンパイルする際に
通貨ペアを追記した部分でエラーが発生しているようで、
コンパイルできずに先へ進めなくなってます。
なにかしら解決方法はありませんでしょうか?
よろしくお願いします。
さきほどコメントしましたノリアキです。
コードをコピペではなくて、手入力する事で解決しました。
返事が遅くなり申し訳ありません。
既に解決されたという事で安心しました。
はじめまして。
卒業制作でVBAを使用した自動取引ツールを作ろうと考え、あなたのサイトを少しばかり参考にさせていただきたいのですが、「お金が稼げる自動売買ツールを自作してみる!その4」の中にある「「DDE_Example.mq5」に通貨ペアを追加する」の部分でコンパイルエラーが起きてしまいます。
エラー内容は「”BID”-undeclared identifier」「”USDJPA”-undeclared identifier」「”ASK”-undeclared identifier」です。
もしよろしければご教授をお願いいただけますか?
佐藤さんこんにちは、先日似た様な内容の問題があって『コードを手入力』することで解決したようです。
時間がある時にコピペで出来るように修正したいと考えていますが今はご容赦頂きたいです…。
うまく解決できない場合、協力したいと思いますのでまたご連絡ください。
こんにちは、
自動売買ツールを作成するにあたって、こちらのサイトを参考にさせていただいてます。
Excelへの入力で、= MT4DDE|BID!USDJPYのところがどうしてもうまくいきません。他のサイトで見つけたコマンドも機能しないようです。現在MT4はダウンロードできないようでMT5を使っています。コードのMT4の部分をMT5にしてもダメでした。
何か解決案があればとても助かります。