FXメタトレーダー4 MQLプログラミング
著 者:アンドリュー・R・ヤング
監修者:長尾慎太郎
訳 者:山下恵美子
定 価:本体2,800円+税
体 裁:A5判/294ページ
発売日:2012年3月
ISBNコード:978-4-7759-7158-1
究極のMQLプログラミング――初級者には手解きのコツ、上級者にはひらめきを伝授!
MQLプログラミングのための初めての総合ガイドがついに登場! 本書は、今人気のメタトレーダー4を使ってFXの自動売買を行う堅牢なトレーディングシステムを開発するためのプロセスを紹介したものである。
世界中の個人トレーダーのために、何年にもわたって数多くのEA(自動売買システム)をプログラミングしてきた著者がその豊富な経験に基づいて、トレーディングを行ううえで必要となるさまざまな作業をプログラミングする方法を紹介する。
《トレーディングに必要な作業》
・成行注文、逆指値注文、指値注文を出す
・正確な損切り価格と利食い価格を計算する
・リスクに基づくロット数を計算する
・出した注文に柔軟性のあるトレイリングストップを追加設定する
・注文やポジションの総数を数えたり、それらの変更・決済を一度にまとめて行う
・インディケーターや価格データを使ってトレーディング条件を検証する
・柔軟性のある再利用可能な関数を作成する
・タイマー、メールによる警告、マルチンゲール戦略によるポジションサイジングといった高度な機能を追加する
・よくあるトレーディングエラーの防止と簡単なトラブルシューティングを行う
・小数点以下3桁および5桁を用いるブローカーとFIFOに対応できるようにする
・独自のカスタムインディケーターとスクリプトを作成する
トレーディングアイデアを自由にプログラミングし、短時間でEAを開発することを可能にする本書は、プログラミングの初心者からベテランプログラマーまで、あらゆるレベルのプログラマーにも役立つ。本書では数多くのサンプルプログラムを詳しい説明つきで提供すると同時に、高度な機能を持つサンプルプログラムや再利用可能な関数も紹介する。独自のEAの開発にぜひとも役立ててほしい。
目次
(本テキストは再校時のものです)
監修者まえがき
メタエディター入門 買い気配値、売り気配値、スプレッド ECNへの対応 ロット数を計算するための関数
ループ(繰り返し処理) 価格データ 日付時刻型変数
エスケープ文字 バッファー
簡単なEA
高度なEA
関数を使ったEA
インクルードファイル
カスタムインディケーター
索引
はじめに第1章 MQL入門
基本的概念
MQ4ファイルの構造
第2章 売買注文
注文種別
注文を出す手順
関数OrderSend()
損切り価格と利食い価格の計算方法
関数MarketInfo()
注文やポジションの状態に関する情報の取得
決済とキャンセル
簡単なEA
第3章 高度な売買注文
注文の変更
損切り価格と待機注文の価格の検証
ロット数の計算
そのほかの注意点
第4章 作業の関数化
損切り注文と利食い注文を追加設定する
インクルードファイルを使う
ライブラリーを使う
関数を使った簡単なEA第5章 ポジションと注文の管理
待機注文と保有中のポジションの数を数える
トレイリングストップ
EAの更新
第6章 売買条件とインディケーター
インディケーター
インディケーターの定数
いろいろな足のインディケーターの値の比較第7章 日時
日付時刻関数
簡単なタイマーの作成
新しい足の始値でトレードを実行する第8章 ちょっとしたコツとアドバイス
チャートにコメントを表示する(チャートコメント)
チェック関数
自作EAの使用制限
関数MessageBox()
メールによる警告
エラー発生後の注文を出し直す
オーダーコメントを識別子として使う
証拠金を調べる
スプレッドを調べる
複数の注文を出す
グローバル変数
利益を調べる
マルチンゲール戦略
EAのデバッグ
第9章 カスタムインディケーターとスクリプト
カスタムインディケーターの作成
スクリプト付録A
待機注文を出すための簡単なEA付録B
待機注文を出すための高度なEA付録C
関数を使ったEA――待機注文付録D
付録E
監修者まえがき
本書はアンドリュー・R・ヤングがMetaTraderに搭載されているMetaEditor(MQLエディター)で初歩的な自動売買プログラムの構築する方法を解説した“Expert Advisor Programming”の邦訳である。MetaTraderの名前を初めて聞いたという方に説明しておくと、それは個人投資家が外国為替(FX)の証拠金取引において用いる代表的な売買ツールで、各種ストラテジーの検証やそれに基づいたトレードの自動執行を可能としている。この種のツールがリリースされたおかげで、マーケットのモニタリングと売買の執行においては、機関投資家と個人投資家との距離は近年かなり縮まったと言ってよい。純粋にテクニカルな意味でのハンディキャップを個人投資家が感じることは今やもうないだろう。
だが、マーケットに関する理解や有効な売買ストラテジーの構築に関しては、残念ながら逆の現象が起きているようだ。機関投資家の世界では、今世紀に入ってから数理的なアプローチによる売買ストラテジーが急速に進化・発展したが、一方で大多数の個人投資家はその流れから完全に取り残されてしまっている。もっとも、こうした技術改革は機関投資家のなかでも限られた人たちだけが実践し、そのメリットを享受しているのが実態であり、したがって、そのサークルから少し離れたところにいれば、機関投資家勤務で運用経験のある人間であってもそうした事情に疎いことになる。いわんやまったく情報が伝わってこない場所にいる個人投資家ならばなおさらである。
ここで過去を振り返ってみれば、インターネットの黎明期にはこうした情報格差が極めて小さくなったことがあった。ネット上に参加者が少なくかつモラルが存在した時代には、トレードの実務に携わっている人が極めて質の高い情報を無償で発信し、それを読んで理解した側が素直にトレードを実行するだけで簡単に利益を得られるという構図が確かに存在したのだ。だがその後、ネットの裾野が広がるに従い誤った情報や悪意のあるデマがどっとあふれ出し、それを自ら進んで妄信する人が支配的になった。その結果、相場の真実を知る少数の人たちは排斥されるか、ネット上の無軌道ぶりにあきれて自ら去っていった。良貨は悪貨によって駆逐されたのである。彼らがネットに戻ってくることはもう二度とないであろう。今では、トレード技術について正しい何かを知るには、優れた先達の面識を得る偶然のチャンスに巡り会うか、もしくは断片的な情報を基に自分自身の手で一からそれを築き上げていくしかない。
だが、それでも悲観する必要はまったくない。だれであれ事実に基づいた合理的な思考さえできれば、MetaTraderをはじめとした情報通信関連のツールを駆使することで後者は十分に可能である。むしろ、FXに限らずトレードとは本来まったく個人的なものであり、したがってすべての過程を自分の努力で成し遂げるべき種類のものなのだ。このような理由から、投資家の自助を促す本書のような解説書を私は熱烈に歓迎するものである。
本書の翻訳にあたっては以下の方々に心から感謝の意を表したい。翻訳者の山下恵美子氏は正確な翻訳を実現してくださった。そして阿部達郎氏にはいつもながら丁寧な編集・校正を行っていただいた。また本書が発行される機会を得たのはパンローリング社社長の後藤康徳氏のおかげである。
2012年1月
長尾慎太郎
はじめに
最近、トレーダーたちの間でにわかに人気を集めているのがFX市場だ。FX市場は24時間取引ができ、しかも少ない証拠金で大きな取引ができる高レバレッジが魅力の市場だ。そのため大勢の一般トレーダーたちが活発にトレードするようになった。
そしてFX用トレーディングプラットフォームとして、今最も人気を集めているのがメタトレーダー4(略してMT4)である。メタクオーツ・ソフトウエア社が開発したメタトレーダーは、ゲインキャピタル、FXCM、アルパリ、インターバンクFXなどの大手をはじめ、世界中のFXブローカーたちが発注ソフトとして採用している。
メタトレーダーの人気の秘密は、無料で使えること、発注ソフトとして採用しているブローカーが多いこと、そして多くの役立つテクニカル分析ツールが搭載されている点にある。しかし、最大の魅力は、MQL(Meta Quotes Language)というパワフルなプログラミング言語を使って独自のプログラムを作成できる点にあるといってよいだろう。
MQLのおかげで、トレーダーたちは独自のインディケーターや自動売買戦略を簡単にプログラミングできるようになった。しかも、ソフトウエアは無料で使える。株式や先物トレーディング用の似たようなソフトは1000ドル以上するものもある。また、トレーダーやプログラマーたちが集う世界規模のコミュニティーでは、プログラミングサービスやアドバイスのほか、さまざまなEA(エキスパートアドバイザー=Expert Advisors。自動売買システム)やインディケーターが無料あるいは有料で提供されている。
MQLはC言語などの従来言語に似ているため、経験豊富なプログラマーにとっては比較的とっつきやすく、マニュアルも充実している。しかし、MQLでトレーディング戦略を効果的にプログラミングするには、試行錯誤を繰り返しながら地道に学んでいくしかない。
MQLは低級言語の部類に入る。したがって、トレード関数を使ってさまざまなトレードを行うには独自の手順を作成する必要がある。したがって、例えばトレイリングストップのような簡単なものをプログラミングするのでも、MQLプログラミングの初心者にとっては困難な作業になるかもしれない。
堅牢な自動売買戦略をプログラミングするときには、考慮しなければならない要素がたくさんある。しかもメタトレーダー自体、独特の特徴を多く持つため、プログラマーとしては注意が必要だ。初心者にとって、トラブルシューティング(問題解決)やEAのプログラミングに必要な技術を学ぶには若干時間がかかるかもしれない。
本書によってEAプログラミング初心者の学習期間を短縮できれば幸いだ。本書では過去数年にわたってEAのプログラミングのために費やした多大な時間のなかで私が習得したちょっとしたコツやアドバイスもたくさん提供している。読者のみなさんのプログラミングにぜひ役立ててもらいたい。
本書について
本書を読み終えるころには、トレイリングストップやマネーマネジメントなどの一般的なトレーディング要素を含め、独自の堅牢な自動売買戦略をMQLで作成するのに必要な知識が身についているはずだ。また、MTの組み込みインディケーター関数を使って簡単なインディケーターを構築できるようにもなっているだろう。
本書はFXトレーディングとテクニカル分析の一般的な知識を持つ読者を対象とするものである。本書の読者はメタトレーダーにおけるEAやインディケーターの使い方については十分な知識を持っていることを想定している。プログラミングに関する基礎的な知識は必要で、基本的なプログラミング技術があり、変数、制御構造、関数、および現在普及しているプログラミング言語のシンタックス(文法)といった概念を知っているとより理解度は高まる。
本書では実際のコードを見ながら学習を進めていく。新しい概念については登場した時点でできるかぎり説明するが、本書は言語マニュアルではないことを念頭に入れておいてもらいたい。詳しくは、MQLリファレンス(ホームページ http://docs.mql4.com/)を参照してもらいたい。MQLリファレンスはメタトレーダーに用意されているメタエディター(MQLエディター)という良質なIDE(integrated development editor。統合開発環境)にも装備されているので、そちらを参照してもらっても構わない。
EAの開発に必要な関連事項はすべて網羅しているが、MQLについてはすべてを説明しているわけではない。MQLにはEAのプログラミングでは一般に使われない特殊な関数も数多く含まれている。配列関数、ファイル操作、オブジェクト、ウィンドウ、文字列、変換関数については本書では議論しない。
MQL4の公式ホームページ http://www.mql4.com/ ではMQLプログラミングについての冊子が無料で入手できるので、便利な補足情報源としてぜひ活用してもらいたい。また同ホームページでは、MQLの基本的なプログラミング概念や高度なプログラミング概念について書かれた有益な記事も多くあり、インディケーターやサンプルコードを含むコードライブラリー、プログラミングについての質問に答えてくれるフォーラムもあるので、併せて利用するとよいだろう。
本書で紹介するサンプルコードやテクニックは、私がやってみてうまくいったものだ。私は物事は機能性を犠牲にしないかぎり、できるだけシンプルなほうがよいと思っている。とはいえ、何事もそれを達成する方法は一通りではない。特にプログラミングではそうだ。同じ結果を得る有効な方法はたくさんある。さらに良い方法を求めて模索することも重要だ。
付録に収録したコードはパンローリングのホームページからダウンロードすることができる。ソースコードをダウンロードしておけば自分で入力する手間が省ける。また、ソースコードを必要に応じて変更することで自分のニーズに合った新たなコードを作成することができるので、ぜひチャレンジしてみてもらいたい。
MQL5について
本書執筆の現時点では、メタトレーダーの次期バージョン(メタトレーダー5)は試用版がリリースされている。最新版MQL(MQL5)には大幅な変更があるようだ。メタクオーツ社が発表したところによれば、メタトレーダー5はメタトレーダー4とは下位互換性はない。したがって、MQL4で書いたプログラムはMQL5用に書き直すか修正する必要がある。
ただ、メタトレーダー5への移行はゆっくりとしたペースで進むのではないかと私は思っている。ブローカーもしばらくはメタトレーダー4を採用し続けると思われる。したがって、MQL4で書いたプログラムが今すぐに使い物にならなくなることはないだろう。メタトレーダー5やMQL5では関数やシンタックスは若干変更されるかもしれないが、本書で述べた概念そのものが変わることはない。
本書で使用するフォント
MQL言語の要素、サンプルソースコードには等幅フォントを用いている。ソースコードで太字が使われている部分は、以前のサンプルコードから変更された部分である。
著者紹介
アンドリュー・R・ヤング(Andrew R. Young)
トレーディングシステムのプログラマー。メタトレーダー創成期からカリスマで、その後、MQLプログラミングのオンラインサービスを提供するイージー・エクスパート・フォレックス(Easy Expert Forex)を創設し、起業家としても活躍。現在、米テネシー州ナッシュビル在住。
購入者特典ダウンロード
本書の特典ファイルをトレーダーズショップ(直販サイト)の購入特典ダウンロードページよりダウンロードいただけます。
アクセスキー:
書籍版をご購入のお客様
書籍P.172のページ番号の右側に記載された4桁の数字(半角英数字のみ)
電子書籍版をご購入のお客様
本書に記載されている14桁程度の英小文字(半角英字のみ、数字は含みません)










