zigzag を元に自動売買可能か検証する

以前、zigzagの傾向について検討した際、ぼんやりと優位性があるかも? 程度の見解しかなかったので、もう少し踏み込んで検討してみました。

一通り検討した結果、実際にEAとして成立するかは正直なところ未知数ですが、工夫次第でなんとかなるかもしれないと思ったので、考えを纏めておきたいと思います。

以前の検討内容

zigzagの傾向分析  を実施した際、過去のzigzagの波形から、次の波形を類推しやすいケースが有り、その偏りをトレードのエントリかエグジットの条件に組み込めるのではないか?との仮説を立てました。

が、その後改めてデータを評価したところ、多分これは使い物にならないだろう、との結論に至りました。

理由としては、

・期間をテストデータ用と精度検証用に二分割し、前者の傾向が後者でも同様に現れるか
・十分なトレード回数を確保できるか

の2点において要求を満たせそうになかったためです。

違う仮説を立ててみる

波形の類推ではなく、もっと単純に、特定の波形を形成した後はレートが上昇/下降しやすい傾向にあるのではないか? と思い、改めて評価しました。

評価データ

通貨ペア USDJPY
期間 19年間8か月
※最初の18年をテストデータ、残期間を精度検証用データとして使用
M5, M10, M20, H1
指標 zigzag(リペイントあり)

標準のzigzagはリペイントありのため、これを元に評価を行うことに若干の問題はあると認識していますが、EA化する際にポジション管理の工夫の仕方でリペイントの挙動はカバーできるだろうとの想定で、
一旦はリペイントありの結果を元に評価します。

データの準備は前記事で作成したインジケータから出力したものをデータベースに突っ込みWindows関数で前後のレート、波形をスライドし、1レコードに必要データを纏めました。
lag, lead 関数的な処理はプログラ言語で加工するよりSQLの方が圧倒的に手軽ですし、dbもdocker で1コマンドでデプロイ出来る時代なので、準備も簡単です。

評価方法

  • 特定波形を過去n個のzigzag結果を元に分類する
  • 特定波形別に、現在のレート時点から、将来m個時点でのzigzagのシグナル点灯時点のレート差異(=pips)を出し、合計する
    • ただしm = 1 の場合は現在のzigzagシグナルのすぐ次の値を指し、現在が山のシグナルならば次は必ず谷となり、現在のレートよりも低い位置で点灯することが確実となることから、mは2以上とする。
  • レート差異のpips 値について、過去18年分と残期間で同じような傾向が出ているかを確認する
  • 上記データをTableauでビジュアル化し、傾向を可視化する

評価結果

動画

 

 

解説

b0t0b1tt-1 のような、謎の文字列が波形を指す。 波形をいくつのzigzag指標で識別するかも検討が必要なパラメータだが、とりあえず4( = 山→谷→山→谷 or 谷→山→谷→山)。

波形の右にあるバーの内、 count値のバーは、次の波形がどちらになるかを表している※前回記事参照

pips 値は、[現在 + m 個先のシグナル時レート] - [現在レート] を指す。上昇局面であれば プラス値となり、 下降局面であればマイナス値。プラスだから勝、マイナスだから負 という意味ではない。
スプレッドは未考慮。 m = 5 とする。

pips 値でソートすると、トータルでプラス値が大きいものは上に、マイナス値が大きいものは下に集まるので、まずは最もプラス値の合計が大きかった波形を確認。

波形のいずれかをクリックすると、その波形内でのレート差異の傾向が表示されると同時に、精度検証期間における同一波形でのレート差異も同時に表示する。

ヒストグラムはレート差異 を10pips 単位のビンで刻み、該当pips 区間となった出現回数をカウント。 プラス値を取るケースとマイナス値を取るケースの比率は16%:84% ということで、明確な傾向が出ているように見える。

m=5だとm=0が谷の場合は比較対象レートが山(逆も然り)なので、レート差異は有利に出やすいかもしれない。

該当波形が発生した日時のマークをクリックすると、該当箇所のチャートとzigzagシグナルが表示される。

あとは日時をポチポチしながら、該当シグナルの前後の状況を目視確認する。

ものによっては、「あー、ここは多分リペイントしてるから、エントリはもう少し早いから、レート差異はもっと小さいな」と思う箇所もありますが、
それとスプレッドを差し引いたとしても、多少はロジックに組み込めるんじゃないか?と思わせるくらいの期待感はあります。

 

もう少しサンプルとする波形を増やして評価。 プラス値の上位をまとめて選択し、テストデータと精度検証用データで傾向が近しいか確認すると・・・

まあまあ近そうです。 波形によってはだめなものもありそうですが、全体的に見ると勝率もプラス値の大きさも良い感じに相関がありそうです。

所感

検証動画の中だとレート差異がプラス値になるケースが8割を超えていますが、こんな明確な傾向があるなら誰もトレードで苦労しないと思っているのでリペイントの影響もありきの結果であろう、と思います。

ちなみに1時間足だとトレード機会が少々少ないのでもう少し短い足での評価も必要ですし、損切りラインを加味した場合の勝率、ロット数を加味した場合の総利益はEAに組み込んだ上でパラメータ調整しながら評価して初めて現実が見えてくるかな、と思いますが、「EA化してみようかな」と思うくらいのモチベーションは得られる結果でした。

まとめ

Helios 1本だと、運用先を分散してもドルのレート変動に引きずられて似た傾向の売買が同時期に集中する可能性もあり、できれば別のEAも整備し分散運用出来るようにしたいと思っています。

おすすめの記事