『新メタトレ実践本』可変ロット・マルチポジションシステム


新MT4対応ライブラリによるメタトレーダーEA実践プログラミング』(新メタトレ実践本)連動企画です。

今回は、本書の第6章「可変ロット・マルチポジションシステム」についてです。

【目次】
第1章 メタトレーダーとプログラミング
第2章 本書ライブラリを使ったEAの作成
第3章 途転(ドテン)売買システム
第4章 手仕舞いを追加したシステム
第5章 仕掛けフィルタを追加したシステム
第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プログラミングのコツ
第8章 本書ライブラリの解説

本書アップデート情報

本章に関しても、本書掲載のコードや説明で修正が必要となった箇所はありません

ただ、マルチポジションシステムに関して、本書ライブラリ特有のコードの書き方があり、ちょっと注意が必要です。

同時にオープンするポジションが一つの場合、ポジション番号は省略できたのですが、同時にオープンするポジションが複数ある場合、ポジション番号を指定する必要があります。

ただ、これは意外と忘れがちです。ポジション番号を省略しても0と見なされるだけで、エラーにならないからです。

プログラムにバグは付き物ですが、できればバグの出にくいコード、あるいはバグが出てもデバッグしやすいコードが望ましいです。

そういう意味で、ポジション番号を多用するコードは避けたいところです。

例えば、トレイリングストップのコードでは、いくつかのポジション情報を取得する必要があるので、各関数でポジション番号を指定しなくてはいけません。一か所でもポジション番号を書き忘れると、おかしな結果になってしまいます。

そこで、アップデートしたライブラリでは、トレイリングストップのようなよく利用する機能については、独自の関数SetTrailingStop()を追加しています。それを使えば、ポジション番号の指定は1か所だけなので、ポジション番号の抜けのミスを減らすことができます。

バグの出にくいコードのためのライブラリ関数活用の一例です。

詳しくは、『MQL4/MQL5共通ライブラリCodeBase』をご覧ください。

前へ

『新メタトレ実践本』仕掛けフィルタを追加したシステム

次へ

『新メタトレ実践本』EAプログラミングのコツ