[EA検証3] 水平ラインブレイク+クローズ判定+移動平均線(EMA)を利用したトレンド判定追加:MT4でEAを作成し働いてもらう
「[EA検証2] クローズ判定追加:MT4でEAを作成し働いてもらう」の続きの検証になります。上記は直近の最高値・最安値のブレイクでポジションを持ち、注文時に設定した指値、逆指値でポジションをクローズするというシンプルなロジックに、ローソク足確定毎にクローズするかの判定を追加したEAでした。
今回は、さらに、移動平均線(EMA)を利用してトレンド(買いが強いのか、売りが強いのか、それとも停滞気味なのか)を判定し、買い・売りどちらかの勢いが強い場合は逆方向の取引を控えるというロジックを追加してみました。
合わせて、さらにクローズ判定の条件も少し追加しています。
[検証3] 移動平均線(EMA)を利用したトレンド判定追加
(1)トレンド判定
追加したトレンド判定は以下です。以下の条件で、上昇トレンド(買いの勢いが強い)と判定した場合は売りエントリーを控える、下降トレンド(売りの勢いが強い)と判定した場合は買いエントリーを控えると、という処理を追加しています。
トレンドなしと判定した場合は、売り買い両方の取引を行う。
<トレンド判定条件>
- 一定期間※の上昇値幅が一定以上※あると上昇トレンドと判定
- 一定期間※の下降値幅が一定以上※あると下降トレンドと判定
- その他はトレンドなしと判定
チャートで示すと以下のような感じです。
移動平均線(赤線)の傾きから、赤点線からが下降トレンド突入、青点線からが上昇トレンド突入、オレンジ点線がトレンドなしと判定しています。
騙し(あまりトレンドが続かない)の場合もありますが、それなりに判定出来てそうではないでしょうか。
(2)クローズ条件
追加したクローズ判定の条件は以下です。以下のいずれかの条件を満たした場合、ポジションをクローズします。
<クローズ条件>
- ある程度の期間で大き目に上昇(下降)※
- 過去数週間の最高値(最安値)付近で大きく戻された※
※今回はソースコードは割愛します。
(3)バックテストでの検証
MT4のストラテジーテスタで、2007/1/1~2019/6/30までのおよそ12年間の過去の相場データで、バックテストしパラメータを調整した結果です。※(4)で記載しているフォワードテストもやりたかったので、2019/6/30までにしています
今回も4時間足で検証しています。
以下、通貨はGBPJPYでバックテストした結果です。
[検証2]では、1万通貨(0.1ロット)の運用で、純利益は15989ドル、プロフィットファクタは2.21、勝率21.45%だったのが、純利益は17074ドル、プロフィットファクタは2.35、勝率22.89%の結果となりましたので、さらに改善できたと思います。
(3)フォワードテストでの検証
バックテストの結果(期待値)が今後も続きそうかを検証するため、今回も簡易フォワードテストもやってみました。以下が、その結果です。
2019/7/1~2020/05/22まで運用した場合の見込みです
純利益 1613ドル、プロフィットファクタ 3.23だったのが、純利益 1506ドル、プロフィットファクタ 3.08なので、少し成績は落ちてしまいました。
ですが、仮に、1万通貨で、2019/07/01~2020/05/22まで運用していたとしたら、15万もプラスにできているので、結構な成績ではないでしょうか。
実運用だと大きく相場が動いたときに、スプレッドが広がったりなど、この通りには行かなかった可能性もありますが、プラスにはできたのではないかと思います。
(4)他の通貨ペアでの検証結果
他の通貨ペア、および、15分足版で検証した結果は以下になります。フォワードテストが、バックテストでの期待値通りには行っていないですが、トータルではプラスにはなっています。
<4時間足>
<15分足>
コメント