データドリブンFXラボ ~決済価格を決めるロジック~
今回はMT4 or MT5のEA(Expert Advisor)の決済に関する記事です。エントリーしたポジションをどの価格で決済するロジックは、1回1回のトレードを良い結果として終了させられるかどうか、自動売買の重要な要素の一つになります。
# 大切なこと
リターンの最大化を求めつつも、リスクの回避も意識
なぜなら、高いリターンを求めて決済を先延ばしにすると、いつのまにかトレンドが逆転して、その後数か月スパンでその価格以上に来ることはなかった、、結果損切りということはよくあります。このバランスはとても難しいです。
では、どうするのが良いでしょうか?一手法を以下に記します。
基本方針
私のトレード方針はスキャルピングです。ポジションを所有することはリスクと捉え(参考過去記事:発言系イベントの予測の難しさ)、1回あたりのトレードはわずかな利益で決済します。その代わりに、トレードの回転率を向上させることで、利益を積み上げます。決済価格の算出としては、以下の式になります。
決済価格 = 平均取得価格 + 固定のpips値 + 相場変動に応じたpips値
平均取得価格 + 固定のpips値でベースのリターンを確保し、相場変動が大きければ上乗せリターンを期待する作戦です。
相場変動の指標には、1分足のボリンジャーバンド(期間は20分)の1σの値を用いてます。
他にも相場の変動を表す指標はありますが、この1分足のボリンジャーバンドが適切かどうかの評価はできていません。なかなかバックテストで相場の揺らぎを再現できるか難しく、バックテストでの定量的な評価方法を追求していません。
ただ、フォワードテストでは良い結果につながっています。(個人的には2020年に導入したテクニックで一番インパクトある効果)
その他のリスク回避策
想定外の価格での決済や未決済を防ぐために、以下のルールを追加しています。
・スプレッドが一定値より大きい場合は決済させない
・スリッページを指定
・1度の決済指示で最大3回までリトライ処理
以上となります。
もちろん、これがベストプラクティスではありません。
例えば、トレイリングによる決済価格を上げる方法も有効とされる記事[1]もあるので、リスクをある程度制御しながらリターンを大きくする追加ロジックは今後も追及していきます。
また、損切は別のロジックとして別記事で書きます。
参考資料
-------------------------------------------------------------------------------------
※本記述はあくまで私の知見を公開したものです。実際の投資は自己責任でお願いいたします。
記事やMT4に関する質問、ご意見、EA等の開発に関する要望等ありましたら遠慮なくご連絡ください。