【FXの自動売買プログラムを自分で作る】EA開発ガイド~(Section4)MT4かMT5のどちらを使うべきか~

証券会社選びの前に取引用のプラットフォームについて説明する。国内FX業者では独自ツールを使うところも多いがEAと呼ばれる自動売買プログラムを動作させるにはメタトレーダー(MT4、MT5)と呼ばれるプラットフォームが必要となる。メタトレーダーはMetaQuotes Softwareが開発したソフトウェアで対応する業者であれば使用することができる。汎用性が高く多くのインジケータが使える。FXトレーダーに必須のツールと言える。MT4の発注に対応していない業者だとしてもチャート分析だけにMT4を使う人も多い。なによりEAと呼ばれる自動売買プログラムを動作させることができるのが一番の魅力。

このメタトレーダーには旧バージョンのMT4と新バージョンのMT5がある。本来であれば機能が充実し性能の良い新バージョンMT5を選びたいところであるがそうもいかない。対応する業者が少ないこととプログラミング言語MQL5の情報量が少ないことで利用がすすんでいない。プログラミング初心者の場合は情報が少ないとつらいので現時点ではMT4を選ぶのが無難。しばらくはMT4が活躍しそうな気がする。

注意事項

本記事はFXの自動売買について紹介していますが内容を保証するものではありません。金銭にかかわる内容であるためご注意ください。参考にする場合は自己責任でお願いします。

前提知識

FX(外国為替証拠金取引)の初歩的な知識が必要となります。簡単なFXの入門書程度の知識があれば問題ありません。

FXについて全く知識がない方へのおすすめ書籍。超初心者向けの書籍で知識ゼロの人でも読みやすい。ただし、入門書なのでFX初心者以外にはおすすめできない。

[itemlink post_id=”17292″]

こちらは中級者向けの内容でFXの難しさについて解説している。

MT4とは

MT4とは(MetaTrader)と呼ばれるFXで取引するためのソフトウェア(プラットフォーム)である。MT4にはチャートを表示したり自動売買プログラムを動作させる機能が備わっている。FXをやるのであれば避けて通れないツールと思ってよい。取引に使わないにしてもチャート確認で使うことになる。

証券会社サーバーとの接続

自身が開設した証券会社口座へMT4経由でアクセス可能。ただし、MT4に対応した証券会社に限る。中にはMT4でチャートが見れるだけで自動売買できない業者もあるので注意。

チャートやインジケーターの表示

チャートやインジケーターを表示できる。よく使うインジケーターは初めから設定されておりチャートに設定するだけで使えるようになる。

注文と決済

当たり前だがMT4経由で注文ができる。MT4で注文が可能な業者に限る。

MT4標準の注文機能が使いにくいので「MT4スピード注文」と呼ばれるツールが使われることが多い。ただし期限付きの無料なので要注意。

MT4とMT5

MT4はメタトレーダーのバージョン4でMT5はその後継のバージョン5である。

言語の違い

メタトレーダーではMQLと呼ばれる言語を使用する。ほぼC言語に近い内容。C++言語ではC言語も使えるのでC言語がわかれば何とかなる。C++言語の仕様の方が複雑であるがEA開発ではそれほど難しい関数を使わないのであまり気にする必要はない。

MQL4 ・MT4用のプログラム言語
・C言語がベース
MQL5 ・MT5用のプログラム言語
・C++言語がベース(C言語の上位互換)

発注関数

MQL4とMQL5で発注関数の仕様が異なる。プログラムをどちらかに移行する場合は作り直しか大幅な切替機能が必要となる。結論としてMQL4とMQL5は互換性がないと思っていいだろう。

引用:第一回 MQL5プログラミングのための前知識 | MQL5ブログ | 株式会社メタクオーツ・ソフトウェア・ジャパン

MA関数

MQL4とMQL5でiMA関数型を比較。ほとんどの引数は同じであるが仕様がかなり異なるようだ。

以下はMQL5のMA関数。

引用:iMA – テクニカル指標 – MQL5 リファレンス – MetaTrader 5 のためのアルゴリズムの/自動化されたトレーディング言語のリファレンス

以下はMQL4のMA関数。

引用:OrderSend | MT4でEA自作しちゃお~

ネットで調べてみると関数の仕組み自体が違っているようだった。引数が似ていてもここまで仕様が異なると移植する時の手間が大きい。

MQL5では、iMA()という関数の役割がMQL4とは異なります。
iMA()で移動平均の値を直接取得するのではなく、移動平均の各種パラメータを設定して、そのテクニカル指標を使うことを宣言するだけです。

引用:豊嶋久道先生のコラム | FX・自動売買・システムトレードのすべてがわかるMT4やEAの投資情報サイト【GogoJungle】

移植の難易度

MQL4からMQL5への移植は筆者が当初思ったよりもレベルが高いと思う。はじめはMQL4からMQL5への移行が中々進まないのがなぞであったがよぉーくわかった。ここまで移植のハードルが高いとEAやインジケーターをMT5ように移植する手間がかかりすぎる。簡単に確認した感じだと関数の仕組み自体が変わっているようなので流れ図やフローにも大きく影響がでる可能性が高い。移植よりもゼロから設計した方がはやいかもしれない。

対応する証券会社

移植の問題のせいかMT5に対応した業者が少ない。プラットフォームがMT4であればEAはどの業者でも動作可能。

MT5に対応

ざっくり調べた感じだと以下の3つだけ。

MT4に対応

〇のついた業者がMT4の取引が可能(2021年7月の確認情報)。

スプレッドに関しては「FXスプレッド比較 – 自動売買・相場分析・投資戦略の販売プラットフォーム – GogoJungle」やTwitterなどで確認。スプレッドが狭くてもスリッページがひどいと使い物にならない場合があるので要注意。

名称 MT4 商号 金融商品取引業者登録番号
1 YJFX × ワイジェイFX株式会社 関東財務局長(金商)第271号
2 FXFT ゴールデンウェイ・ジャパン株式会社 関東財務局長(金商)第258号
3 SAXO BANK サクソバンク証券株式会社 関東財務局長(金商)第239号
4 JFX × JFX株式会社 関東財務局長(金商)第238号
5 OANDA OANDA Japan株式会社 関東財務局長 (金商) 第2137号
6 楽天証券 楽天証券株式会社 関東財務局長(金商)第195号
7 外為ファイネスト 外為ファイネスト株式会社 関東財務局長(金商)第102 号
8 EZインベスト証券 EZインベスト証券株式会社 関東財務局長(金商)第156号
9 FOREX EXCHANGE FOREX EXCHANGE 株式会社 関東財務局長(金商)第293号
10 AVA Trade Japan アヴァトレード・ジャパン株式会社 関東財務局長(金商)第1662号

詳しくはこちら。

MT4で発注ができる証券会社~EAからの発注は相対取引に都合が悪いのか今後少なくなりそう~

性能の違い

MT4とMT5を両方使っているがMT5の方が圧倒的に性能がいい。MT4に長期間のヒストリカルデータをインポートすると動きが遅くなり使い物にならなくなるがMT5ではサクサク動作。なのでチャートの分析はMT5でEA開発とバックテストはMT4と使い分けている。体感的にMT5の方が3倍くらい高性能な気がする。

現時点ではMT4の一択

本来であれば性能の良い最新版を使いたいところであるが現実的に厳しいとしか言えない。

プラットフォーム メリット デメリット
MT4 ・対応する証券会社が多い
・MQL4に関する情報が多い
・性能機能がMT5にくらべ悪い
MT5 ・性能機能がMT4にくらべ良い ・対応する証券会社が少ない
・MQL5に関する情報が少ない

対応する証券会社

一番の問題は対応する証券会社の数。MQL5で開発したら証券会社の選択肢が極端に少なくなる。何かしらの理由で他の証券会社に乗り換える場合困る可能性がある。MT4であれば移行先の選択肢が多く証券会社の移行もしやすい。現時点(2012年7月)では対応証券会社を考えるとMQL4でMT4用のEAを開発するのが無難。

プログラミングに関する情報量

さすがに歴史の長いMT4なのでちょっと調べれば色々とサンプルコードなどが出てくる。筆者もMQL4を使っていて調べもので困ることはほとんどなかった。MQL5はちょっと調べてみたが情報量が少ない。移動平均線のサンプルコードを調べたがお目当てのものが中々見つからなかった。ガチプログラマーの筆者でも使いにくいと思うので、初心者にMQL5は現状ハードルが高すぎると思う。

いつかはMQL5へ移行する?

MT5のリリースから10年以上経過しているがほとんど移行が進んでいないように思う。販売されているEAもほとんどがMT4用でMT5のEAなど見たことが無い。WordPressのGutenbergと同じくらい人気がないのではないだろうか。移行できないネックはMT5の関数仕様の違いだと筆者は考える。移行後に直観的に設計、実装できないくらいに差異があり移行時のプログラマーへの負担がとにかく大きい。このままMT5が使われないと、使われないまま時期バージョンがでるんじゃないかと思う。完全互換のMQL6が出たら筆者も移行したいところである。

まとめ

筆者は何となくMT4ではじめたがまぁよかったと思う。MQL5だと情報が少ないのでコーディング時の負担が大きい。販売されているEAを見るとMT4しかないのでよくわかる。いづでMT4の限界はくると思うがリリース10年越えのMT5がこの状態だといつになるのかわからない。2021年時点でEA開発をはじめるならMT4が無難。MT4を捨てるタイミングは時期バージョンの情報が多くなってきてからがいいだろう。

ポイント
  • 現時点でMT5に対応した業者は少ない
  • MT5のプログラミングに関する情報が少ない
  • 2021年時点ではMT4とMQL4でEAを開発するのが無難

やはり情報量が少ないと厳しいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です