メッシです。
今回は、FXの定番チャートソフトであるMetaTrader4(MT4)を使って行う自動売買に関して基礎的なことをお話したいと思います。
自動売買と言われると、どんなことを想像するでしょうか?
自動で取引してくれるシステムだということくらしかわかりませんが、MT4で作成するするのでしょうか?
MT4には、もともと自分でインジケーターを作成したり、ロジックを作成してバックテストを行ったり、ロジックを自動で取引所に注文を出したりする機能があります。
今回はこの機能を利用してEAを作成するための基礎的なことをお話していきますね。
ということで今回はメタエディターの起動~コメントアウトに関して紹介していきましょう。
目次
MT4で自動売買を行うには?
MT4で自動売買を行うには、MT4専用のプログラミング言語であるMQL4という言語でロジックを製作していきます。
このMQL4という言語は、元がC言語という有名なプログラミング言語のため、C言語を触ったことがある人はすんなり覚えられるかもしれません。
また、最近ではMQL5というMT5用に作られたプログラミング言語の情報もインターネット上にたくさんあります。
このMQL5とMQL4は同じチャートソフトMetaTrader上で動くものですが、バージョンが異なるため完全な相互性はありません。
ですので、MetaTrader4で動かすならMQL4、MetaTrader5で動かすならMQL5でプログラミングを作る必要があるわけです。
ここでは一般的に普及しているMetaTraderの言語であるMQL4の使い方を紹介していきますので、覚えておきましょう。
この記事が参考になる対象者について
さて、これからMQL4について説明していくわけですが、これからの内容は”プログラミングを触ったことがない方”が対象になります。
ですので、基本的なところから説明していきますね。
ということで初心者向けの解説になるので、他のプログラミング言語をすでに理解していてMQLをサクサク学びたい方は今回の解説は向いていない記事になると思いますので、ご了承ください。
MQLを学ぶためのコツとは?
プログラミング言語を触ったことがない方に向けて自動売買を行うためのプログラミング言語を説明していきますが、最初にプログラミング言語を学ぶためのコツをお教えします。
それは「習うより慣れろ」です。
なんだそれ?って思った人も多いかもしれませんが、EAを作成していくのであれば、初心者の方に馴染みの無い「変数」とか「条件分岐」、「繰り返し」、「配列」など、難しい言葉と機能を使っていくことになるので、理解できるものもあれば最初は「よくわからない」という状況に直面することもあると思います。
こんな時は最初から全てを理解しようとするのではなく、まずはコードを書き写してみる、それを繰り返して覚える、といったように実際に手を動かしてコードを書く作業をたくさんこなしましょう。
そうすればいつの間にかコードが書けるようになりますし、コード内容の理解も深まるでしょう。
MQL4はどこに書くの?
今回はMQLのコードを書くためのメタエディターについての紹介までになります。
メタエディターというのは、MQL4のプログラミングコードを書いて実行することができるMQL4専用のテキストエディターです。
このメタエディターはMT4に最初から同梱されているため、MT4をパソコンにインストール済みであればすぐに使うことができます。
実際に触ってみよう
まずはMT4を起動しましょう。
上部ツールバーに書類のようなアイコンがあるので、クリックするとメタエディターが起動します。
メタエディターは別のウィンドウで立ち上がりますが、何も表示されていないと思いますので、新規作成を選択します。
そうすると下の表示が出てきますので、エキスパートアドバイザ(テンプレート)にチェックを入れ、次へを選択しましょう。
そうすると下の表示になりますので、何でもいいのでお好みで名前を付け(ここではtestとします)て次へをクリックします。
※Experts¥はシステムを入れるフォルダの指定になるので、消さないでおきましょう
何もチェックを入れなくていいので、次へをクリック。
完了をクリックしましょう。
そうすると、EAのもととなる英語の羅列が表示されるはずです。
メタエディターは立ち上がったものの、よく意味が分からない英語が陳列された画面が目の前に表示されていると思いますが、まずはこれでOKです。
いらないものを削除してすっきりしてみよう
英語が陳列された意味の分からない画面ですが、今、必要なものとそうでないものがあります。
一番左に「//」スラッシュ2個から始まる行があると思いますが、その行は消してしまっても問題ありません(※下の1~5、10~12、15、17、20~22、25、28~30、33、36のこと)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
//+------------------------------------------------------------------+ //| ggg.mq4 | //| Copyright 2019, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2019, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ |
一番左が「//」の行を全て削除すると、こんな感じになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#property copyright "Copyright 2019, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict int OnInit() { return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { } void OnTick() { } |
メタエディタ起動後に必要な作業はこれだけです。
いらないものがたくさんあるので、混雑しているように見えましたが、必要なものだけ残すとスッキリしますね。
いらないものの正体とは
先ほど「いらないもの」として「//」から始まる行を全て削除しましたね。
この「//」は、ログラミングコードを書く上でとても大切なものですが、プログラミングをする上では不要なものになります。
では、メタエディターを起動させるとなぜ表示されるのかというと、「//」の機能的に便利だからです。
一番左に「//」を付けることでプログラミングのコードが長くなった時にメモとして使うことができ、それぞれの個所にメモを残しておくことで、もしエラーが出た時場合でもどこがエラーなのかが分かりやすくすることができます。
また、プログラミングコードを探す時も同様に見つけやすくできるわけですね。
要するにコメントには好きなことを書くことができますが、プログラミングを実行した時にそのコメントの行は反映されず、プログラミングにはなんの影響も与えないということです。
これはコメントアウトという機能になります。
MQL4で例えばですが、
//ここで変数を宣言
//移動平均線を宣言
//移動平均線を2本用意
//売買ロジックを記述
など、それぞれの個所にこういった感じでコメントアウトでメモを残しておけば、もしエラーが出た時にどこがエラーなのか分かりやすくなるし、どこのプログラミングコードが間違っているのかを見つけやすくなるわけです。
コメントアウトはとても便利な機能なのでぜひ覚えておいて下さい。
次回は実際にコードを書いてみよう
一度に詰め込みすぎても混乱してしまいますので、今回はここまでにしたいと思います。
まだ「コード書いてないぞ!」って突っ込まれそうですが、安心して下さい。
少しずつではありますが、次回からは手を動かしていきたいと思います。
次回はメタエディタの構成や、コードの書き方などを解説していきたいと思いますので、第2回 FX初心者でも作れるEA(自動売買)の自作方法とは?今さら聞けない基礎的なことから解説を参照下さい。
More from my site
利益を上げ続けるために
逆算して身に付けていく3つのポイントとは?
Midas FX公式メルマガでは一つ一つポイントを絞ってわかりやすくお伝えしています
さらに「Trade Workbook」&「レンジブレイクアウト攻略法」で
より具体的なスキル(手法やマルチタイムフレーム分析力)を身に付けることが可能です
※「Trade Workbook」と「レンジブレイクアウト攻略法」は
メルマガ登録後すぐ手に入ります
Midas FX公式メルマガ登録【今なら無料】
この記事へのコメントはありません。