ホーム> FX >どのようにMT4プログラミングができるようになったか?【前編】

どのようにMT4プログラミングができるようになったか?【前編】

自己紹介
はじめまして。
「FX手とり」で主にMT4記事を担当したり、過去には相場分析を担当してました、トレーダーのmasaです。

MQL4/MQL5を含めた投資全般のプログラマーをしております。トレード歴は15年ぐらい経ちますでしょうか。15年前、トレードを始めたときはドル円のスワップ狙いでした。正直投資のことについてよく分からず、なんとなくやっていた部分もあったかと思います。うまくいったり、いかなかったり、当然それでは安定した利益は得られないですよね。

そこで投資の本を全て読み漁りしっかりと勉強した結果、出た結論が「検証」でした。検証こそが全て。その検証をいかにたくさんするか。人間がするには限界がある。時間がかかって仕方がない。そう思い、プログラミングにたどり着きました。プログラミングを独学で学び、インジケーターやEA、検証ソフトも作ったりしながら、検証をずっと行ってきました。作ったインジケーターは数千、EAは数百とあります。そのうち使えそうなものは自分のブログでオープンソースで公開し、多くの方がダウンロードしてくださりました。
そして現在、「FXナビ」で60個以上のインジケーターを作り、無料で公開しております。そのサイトでも多くの方からコメントをいただきました。そして個人でMQL4プログラミングを教えたり、トレード本読書会なども主催しております。

そんな私がどのようにして、プログラミングができるようになったか。これから自分のオリジナルインジケーターを作りたい、もしくは自動売買したい、私もプログラミングをできるようになりたい、そんな方向けに少しでもお役に立てる記事を書いてみようと思います。


1.なぜプログラミングをするの?
まず、質問です。

「あなたはどんなインジケーターがほしいですか?」

その求めているものをイメージできますか?もしイメージできなければ、おそらくプログラミングを学ぶことは苦痛となってくるでしょう。私も多くの人にMQL4を教えてきました。しかし途中で止めてしまう人、諦めてしまう人、結構います。その止めてしまう人に共通するのが欲しいインジケーターが明確でないということです。

プログラミングってシンプルです。0か1の世界。論理的で明確、白黒はっきりしてます。ただシンプル=簡単という意味ではありません。かなり難しい部分があります。トライ&エラーの連続でキーボードを投げつけたい気持ちになることも何度もあります。

プログラミングは手段です。何を作るか、この目的がないと続けることができません。私も漠然とプログラミングを勉強していた時期がありました。当然続きませんでした。明確に求めるものがあったからこそ、続けることができたのだと、振り返ってみて思います。「検証したい」だからこんなインジケーターがほしい、そう思えたのでできるようになりました。

プログラミング言語ということだけあって、英語とかの言語と同じです。英語を学ぶことは楽しいです。私も一時期TOEICで高得点の獲得をめざすことをしていました。達成感もありますよね。私も多くの時間とお金を投資してきました。それで結果はどうですか?
求めるものがあるからこそ、手段が必要になります。プログラミングに必要なことは単語を多く知ることではありません。求めるものに対する必要なスキル、知識だけです。

今ならまだ間に合います。どんなインジケーターを作りたいか、明確にしてください。


2.MT4インジケーターを得る方法
自分の求めているものが既にあるのであれば、それを使えばいいのではと思います。最終的な目的はトレードで勝つこと。資金を増やすことです。

・無料のインジケーター
まずゴールデンウェイ・ジャパンでは無料のインジケーターが公開されています。ゴールデンウェイ・ジャパンにしかないオリジナルなものも多数あります。LIVE口座でないと使えないものもあるので、口座開設してみてはいかがでしょうか。
FXTF公式サイト インディケータ・ツール

・有料のものを使う
無料があるなら、当然有料のものもあります。MT4/MT5公式のサイトが世界でいちばん有名になります。
MT4/MT5公式サイト マーケット

日本のサイトも探すとあります。

無料、有料どちらもですが、自分の求めているものにピッタリ合えば、何の問題もないでしょう。しかし出してほしいサインとか機能とか微妙に求めているものと違ったりします。そこは目をつぶってしまう、諦めるのも選択の一つです。納得いかなければ作るしかありません。

・プログラマーに作ってもらう(個人、クラウドソーシング)
Googleで検索すると個人で依頼し作ってくれるところもあります。 そして最近ではクラウドソーシングといいまして、仕事を提示し、プログラミングできる方を募集する方法もあります。
既にあるインジケーターにアラートを付けてほしいということだけであれば、わざわざプログラミングできる必要がありません。お金を払って頼む方が楽です。 一つ気になるのが、ご自身のアイデアを伝えることになる点です。せっかく考えたことを人に教えることによる影響・損失を考える必要があります。


3.自分で作るのであれば
どんな勉強もそうですが、習うか、独学でやるか、どちらかになります。

Googleで検索すると、MQL4専門のプログラミング講座があります。そこで学ぶのも一つでしょう。

習うメリット
・時間を短縮して、最短で身に付く。
・質問できる

習う方が効率的です。多くのプログラマーの方もまず習っているようです。遠回りすることなく、本当に大事なことを知るのにいいかと思います。

ポイントは何度も質問できるサービスであるかどうか。当然分からないところが出てくるわけですから、動画を観るだけになるとインジケーターを作るのは難しいかも。きちんとアウトプットできるところを選びたいところ。

MQL4/MQL5のプログラミングを習うというのは数が少ないので難しいかもしれません。そうであれば、矛盾する部分があるかもしれませんが、一度プログラミング言語の基礎を学ぶつもりで他の言語をやるのも一つです。C言語は基礎を理解するのにいいですし、C++言語はMQL4/MQL5言語に比較的近いです。C言語/C++言語であれば探せばあると思います。または将来のことを考えてPythonを学ぶのもいいかもしれません。データ分析等、幅広いことができます。

習うデメリット
・受講料がかかる

受講料がかかったとしても、トレードで回収すると思うことでモチベーションは上がります。先行投資は必ず必要です。

さて、ここまで来て、それでも作りたいという方に、話を進めたいと思います。覚悟はできてますか。

私は独学でやってきたからこそ、独学でやる方法が分かりますが、それが正しいかは分かりません。人それぞれ好み、タイプがあります。

独学するメリット
・最小限の費用
・自分で考え、調べる能力がつく

当然独学なのでコストはかからない。正確には本を買うのでかかるのですが、極力押さえることはできるでしょう。

そして最終的には自分で考え作っていかないといけません。プログラミングできるできないの差は自らが作ったコード量だと思います。圧倒的なコード量です。試行錯誤しないと結局はできません。

独学するデメリット
・時間がかかる、非効率
・質問できない

とにかく遠回りになり時間がかかります。ただ、MQL4/MQL5はそんなに難しいことを考えなくてもある程度基礎、基本のプログラミング習得だけでインジケーターやEAができます。ものすごくこったものを作るのであれば、中上級のスキルが必要になってきますが、そこまでのスキルは必要ではないと思います。必要でないことに時間をかけることは無駄です。

そして分からないところが出てきたときに、すぐに聞けないということです。今はネット環境があるので、質問して解答を頂けるサイトはありますので活用できますが、的確にすぐ答えてくれるかは分かりません。

まとめると、習いに行った方が効果的なのは間違いないです。ただMQL4/MQL5を学ぶところは少ないので、C、C++、Pythonを学んで遠回りするのも悪くはないと思います。それと同時にMQL4/MQL5を独学しながらインジケーターを作るのをめざすのはどうでしょうか。


4.お薦めの本
はっきり言って、MQL4/MQL5の参考書でいい本がありません。唯一、豊嶋 久道氏の『新MT4対応 FXメタトレーダープログラミング入門』しかないのが現状です。

新MT4対応 FXメタトレーダープログラミング入門 Kindle版

そして残念なのが、Kindle版しかないこと。ただKindle版だからこそ価格が900円と安いです。

それをサポート、理解を深める上で、C、C++、Pythonの本はたくさんあるので、その入門の本を買って読むのはいいかもしれません。MQL4/MQL5のことを考えれば、C++の入門書です。まずはC++から入るのがベターでしょう。もしくはCの入門書。プログラミング言語全体を考えた人気であったり、将来のことを考えるのであればPythonから。面白いことをしたいのであれば、最終的にPythonに行き着くことになるかと思います。

ただし器用貧乏にはならないでください。初級の考え方だけをマスターするのが目的であり、C、C++、Pyhon全てマスターする必要はありません。

~後編へつづく~


著者プロフィール
「FX手とり」手っ取り早く、時には手取り足取りFX・CFDを
「手とり」には「手っ取り早く」という意味と、「手取り足取り」という2つの意味が込められています。疑問に対する答えを手っ取り早く提供する、あるいは順を追って手取り足取り解説する、2つのニーズに応えます。


本稿は筆者の個人的見解に基づき、執筆されたものです。あくまでも個人ユーザー向けのコラムとして提供された参考記事であり、ゴールデンウェイ・ジャパン(株)の見解、分析ではございません。

リスク警告 / 免責事項

  • 当サイトは、投資判断にあたり参考となる情報の提供を目的としており、金融商品の売買を勧めるものではありません。
    投資の最終的な判断はお客様ご自身の責任でされるようお願いいたします。
  • 当サイトは、当社が信頼できると判断した情報を掲載しておりますが、その情報の正確性、完全性を保証するものではありません。
    ご提供する情報を利用につき生じた何らかのトラブルや損失・損害等につきましては、当社及びブログ執筆者は一切責任を負うものではありません。
  • 当サイトでご提供する情報の著作権は、当社又はブログ執筆者で帰属します。許諾なく、コンテンツを翻案、公衆送信等いかなる目的、態様においても利用することはできません。