【MQL5パラダイス】はじめまして、MQL5の世界へようこそ!
【MQL5パラダイス 第1回】ようこそ自動売買の楽園へ!MQL5開発の第一歩を踏み出そう
はじめまして、MQL5パラダイスへようこそ!
皆さま、はじめまして。長年にわたりFXの世界でプログラムとチャートに向き合ってきた、MQL5が大好きなパイナップルです。
相場の世界は本当に奥深いですよね。上がったり下がったり、時には想像もつかないような動きを見せるチャート。そんな相場の波を乗りこなすために、日々奮闘されている方も多いことでしょう。
今日からGogoJungleさんの投資ナビ+を使って、「MQL5パラダイス」という新しい連載をスタートさせていただくことになりました。この連載では、MQL5というプログラミング言語を使って、あなただけのインジケーターや自動売買システム(EA)を作り上げるためのノウハウを、余すところなくお伝えしていきたいと考えています。
「プログラミングなんて難しそう…」「文系だから無理!」と身構えてしまう方もいらっしゃるかもしれませんね。でも、どうぞご安心ください。私は長年、相場とプログラムに向き合ってきましたが、実はそこまで複雑なことはしていません。むしろ、過剰な最適化(カーブフィッティング)を避け、シンプルで堅牢なトレードを重んじるというのが私の信条です。
複雑すぎるロジックは、過去の相場にはぴったり当てはまっても、未来の相場では全く通用しないことがよくあります。本当に強いシステムというのは、驚くほどシンプルなルールで動いていることが多いのです。この連載では、そうした実践的な「考え方」も含めて、皆さんと一緒に楽しく学んでいけたらと思っています。
コーヒーでも飲みながら、リラックスして読み進めてくださいね。
なぜ今、MT5とMQL5を選ぶのか?
さて、皆さんは普段、どのプラットフォームでトレードをされていますか?おそらく「MetaTrader 4(MT4)」を使っているという方がまだまだ多いのではないでしょうか。MT4は非常に優秀なツールですし、世界中で愛されている名機です。
しかし、時代は少しずつ、確実に「MetaTrader 5(MT5)」へとシフトしてきています。GogoJungleでも、MT4のツールをMT5用に変換する「MQL5コンバーター」などが話題になっていますよね。それだけ、MT5への移行の波が来ているということです。
では、なぜ私たちがわざわざ新しい言語であるMQL5を学ぶべきなのでしょうか?それにはいくつかの明確な理由があると考えます。
- 圧倒的なバックテストのスピード MT5の最大の魅力は、なんといっても動作の軽快さとバックテストの速さです。複数の通貨ペアを同時にテストする機能(マルチカレンシー対応)など、MT4では難しかったことがサクサクとこなせます。EA開発において、テストにかかる時間はそのまま「開発スピード」に直結しますから、これは非常に大きなアドバンテージになります。
- より自由で高度な表現力 MQL5はオブジェクト指向という考え方が取り入れられており、プログラムの部品をブロックのように組み合わせていくことができます。これにより、複雑なインジケーターの描画や、ボタンをクリックして操作するような便利なパネルなども、比較的スムーズに作ることができるのです。
- 未来への投資 開発元であるMetaQuotes社は、すでにMT5のアップデートに注力しています。これから新しく何かを学ぶのであれば、やはりこれからのスタンダードになるツールを選ぶのが賢明でしょう。
最初はMT4の言語(MQL4)との違いに戸惑うこともあるかもしれませんが、一度MQL5の快適さに慣れてしまうと、もう後戻りできなくなるはずです。まさに「パラダイス」のような快適な開発環境があなたを待っています。
開発環境はすでにあなたのパソコンの中に
プログラミングを始める際、最初につまずきがちなのが「開発環境の構築」です。色々なソフトをダウンロードして、初期設定をして、パスを通して……と、それだけで一日が終わってしまい、肝心のプログラムを書く前に疲れて果ててしまうことも少なくありません。
しかし、MQL5の素晴らしいところは、MT5をインストールした時点で、開発環境がすでに整っているということです。
MT5の画面を開き、上部のメニューにある「黄色いノートのようなアイコン」をクリックするか、キーボードの「F4」キーを押してみてください。すると、「MetaEditor(メタエディター)」というプログラムを書くための専用画面が立ち上がります。
これだけで準備完了です!新しいソフトを買う必要も、面倒な設定もいりません。思い立ったその瞬間から、あなたはプログラマーとしての第一歩を踏み出せるのです。なんだかワクワクしてきませんか?
プログラムは「魔法」ではなく「料理のレシピ」
「でも、黒い画面に英語の文字列が並んでいるのを見ると、頭が痛くなる……」
そんな声が聞こえてきそうですね。確かに、初めて見るソースコードはまるで解読不能な暗号か、あるいは黒魔術の呪文のように見えるかもしれません。
しかし、プログラムの正体はとてもシンプルです。例えるなら「料理のレシピ」と同じようなものかもしれません。
たとえば、「カレーライスを作る」というレシピを思い浮かべてみてください。
- 玉ねぎとじゃがいもを切る
- 鍋で炒める
- 水を入れて煮込む
- カレールーを入れる
- もし味が薄かったら、少し塩を足す
肉入れないのかよ!というツッコミは置いといて、プログラムもこれと同じように、「コンピュータにしてほしいこと」を順番に書いているだけなのです。実際のMQL5のプログラムでは、どのような振る舞いをするのでしょうか。例えば、移動平均線(MA)が交差したときにサインを出すインジケーターの動きを言葉にしてみましょう。
- チャートの準備(下ごしらえ) まずは画面上に、短期の移動平均線と長期の移動平均線を計算して準備します。「過去14日分の平均」と「過去50日分の平均」を裏側で計算し続けるわけですね。
- 状況の監視(鍋の火加減をチェック) 新しいローソク足が完成するたびに、2つの移動平均線の位置関係を確認します。
- 条件の判定(味が決まったかどうかの味見) 「もし、さっきまで短期線が長期線より下にあったのに、今は上に来ている(ゴールデンクロスした)なら」という条件をチェックします。
- 実行(盛り付け) 条件に当てはまっていたら、チャート上に上向きの矢印(↑)を描画します。同時に「チャンス到来です!」とアラート音を鳴らすこともできます。
いかがでしょう?このように言葉に翻訳してみると、決して理解できない魔法ではないことがお分かりいただけると思います。
私たちがこれからMetaEditorで書いていくのは、こうした「MT5に対するお願い事のリスト」です。MT5はとても真面目で素直なので、私たちが書いたレシピ通りに、文句一つ言わず24時間働き続けてくれます。時にはレシピを間違えて変な動きをすることもありますが、それもまた愛嬌です(笑)。失敗を重ねながらレシピを改良していくプロセスこそが、開発の醍醐味でもあります。
私が「シンプルで堅牢なトレード」を愛する理由
ここで少し、私のトレードに対する考え方をお話しさせてください。
プログラムが書けるようになると、人は往々にして「もっと複雑な条件を付け加えよう」「過去10年間のチャートで一度も負けない最強のEAを作ろう」と躍起になってしまいます。様々なインジケーターを組み合わせ、パラメータを何十個も設定し、過去のデータに対して完璧に利益が出るように調整するのです。
これを専門用語で「カーブフィッティング(過剰最適化)」と呼びます。
パソコンの画面を睨みつけ、目が充血するまでパラメータをいじり倒し、「ついに聖杯を見つけた!」と歓喜する……私も昔はよくやっていました(笑)。
しかし、そうして出来上がった「過去に特化した最強のEA」を実際の相場(フォワードテスト)で動かしてみると、どうなると思いますか?大抵の場合、目を覆いたくなるような大惨事になります。なぜなら、相場は生き物であり、過去と全く同じ動きが未来に繰り返されることは絶対にないからです。
過去の特定の期間の、特定のノイズ(一時的な値動き)にまで無理やり合わせてしまったシステムは、少しでも相場の環境が変わると、途端に機能しなくなってしまいます。
だからこそ、私は「シンプルで堅牢なトレード」を重んじています。
本当に勝てるロジックというのは、「移動平均線がクロスしたら買う」「サポートラインを抜けたら売る」といった、古くからあるシンプルな王道の手法に行き着くことが多いのです。シンプルなルールは、相場環境の変化に対しても柔軟に耐えうる「遊び」を持っています。
この連載で皆さんに自作ツールを作っていただく際にも、「いかに複雑にするか」ではなく、「いかに無駄を削ぎ落として本質を突くか」という視点を大切にしていただきたいと考えています。過度な最適化の誘惑を断ち切り、長く生き残るためのプログラムを一緒に作っていきましょう。
これから一緒に学んでいく道のり
さて、この「MQL5パラダイス」では、今後どのようなことを学んでいくのか、大まかな道のりをご紹介しておきます。
- 基本をマスターする 変数や関数といった、プログラミングの基礎となる言葉の意味を、分かりやすい例え話を使って解説します。難解な専門用語は極力避けて進みますので安心してください。
- 自分だけのインジケーターを作る まずは画面に線を描いたり、サインを出したりするインジケーターの作成に挑戦します。自分の思い描いたロジックがチャート上に可視化される喜びは、何にも代えがたい経験になりますよ。
- EA(自動売買システム)の開発 インジケーターで培った知識を活かして、実際に注文を出したり決済したりするEAの作り方を学びます。資金管理の考え方や、エラーが起きたときの安全対策などもお伝えします。
- 実践的な実装テクニックと配布の準備 作成したツールをより使いやすくするための工夫や、GogoJungleで他の方に使ってもらう(出品・配布する)ための実践的なノウハウも紹介していく予定です。
段階的にステップアップしていきますので、焦らず自分のペースでついてきてくださいね。もし途中で分からなくなったら、前の記事を振り返ってみてください。
おわりに
記念すべき第1回目、長くなってしまいましたが最後までお付き合いいただきありがとうございました。
今回はプログラミングのコードは一切出てきませんでしたが、まずは「MQL5って面白そうだな」「自分にもできそうだな」というイメージを持っていただけたなら、大成功です。
自動売買プログラムを自作できるスキルは、あなたの一生の財産になります。他人が作ったブラックボックスのEAに頼るのではなく、ロジックの隅々まで自分で把握し、納得して運用できるというのは、精神的にも非常に大きなメリットがあります。
次回はいよいよ、MetaEditorを使って簡単なプログラムを実際に動かしてみます。MT5の画面に「こんにちは、MQL5!」と表示させる、はじめの一歩を踏み出しましょう。
それでは、次回の「MQL5パラダイス」でまたお会いできることを楽しみにしています。あなたのトレードライフが、より豊かで実りあるものになりますように!
Is it OK?