新MT4対応ライブラリによるメタトレーダーEA実践プログラミング
価格: ¥0
「はじめに」より抜粋
ひとえに売買システムといっても、それを開発する方法は様々です。そのなかでも、特にFX取引では、「メタトレーダー」という取引システムに搭載されているトレード専用のプログラミング言語「MQL4」を使う方法がかなりポピュラーになっています。
実際、メタトレーダーで動かす売買システムのプログラム、いわゆる「EA」は、多くの業者のサービスや商品として利用できるようになっています。しかし、そのような出来合いのEAに満足できない人もいることでしょう。
EAを自分で作れるようになりたい、そういう人のために、筆者は以前「新MT4対応 FXメタトレーダープログラミング入門」というメタトレーダープログラミングの入門書を出版しました。メタトレーダーやプログラミングが初めての人向けの本です。
本書は、その続編にあたります。次のような読者をターゲットとしています。
入門書に書かれているサンプルプログラムも、その説明を読めば理解できる、しかし、サンプルプログラム以外のプログラムを作成しようと思っても、どこから手をつけてよいかわからない、というような人です。
メタトレーダーのプログラミング言語MQL4には、トレード向けのライブラリとして多くの組み込み関数が用意されています。しかし、それをそのまま使うだけでは、入門を終えたばかりの人が作れるプログラムには限りがあります。
複雑な動作をするプログラムが複雑に書かれたプログラムというわけではなく、むしろ逆です。複雑になりそうな部分を新しいデータや関数にまとめて、それらを組み合わせることで、複雑な動作も簡潔なプログラムにできるのです。
本書では、EAプログラミングに便利な関数をまとめて「本書ライブラリ」として提供しています。そして、それを利用することで、できるだけ簡潔にEAのプログラムを作れるよう工夫しました。
まずは、例題として売買システムの仕様を説明したうえで、そのプログラム例を示します。次に練習用の問題を提示します。問題といっても、例題を少し変える程度のものです。
簡単に儲ける方法がないのと同じく、簡単にプログラミングをマスターできる方法もありません。与えられた課題をこなしていくことも必要でしょうが、次のステップでは、課題を自ら作って、それをプログラミングしていくこと、そして、それを繰り返していくことしかありません。
何かのためではなく、自分のEAを作るためのプログラミングを始めましょう。
【目次】
はじめに
第1章 メタトレーダーとプログラミング
1-1 メタトレーダー4(MT4)のインストール
myAlpariの登録
MT4のダウンロード
デモアカウントの申請
1-2 プログラミング言語MQL4
作成できるプログラムの種類
MQL4のプログラムフォルダ
第2章 本書ライブラリを使ったEAの作成
2-1 EAプログラミングの準備
本書ライブラリとサンプルプログラムのインストール
ヒストリカルデータのダウンロード
2-2 EAプログラミングの手順
メタエディターによるプログラム作成
ストラテジーテスターによるEAの動作確認
実際のチャート上でのEA実行
第3章 途転(ドテン)売買システム
3-1 順張りシグナル
例題3-1 モメンタムのレベル
練習3-1 関数を使わないモメンタム
例題3-2 2本の移動平均線の交差
練習3-2 移動平均線とシフトした移動平均線の交差
3-2 逆張りシグナル
例題3-3 RSIのレベル
練習3-3 デマーカのレベル
練習3-4 ウィリアムズ%Rのレベル
例題3-4 ボリンジャーバンドと終値の交差
練習3-5 最新のバーで出す仕掛けシグナル
例題3-5 MACDとシグナルラインの交差
練習3-6 相対活力指数とシグナルラインの交差
練習3-7 ストキャスティクスとシグナルラインの交差
第4章 手仕舞いを追加したシステム
4-1 テクニカル指標による手仕舞い
例題4-1 2本の移動平均線の交差による手仕舞い
練習4-1 移動平均線と終値の交差による手仕舞い
例題4-2 RSIによる逆張り手仕舞い
練習4-2 最新のバーでのRSIと仕掛けシグナルによる手仕舞い
例題4-3 最新のバーでのSARと終値の交差による手仕舞い
練習4-3 最新のバーでの直近の最高値・最安値と終値の交差による手仕舞い
4-2 損益による手仕舞い
例題4-4 一定の利食いによる手仕舞い
練習4-4 一定の利食いと損切りによる手仕舞い
例題4-5 利食い注文の追加
練習4-5 損切り注文の追加
例題4-6 トレイリングストップによる手仕舞い
練習4-6 一定の含み益が出てからトレイリングストップを起動
第5章 仕掛けフィルタを追加したシステム
5-1 待機注文によるフィルタ
例題5-1 指値注文を用いたシステム
練習5-1 逆指値注文を用いたシステム
5-2 テクニカル指標によるフィルタ
例題5-2 エンベロープを用いたトレンドフィルタ
練習5-2 2本のエンベロープを用いたトレンドフィルタ
例題5-3 ADXを用いたトレンドフィルタ
練習5-3 ADXと±DIラインを用いたトレンドフィルタ
例題5-4 ATRを用いたボラティリティフィルタ(順張り)
練習5-4 ATRを用いたボラティリティフィルタ(逆張り)
5-3 タイムフィルタ
例題5-5 開始時刻と終了時刻を指定したタイムフィルタ
練習5-5 タイムフィルタが日付をまたぐ場合の対応
例題5-6 開始時刻と期間を指定したタイムフィルタ
練習5-6 タイムフィルタでの曜日の指定
第6章 可変ロット・マルチポジションシステム
6-1 売買ロット数を変化させるシステム
例題6-1 エンベロープによるトレンドフィルタを用いた可変ロット数
練習6-1 ATRによるボラティリティフィルタを用いた可変ロット数
例題6-2 マーチンゲールを用いた可変ロット数
練習6-2 ピラミッドを用いた可変ロット数
6-2 マルチポジションシステム
例題6-3 複数のポジションで手仕舞いを変える
練習6-3 複数のポジションでトレイリングストップを変える
例題6-4 仕掛けシグナルを複数のポジションに時間差で出す
練習6-4 複数のポジションで仕掛けの指標パラメータを変える
例題6-5 複数の指値注文を入れる
練習6-5 複数のポジションをポジションごとに利食い
練習6-6 複数のポジションの合計損益をもとに損切りと利食い
第7章 EAプログラミングのコツ
7-1 組み込み関数リファレンスの見方
整数データのバリエーション
列挙型定数
構造体
引数の渡し方
7-2 データの表示
整数の表示
実数の表示
日時の表示
文字列の処理
7-3 EA間のデータのやり取り
グローバル変数を使ったデータのやり取り
ファイルを使ったデータのやり取り
第8章 本書ライブラリの解説
8-1 定義済み定数・変数
8-2 内部関数
8-3 トレード関数
8-4 ポジション情報取得関数
8-5 過去のポジション情報取得関数
8-6 EA関数
おわりに
付録 MQL4関数一覧
2017年3月15日 初版発行
2018年3月17日 MT4 Build 1090対応