しかし、その手軽さからか、メタトレーダーを単なる自動売買実行ソフトとし
て扱い、ろくに自分で検証もせずに既成の売買システムを購入して、大切な自分
の資金を運用しようとする投資家もいるようだ。
もちろん、既成の売買システムのなかには優れたものもある。しかし、すべて
ではない。また、すべての業者が同じ相場を提供するとは限らないFXやCFD(差
金決済取引)では“優れたシステム”でさえ機能しない可能性があるのだ。
自動売買で成果を上げている人たちは、超一流のアスリートと同じように、人
一倍の努力を重ねている。涼しい顔で好成績を上げるその裏側で、自分のスタイ
ルを構築するため、たゆまぬ研究と検証、実践を続けているのだ。
実は、その「パートナー」としてうってつけなのが、メタトレーダーなのであ
る。ただし、その潜在能力を引き出すためには、メタトレーダーと「会話」をす
るためのプログラム言語「MQL4」の習得が求められる。
本書はメタトレーダーブームの火付け役となった『FXメタトレーダー入門』の
続編として、前作では詳しく触れることができなかったメタトレーダーの強力な
プログラミング機能をできるだけ多く紹介した。
「ただプログラムが分かる」レベルから「自分の思ったとおりのプログラムが
作れる」レベルになるには、外国語の学習同様、最低限の試行錯誤が必要であ
る。しかし、本書でその「最低限の試行錯誤」を効率良く経験してもらおうとい
うわけだ。
■はじめに
「外国為替証拠金取引」いわゆる「FX」が、ここ数年で急速に普及し、投資対象として一般にも認知されるようになりました。24時間不眠不休のFX市場では、日中に仕事がある人でも、ファンダメンタル分析による長期的な投資から、ティックチャートを見ながらのデイトレードまで、さまざまなスタイルでの運用が可能です。
もちろん、多様なスタイルでの運用が可能だからといって、簡単に利益を出せるというわけではありません。
FXの特徴のひとつは、小額の投資資金を担保に多額の取引ができる「レバレッジ(てこ)」を利用できるところです。しかし、投資資金の何倍、何十倍もの外貨を取引することは、大きなリターンを望める反面、それだけ大きなリスクを取っているという心構えが求められます。
つまり「どのような売買をすれば、どれだけの利益を出し、どれだけの損失を出す可能性があるのか?」―これを全く考えずにFXに取り組むのは文字どおり「無謀」なのです。
そこで、FX投資家の間でも、あらかじめ設定したルールに従って機械的にトレードを実行する「システムトレード」という手法が注目を集めるようになりました。
システムトレードのメリットのひとつは、感情に振り回されることなくトレードを執行できるため、誰でも同じ結果を出せるところです。しかし、それはシステムトレードを利用する人向けの“表面的”なメリットにすぎません。
システムトレードの真のメリットは、自分にあった売買システムを開発する過程で得られるものだと考えます。つまり、膨大な過去データを駆使して、さまざまな観点から徹底的に検証していくことで、相場を客観的に判断できるようになることです。徹底検証こそがシステムトレードの本質であり、最大のメリットといえます。
そしてこの徹底検証を実現できるソフトのひとつが「メタトレーダー」です。しかも、このソフトは自分で勉強すればするほど、威力を発揮するのです。
前作『FXメタトレーダー入門』では“入門”の名前どおり、初めてこのソフトを操作する方を対象に、メタトレーダーのインストール方法から操作方法、さらに「MQL4」というメタトレーダーに搭載されたプログラミング言語の基本について解説をしました。初心者向けとしたのは、当時メタトレーダーを知る人が、ごく少数だったからです。
ところが、その後メタトレーダーは急速に個人投資家の間に知られるようになり、続編を望む声が筆者の耳にも届くようになりました。多くの方々が、システムトレードに関心を寄せていることを感じます。
今回『FXメタトレーダー実践プログラミング』を構成するにあたり、前作をご覧いただいてメタトレーダーがひととおり使えるようになったユーザーの皆さんに対して、どのような情報が必要なのだろうかと考えました。
「エキスパートプログラム」による自動売買は、メタトレーダーの大きな目玉です。そういったことから、実用的な売買システムをMQL4でプログラムして、それを羅列することも考えました。
しかし、単にプログラムをコピーして実行するだけでは、自力でプログラムを考案し、作成する技術を向上させることはできないでしょう。また実用的な売買システムは無数に存在します。そのなかでいくつかのシステムを選んだとしても、どうしても中途半端な内容にしかなりません。
そこで本書では、売買システムを開発していく過程が段階的に学べるよう、次のような構成を考えてみました。
第1章 メタトレーダーの構成を知る
メタトレーダーを発注ソフトとして提供しているFX業者の紹介と、メタトレーダーのインストールフォルダとファイル構成、MQL4プログラムの基本について解説します。
第2章 カスタム指標プログラムで独自のテクニカル分析
MQL4に組み込まれているテクニカル指標関数の使い方と、それらを組み合わせて“独自”のテクニカル指標を作成する手順について説明します。
第3章 トレード関数で柔軟な注文を実現
MQL4に組み込まれているトレード関数の使い方と、エラー処理にも対応した関数化の方法、それを利用した複雑な注文プログラムについて説明します。
第4章 エキスパートプログラムでシステムトレード自由自在
システムトレードを機能ごとに関数化し、複雑な売買システムを簡潔にプログラムする方法や、システム検証の注意点について説明します。
第5章 MQL4をさらに使いこなしたい人のために
第2章から第4章までの内容の理解をさらに深め、応用を利かせたプログラムが作成できるよう、MQL4のそれぞれの機能を詳しく説明します。
このように本書は「MQL4のプログラミング技術向上」を目的としています。前作では詳しく触れることができなかったメタトレーダーの強力なプログラミング機能をできるだけ多く紹介することを心がけました。
MQL4のプログラムは、C言語同様、「関数」というブロックを並べて構成されています。関数とは、意味や内容をひとまとめにした一連の作業のことです。関数を使いこなすことがプログラミング技術の向上につながると考えました。
そのためにサンプルプログラムも多数掲載しています。ただし、プログラミングに「絶対にこうしなければならない」というものはありません。本書で説明した内容は、あくまで筆者自身の経験に基づく、いわば「プログラミングの流儀」です。
「独自のテクニカル指標を作成して、思いどおりの分析をしてみたい」「システムトレードに関するアイデアを自由にプログラムし、自動売買まで手掛けたい」など、メタトレーダーで何をやりたいかは、人それぞれだと思います。本書を通じて、自分なりの「流儀」を見つけることができれば、メタトレーダーはFXトレードの強力なパートナーとなることでしょう。
本書の最後に、付録としてMQL4の関数一覧を設けました。今回は、前作と本書を含めた関数の解説個所の索引にもなっています。さらに具体的な売買システムや、システムの開発、評価方法を詳しく知りたい方のために、参考図書もご紹介しました。
『FXメタトレーダー入門』と『FXメタトレーダー実践プログラミング』をお手元に置いていただき、メタトレーダーのパワーアップに役立てていただければ幸いです。
本書で紹介しているのは、メタトレーダーのバージョン4「メタトレーダー4(MetaTrader 4=MT4)」です。ところが、本書執筆中に、バージョン5「メタトレーダー5(MetaTrader 5=MT5)」のリリース予定の情報が入ってきました。
バージョン4からバージョン5へのバージョンアップは、通常のアップデートとは異なり、ソフトウェアを根本的に開発し直すことを意味します。つまり、メタトレーダーの画面やメニュー構成など見た目で分かる部分だけでなく、内部のデータ構造やデータの処理方法などが全く一新されるわけです。
同じメタトレーダーといっても、中身は全く別のものと考えたほうがよいでしょう。
MT4では「MQL4」と呼んでいたプログラミング言語も、MT5では「MQL5」と名前を変えたものが搭載されています。MQL4からMQL5に変わることで、多くのプログラミングの機能が新しく追加されると同時に、いくつかの関数で仕様が変更になるものもあるでしょう。MQL4で作成したプログラムをMQL5に対応させるためには、多少の修正が必要となるかもしれません。
ただし、MQL5はMQL4と同様、C言語(正確にはC++言語)をベースに開発されています。したがって、基本的なプログラミングに関する考え方に変わりはないでしょう。
メタトレーダーは実際のトレードに使うソフトです。不具合によって動作が不安定な状態では安心して使うことができません。MT5が正式にリリースされたとしても、十分に時間をかけて不具合の修正を繰り返し、安定した動作を保証させる必要があります。実際に業者の取引ソフトとして採用されるのは、まだまだ先のことになるでしょう。
逆に、これからはMT4の大幅なアップデートがほとんどないので、今お使いのMT4を同じ環境のまま安心して使うことができると思います。今のうちにMT4でプログラミングの技術を身につけておけば、MT5にもスムーズに移行できるはずです。
本書では、まだMT5の詳しい情報について触れません。本書を通じてMT4をマスターした皆さんが将来MT5へスムーズに移行できるよう、MT5の情報については下記のウェブサイトなどで随時報告していきたいと考えています。
■さいごに
メタトレーダーのプログラミングを学ぶため、いろいろなサンプルプログラムに目を通すのは大切なことです。最近ではインターネット上にカスタム指標プログラムやエキスパートプログラムのソースファイルが多数公開されるようになりました。
しかし、プログラムというのは、作者のクセや好みで書かれており、一度に複数の作者の書き方をみても混乱するだけです。
プログラミング言語は、日本語や英語などの言語と同じです。
同じ内容を説明するにも、いろいろな言い方があり、人それぞれ、言いやすい言い方は異なります。
本書は、前作『FXメタトレーダー入門』の続編として、ただプログラムが分かるレベルから、自分の思ったとおりのプログラムが作れるレベルを目指してきました。そして、メタトレーダーのプログラミングで何ができて、何ができないのかをはっきりさせるため、MQL4に搭載されている多くの関数を紹介しました。
しかし、単なる関数のレファレンスではありません。
本書では、MQL4を自分の言葉として自由に操ることができるよう、筆者なりの「流儀」を紹介しました。「売買ロジックをいくつかの関数に分けて記述する」「しかもそれぞれの関数はシンプルに記述する」―これが筆者の流儀です。
ただし、これだけが正しい方法というわけではありません。自分だったらこう書いたほうが分かりやすい、という方法もあるはずです。
語学同様、プログラミングも「習うより慣れろ」です。独自のプログラムをたくさん書いていくことで、自分なりの「流儀」を見つけてください。
FXのシステムトレードソフトとして確固たる地位を築いたメタトレーダーは、将来的に株式や先物、CFD(差金決済取引)の世界でも広く利用されるようになり、ますます世界中で利用者同士のネットワークが広がっていくことでしょう。
今後も、さまざまなシステムトレードのアイデアとともにメタトレーダーを使いこなしていってください。
その可能性を広げるのは皆さん自身です。