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