パンローリング トップバー パンローリング Top 相場データCD-ROM オプション倶楽部 トレーダーズショップ/書籍、DVD販売 株式コーナー Pan発行書籍 セミナー 相場アプリケーション パンレポート 掲示板 相場リンク集
メールはこちらまで

ウィザードブックシリーズ Vol.191

パンローリング発行書籍indexへ  ウィザードブックシリーズ一覧へ



FXメタトレーダー4 MQLプログラミング
堅牢なEA構築のための総合ガイド




MT4の基本でお悩みの方にはこちら↓

『FXメタトレーダー入門』

『iCustomで変幻自在
のメタトレーダー』

2012年3月発売/A5判 294頁
ISBN 978-4-7759-7158-1 C2033
定価 本体2,800円+税

著者 アンドリュー・R・ヤング
監修者 長尾慎太郎
訳者 山下恵美子



著者紹介 | 目次 | 関連書籍  ◆立ち読みコーナー 監修者まえがき ・ はじめに (本テキストは再校時のものです)

◆購入者限定【特典】ダウンロード

本書の付録に掲載された「コード」は
こちらからダウンロードいただけます。

【アクセスキー】

書籍版をご購入のお客様
書籍P.172のページ番号の
右側に記載された
4桁の数字
(半角英数字のみ)

電子書籍版をご購入のお客様
本書に記載されている
14桁程度の英小文字
(半角英字のみ、数字は含みません)

をご入力ください。

特典をダウンロード

究極のMQLプログラミング――初級者には手解きのコツ、上級者にはひらめきを伝授!

MQLプログラミングのための初めての総合ガイドがついに登場! 本書は、今人気のメタトレーダー4を使ってFXの自動売買を行う堅牢なトレーディングシステムを開発するためのプロセスを紹介したものである。

世界中の個人トレーダーのために、何年にもわたって数多くのEA(自動売買システム)をプログラミングしてきた著者がその豊富な経験に基づいて、トレーディングを行ううえで必要となるさまざまな作業をプログラミングする方法を紹介する。

《トレーディングに必要な作業》
・成行注文、逆指値注文、指値注文を出す
・正確な損切り価格と利食い価格を計算する
・リスクに基づくロット数を計算する
・出した注文に柔軟性のあるトレイリングストップを追加設定する
・注文やポジションの総数を数えたり、それらの変更・決済を一度にまとめて行う
・インディケーターや価格データを使ってトレーディング条件を検証する
・柔軟性のある再利用可能な関数を作成する
・タイマー、メールによる警告、マルチンゲール戦略によるポジションサイジングといった高度な機能を追加する
・よくあるトレーディングエラーの防止と簡単なトラブルシューティングを行う
・小数点以下3桁および5桁を用いるブローカーとFIFOに対応できるようにする
・独自のカスタムインディケーターとスクリプトを作成する

トレーディングアイデアを自由にプログラミングし、短時間でEAを開発することを可能にする本書は、プログラミングの初心者からベテランプログラマーまで、あらゆるレベルのプログラマーにも役立つ。本書では数多くのサンプルプログラムを詳しい説明つきで提供すると同時に、高度な機能を持つサンプルプログラムや再利用可能な関数も紹介する。独自のEAの開発にぜひとも役立ててほしい。



■著者 アンドリュー・R・ヤング(Andrew R. Young)

トレーディングシステムのプログラマー。メタトレーダー創成期からカリスマで、その後、MQLプログラミングのオンラインサービスを提供するイージー・エクスパート・フォレックス(Easy Expert Forex)を創設し、起業家としても活躍。現在、米テネシー州ナッシュビル在住。



■目次

監修者まえがき
はじめに

第1章 MQL入門

メタエディター入門
  EAとは何か
  ファイルの形式
  ファイルの保存場所
  メタエディター

基本的概念
  シンタックス(文法)
  コメント
  識別子
  変数
  定数
  関数
  変数のスコープ(変数が利用できる範囲)

MQ4ファイルの構造
  新規EAの作成
  プリプロセッサー命令
  パラメーターと外部変数
  グローバル変数
  特殊関数
  そのほかの関数

第2章 売買注文

買い気配値、売り気配値、スプレッド
注文種別
注文を出す手順
関数OrderSend()
  成行注文
  逆指値注文
  指値注文

損切り価格と利食い価格の計算方法
  仕掛け価格からの値幅による計算方法
  ポイント
  スリッページとポイント
  スリッページとポイントをグローバル変数として用いる場合

関数MarketInfo()
  損切り価格の計算
  利食い価格の計算
  損切り価格と利食い価格の別の計算方法

注文やポジションの状態に関する情報の取得
  関数OrderSelect()
決済とキャンセル
  関数OrderClose()
  関数OrderDelete()

簡単なEA
  待機注文にも対応できるようにEAを変更してみよう

第3章 高度な売買注文

ECNへの対応
注文の変更
  保有中のポジションや待機注文に損切りと利食いを新たに設定する
  待機注文の価格の変更方法

損切り価格と待機注文の価格の検証
  ストップレベル
  損切り価格と利食い価格の検証
  待機注文の価格の検証

ロット数の計算
  マネーマネジメント
  ロット数の検証

そのほかの注意点
  トレード状況
  事前に定義された変数の更新
  エラー処理
  要素をひとつにまとめてみよう

第4章 作業の関数化

ロット数を計算するための関数
  ロット数を検証するための関数
  注文を出すための関数
  待機注文を出すための関数
  ポジションを決済するための関数
  待機注文をキャンセルするための関数
  損切り価格と利食い価格を計算するための関数
  ストップレベルの検証

損切り注文と利食い注文を追加設定する
インクルードファイルを使う
ライブラリーを使う
関数を使った簡単なEA

第5章 ポジションと注文の管理

ループ(繰り返し処理)
  for演算子
  while演算子
  オーダープールのループ処理

待機注文と保有中のポジションの数を数える
  複数のポジションや待機注文を同時に決済したりキャンセルする
トレイリングストップ
  最小限の利益の確保
  ブレイクイーブンでの仕切り

EAの更新

第6章 売買条件とインディケーター

価格データ
インディケーター
  トレンド系インディケーター
  オシレーター系インディケーター
  カスタムインディケーター

インディケーターの定数
  時間枠
  適用価格
  移動平均の計算方法
  トレード条件の評価
  関係演算子
  ブール演算
  インディケーターの有効・無効化

いろいろな足のインディケーターの値の比較

第7章 日時

日付時刻型変数
  日付時刻定数
日付時刻関数
簡単なタイマーの作成
新しい足の始値でトレードを実行する

第8章 ちょっとしたコツとアドバイス

エスケープ文字
チャートにコメントを表示する(チャートコメント)
チェック関数
自作EAの使用制限
関数MessageBox()
  ボタンフラッグ
  アイコンフラッグ
  リターンフラッグ

メールによる警告
エラー発生後の注文を出し直す
オーダーコメントを識別子として使う
証拠金を調べる
スプレッドを調べる
複数の注文を出す
グローバル変数
利益を調べる
マルチンゲール戦略
EAのデバッグ
  断続的に現れるトレーディングエラーの解決法
  コンパイルエラーの修復

第9章 カスタムインディケーターとスクリプト

バッファー
カスタムインディケーターの作成
  描画プロパティ
  記述式のバッファー名を使う
  インディケーターの関数start()

スクリプト

付録A

簡単なEA
待機注文を出すための簡単なEA

付録B

高度なEA
待機注文を出すための高度なEA

付録C

関数を使ったEA
関数を使った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言語の要素、サンプルソースコードには等幅フォントを用いている。ソースコードで太字が使われている部分は、以前のサンプルコードから変更された部分である。

ページのトップへ



■関連書籍


iCustomで変幻自在のメタトレーダー

たすFX

DVDメタトレーダーとiCustomはじめの一歩

DVD メタトレーダー4 徹底活用入門

FXメタトレーダー実践プログラミング

FXメタトレーダー入門

待つFX

ザFX

FXトレーディング

実践FXトレーディング


ウィザードブックシリーズ - 現代の錬金術師シリーズ - パンローリングライブラリ -
ウィザードコミックス
- 電子書籍 - 投資セミナーDVD - オーディオブック -
トレーダーズショップ 日本最大の投資家向け専門店
-
Copyright (C) Pan Rolling, Inc. All Rights Reserved.