損益を使った手仕舞いとしては、相場や含み損益の状況に応じて、損切り価格や利食い価格を変えていく方法もよく使われます。
その中でよく知られているものに「トレイリングストップ」があります。
これは含み益が更新される度に、損失が少なくなるように損切り価格を変えていく方法です。
例えば、USD/JPYを100円で買ったポジションに対して、50pipsの値幅のトレイリングストップを適用するとします。
ポジションを建てた直後からトレイリングストップを適用する場合、100円であれば、50pips、つまり0.5円下の99.5円に損切り価格を設定し、価格が100.1円に上がれば、0.5円下の99.6円に損切り価格を変更します。
あるいは、50pipsの含み益が出たときからトレイリングストップを適用する場合もあります。上の例では、50pipsの利益となる100.50円になったときに初めて100円の損切り価格を設定し、価格が上がる度に損切り価格を上げていきます。
このように、損切り価格の変更を繰り返していきますが、その後価格が下がったとしても、それに合わせて損切り価格を下げることはせず、価格が損切り価格まで下がれば決済されることになります。
このトレイリングストップの機能は、MT4/MT5でも手動なら使うことができますが、EAで簡単に使える組み込み関数としては用意されていません。
Block EAでは、共通ライブラリにあるトレイリングストップの関数に対応したブロックを用意しています。
ツールボックスの「トレード」カテゴリーの上から5番目のブロックです。
これを前回の記事と同じく移動平均の交差を使った途転売買システムに組み込んでみます。
組み込む場所は、ティック時実行関数のブロックの最初でOKです。
パラメータとしてトレイリングストップの値幅があります。この例では20pipsとなっています。
あと、「含み益が出てから注文」というチェックボックスがあります。
これをチェックすると、ポジションが建ってすぐには損切り注文は入らず、トレイリングストップ値幅だけの利益が出たときに初めて損切り注文が入るようになります。
初期損切り注文は別にセットして、利益が出てからトレイリングストップに切り替えたい場合に利用します。