〔電子〕FXメタトレーダー実践プログラミング

エフエックスメタトレーダージッセンプログラミング

豊嶋久道

2013年7月15日

パンローリング

1,980円(税込)

ビジネス・経済・就職

<システムトレードの強力なパートナー> MetaTrader4の売買システム開発過程を段階的に学ぶ  今やFX(為替証拠金取引)トレーダーの常識となった大人気ソフト「メタトレーダー4」。 リアルタイムの相場表示はもちろんのこと、多彩なテクニカル指標、仮想売買、独自指標の作成、売買システムの構築と検証、自動売買、口座管理まで、およそトレーダーが求めるであろう機能を兼ね備えた理想的なソフトである。しかも、これらの機能の利用は無料だ。  しかし、その手軽さからか、メタトレーダーを単なる自動売買実行ソフトとして扱い、ろくに自分で検証もせずに既成の売買システムを購入して、大切な自分の資金を運用しようとする投資家もいるようだ。  もちろん、既成の売買システムのなかには優れたものもある。しかし、すべてではない。また、すべての業者が同じ相場を提供するとは限らないFXやCFD(差金決済取引)では“優れたシステム”でさえ機能しない可能性があるのだ。  自動売買で成果を上げている人たちは、超一流のアスリートと同じように、人一倍の努力を重ねている。涼しい顔で好成績を上げるその裏側で、自分のスタイルを構築するため、たゆまぬ研究と検証、実践を続けているのだ。  実は、その「パートナー」としてうってつけなのが、メタトレーダーなのである。ただし、その潜在能力を引き出すためには、メタトレーダーと「会話」をするためのプログラム言語「MQL4」の習得が求められる。  本書はメタトレーダーブームの火付け役となった『FXメタトレーダー入門』の続編として、前作では詳しく触れることができなかったメタトレーダーの強力なプログラミング機能をできるだけ多く紹介した。  「ただプログラムが分かる」レベルから「自分の思ったとおりのプログラムが作れる」レベルになるには、外国語の学習同様、最低限の試行錯誤が必要である。しかし、本書でその「最低限の試行錯誤」を効率良く経験してもらおうというわけだ。  メタトレーダーを自由自在に扱って自分自身の売買アイデアを100%具体化させ、理想的なトレードを実現させてほしい。 目次 はじめに  メタトレーダー5について 第1章 メタトレーダーの構成を知る 1-1 メタトレーダーを使いこなす前に    あなたはどこのメタトレーダーを使っていますか?    インストールしたフォルダをのぞいてみよう 1-2 メタトレーダーとMQL4プログラミング    メタトレーダーで作成可能なプログラムの種類    カスタム指標プログラム    エキスパートプログラム    スクリプトプログラム    ライブラリープログラム    MQL4プログラムのフォルダ構成    本書で使用したサンプルプログラムについて 第2章 カスタム指標プログラムで独自のテクニカル分析 2-1 カスタム指標プログラムの基本    表示ウィンドウの指定    表示させるカスタム指標の数の指定    特別な関数の動作タイミング    指標を表示する仕組み    配列の要素インデックスとチャート上の位置    指標スタイルの指定    指標値の表示場所とラベル 2-2 組み込みテクニカル指標関数の使い方    移動平均    ボリンジャーバンド    パラボリックSAR    モメンタム    RSI    MACD    ストキャスティックス    HLバンド    ATR    カスタム指標の平滑化    カスタム指標を組み込み関数として使う    ヒストグラムを利用したカスタム指標(平均足)    トレンドの方向をヒストグラムで表示    時系列アクセス関数を利用したカスタム指標 2-3 オブジェクトを利用したカスタム指標    価格の目安ラインの表示    複数のチャート情報を同時に表示 2-4 テクニカル指標のデータをファイルに出力    過去の一定期間のデータを出力する    スクリプトプログラムに関する注意点    不要なデータをスキップして出力する    リアルタイムにデータを出力する 第3章 トレード関数で柔軟な注文を実現 3-1 トレード関数を使いこなす    注文を送信する    注文の状態を調べる    注文を変更する    オープンポジションを決済する    待機注文をキャンセルする 3-2 トレード時のエラーチェック    トレード時のエラー処理方法    価格パラメータに関するエラー    FX業者サーバとの通信エラー対策 3-3 トレード関数のライブラリー化    現在のポジションのロット数を求める関数    注文を送信する関数    オープンポジションを変更する関数    オープンポジションを決済する関数    待機注文をキャンセルする関数 3-4 エキスパートプログラムによる注文    リピートIFD注文    複数の注文に対応したリピートIFD注文    OCO注文    トレイリングストップ    一定幅でないトレイリングストップ(1)    一定幅でないトレイリングストップ(2) 第4章 エキスパートプログラムでシステムトレード自由自在 4-1 売買システムの基本構成    仕掛けのみのシステム    手仕舞いを追加したシステム    どのタイミングでシグナルを出すか 4-2 仕掛けのパターン    指標の値の大小による仕掛け(1)    指標の値の大小による仕掛け(2)    価格と指標の交差による仕掛け(1)    価格と指標の交差による仕掛け(2)    複数の指標の交差による仕掛け(1)    複数の指標の交差による仕掛け(2)    ブレイクアウトによる仕掛け    現在形成中のバーの指標値を利用した仕掛け(1)    現在形成中のバーの指標値を利用した仕掛け(2) 4-3 手仕舞いのパターン    一定値幅での損切りと利食い    通常のトレイリングストップ    HLバンドを使ったトレイリングストップ    ATRを使ったトレイリングストップ    時間の経過による手仕舞い 4-4 そのほかのシステムのパターン    エントリーシグナルのフィルター    条件付き仕掛けのシステム    トレードする時間帯の制限    指値もしくは逆指値で仕掛けるシステム    複数システムの運用    資金管理について 4-5 ストラテジーテスターでの検証    エキスパートプログラム作成時の注意    テスターのモデルの選択 第5章 MQL4をさらに使いこなしたい人のために 5-1 データの型    int(整数)    double(実数)    string(文字列)    bool(論理)    color(色)    datetime(日時) 5-2 プリプロセッサ命令    #define命令    #include命令    #property命令    #import命令 5-3 変数の種類    変数の種類と有効範囲    変数の宣言方法による違い 5-4 配列の種類 5-5 数学関数 5-6 オブジェクトの表示    オブジェクトの作成    オブジェクトの設定    オブジェクトの削除 5-7 ファイルの入出力    ファイルのオープンとクローズ  ファイルへのデータ書き込み    ファイルからのデータ読み出し    ファイルへの追加書き込み 5-8 文字列に関する関数    文字列を表示・通知する関数    文字列を処理する関数 5-9 日時に関する関数    datetime型データを文字列へ変換    日時の文字列をdatetime型データに変換 5-10 マーケット情報 5-11 口座情報 5-12 関数のライブラリー化 さいごに 付録A MQL4関数一覧  予約変数  特殊関数  口座情報関数  配列関数  チェック関数  クライアントターミナル関数  共通関数  変換関数  カスタム指標関数  日付・時間関数  ファイル関数  大域変数関数  数学関数  オブジェクト関数  文字列関数  テクニカル指標関数  時系列アクセス関数  トレード関数  ウィンドウ関数 付録B 参考図書 コラム Windows Vistaでメタトレーダーを利用するときの注意点  サンプルプログラムから新しいプログラムを作るには  関数中で省略できるパラメータについて  変数、関数の名前のつけ方  両建てポジションの決済  関数のパラメータの役割について  エキスパートプログラムでの特別な関数の動作タイミング  トレンドフォロー型とカウンタートレンド型  価格の表示ケタ数の違いについて  メタトレーダーでCFD取引  チャート上の過去データの取得について  変数や関数を宣言する場所  組み込みテクニカル指標関数の計算方法について 豊嶋久道(とよしま・ひさみち) 1965年山口県生まれ。1988年慶應義塾大学理工学部電気工学科卒業。1993年慶應義塾大学大学院博士課程修了。博士(工学)。大学生のころからC言語プログラミングに親しみ、実用系のフリーソフトウェア、シェアウェアを公開。2003年よりFX取引を始め、システムトレードの道へ。最近ではFXオプション取引も含めた売買システムの研究を行っている。主な著書に『FXメタトレーダー入門』(パンローリング)がある。 著者WEB:Toyolab 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メタトレーダー実践プログラミング』をお手元に置いていただき、メタトレーダーのパワーアップに役立てていただければ幸いです。 メタトレーダー5について  本書で紹介しているのは、メタトレーダーのバージョン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の情報については下記のウェブサイトなどで随時報告していきたいと考えています。   ・Toyolab FX - 手ぶらで為替取引   ・Pan Rolling 投資の仲間たち ■さいごに  メタトレーダーのプログラミングを学ぶため、いろいろなサンプルプログラムに目を通すのは大切なことです。最近ではインターネット上にカスタム指標プログラムやエキスパートプログラムのソースファイルが多数公開されるようになりました。  しかし、プログラムというのは、作者のクセや好みで書かれており、一度に複数の作者の書き方をみても混乱するだけです。  プログラミング言語は、日本語や英語などの言語と同じです。 同じ内容を説明するにも、いろいろな言い方があり、人それぞれ、言いやすい言い方は異なります。  本書は、前作『FXメタトレーダー入門』の続編として、ただプログラムが分かるレベルから、自分の思ったとおりのプログラムが作れるレベルを目指してきました。そして、メタトレーダーのプログラミングで何ができて、何ができないのかをはっきりさせるため、MQL4に搭載されている多くの関数を紹介しました。  しかし、単なる関数のレファレンスではありません。  本書では、MQL4を自分の言葉として自由に操ることができるよう、筆者なりの「流儀」を紹介しました。「売買ロジックをいくつかの関数に分けて記述する」「しかもそれぞれの関数はシンプルに記述する」ーこれが筆者の流儀です。  ただし、これだけが正しい方法というわけではありません。自分だったらこう書いたほうが分かりやすい、という方法もあるはずです。  語学同様、プログラミングも「習うより慣れろ」です。独自のプログラムをたくさん書いていくことで、自分なりの「流儀」を見つけてください。  FXのシステムトレードソフトとして確固たる地位を築いたメタトレーダーは、将来的に株式や先物、CFD(差金決済取引)の世界でも広く利用されるようになり、ますます世界中で利用者同士のネットワークが広がっていくことでしょう。  今後も、さまざまなシステムトレードのアイデアとともにメタトレーダーを使いこなしていってください。  その可能性を広げるのは皆さん自身です。

本棚に登録&レビュー

みんなの評価(0

--

読みたい

0

未読

0

読書中

0

既読

0

未指定

6

書店員レビュー(0)
書店員レビュー一覧

みんなのレビュー

レビューはありません

Google Play で手に入れよう
Google Play で手に入れよう
キーワードは1文字以上で検索してください