概要
この戦略は、改良されたHA(平均足)移動平均線に基づいて価格の転換点を識別し、比較的明確なトレンド変化を捉えることを目的とした短期取引戦略です。戦略ではHAを使用してローソク足の始値、高値、安値、終値を計算し、価格の関係から最終的なローソク足の色を判断します。価格が上昇している場合は緑色のバーで表示し、価格が下落している場合は赤色のバーで表示します。戦略はHAバーの色の変化を取引シグナルとして、緑から赤に変わったら空売り、赤から緑に変わったら買いを行います。典型的な逆張り戦略です。
戦略の原理
戦略の核心は、HAバーの色の変化を計算して価格の反転を判断することです。
まず、入力パラメータに基づいてHAを使用してローソク足の値を計算するかどうかを選択します。使用する場合はHAデータから始値、高値、安値、終値を取得し、使用しない場合は元のローソク足データから直接取得します。
haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low
次に、HA計算式に従って今期のHA始値と終値を取得します。
haclose = (haOpen + haHigh + haLow + haClose) / 4
haopen := na(haopen[1]) ? (haOpen + haClose) / 2 : (haopen[1] + haclose[1]) / 2
さらに、HA始値と終値からHA高値、安値を計算します。
hahigh = max(haHigh, max(haopen, haclose))
halow = min(haLow, min(haopen, haclose))
HA始値と終値の関係に基づいて今期のHAバーの色を判断します。
hacolor = haclose > haopen ? color.green : color.red
連続する2期間のHA色の変化に基づいて価格反転シグナルを判断します。
turnGreen = haclose > haopen and haclose[1] <= haopen[1]
turnRed = haclose <= haopen and haclose[1] > haopen[1]
買いシグナルと売りシグナルが発生したときにそれぞれ買いポジションと売りポジションを開きます。
strategy.entry("long", 1, when=turnGreen)
strategy.entry("short", 0, when=turnRed)
逆のシグナルが発生したときにポジションを決済します。
strategy.close("long", when=turnRed)
これにより、HAバーの色の変化を判断することで価格の反転点を捉え、逆張り取引戦略を実現します。
優位性分析
この戦略には主に以下の優位性があります。
-
改良されたHAを使ってローソク足データを計算することで、ノイズをある程度除去し、トレンド反転点をより明確に識別できます。
-
HAバーの色の変化という単純な指標だけで反転点を判断するため、戦略のロジックはシンプルで明確、理解しやすく実装も容易です。
-
逆張り方式を採用しており、トレンドの変化を迅速に捉え、反転による利益を素早く得ることができます。
-
HAを使用するかどうかを設定できるため、市場に応じて調整が可能です。
-
描画された形状インジケーター(キャンドル)で価格反転点を直感的に判断できます。
-
取引期間などのパラメータを最適化することで、異なる商品に適用できます。
リスク分析
この戦略には以下のようなリスクも存在します。
-
逆張り取引ははまってしまうリスクがあり、反転シグナルの信頼性が十分である必要があります。
-
レンジ相場では反転シグナルが頻繁に発生し、過剰取引になる可能性があります。
-
トレンドの長短を判断できないため、反転後に元のトレンドが継続して損失が発生する可能性があります。
-
単一の指標は偽のブレイクアウトの影響を受けやすいため、他の指標と組み合わせて使用する必要があります。
-
パラメータが十分に最適化されているか検証し、オーバーフィッティングを避ける必要があります。
対応する解決策:
-
パラメータを最適化し、取引シグナルが安定して信頼できるようにします。
-
トレンドフィルターを組み合わせて、レンジ相場での取引を避けます。
-
損切りのメカニズムを設定し、1回の損失を抑えます。
-
他の指標と組み合わせて確認し、偽シグナルを避けます。
-
十分にバックテストを行いパラメータを最適化し、オーバーフィッティングを防ぎます。
最適化の方向性
この戦略は以下の点から最適化が可能です。
-
取引期間パラメータを最適化し、異なる商品の特性に適応させます。
-
HA値を使用するかどうかをテストし、取引商品の特性に応じて選択します。
-
トレンドフィルター条件を追加し、レンジ相場での反転取引を避けます。
-
動的な損切りを設定し、市場のボラティリティに応じて損切りラインを調整します。
-
他の指標と組み合わせて取引シグナルを確認します。
-
資金管理戦略を追加し、ポジションサイズを調整します。
-
複数商品のアービトラージ取引を実装します。
-
バックテスト結果に基づいてパラメータを修正し、オーバーフィッティングを防ぎます。
まとめ
本戦略は改良されたHA移動平均線の利点を活用し、HAバーの色の変化を判断することで価格が反転する可能性のあるポイントを見つけます。ローソク足を直接使用するよりも、HA移動平均線はノイズをある程度除去し、反転シグナルがより明確になります。戦略はシンプルで直感的な方法で逆張り取引の考え方を実現しており、ロジックも明確で実運用も容易です。しかし、逆張り取引にははまってしまうリスクもあるため、シグナルの精度をさらに最適化する必要があります。また、トレンド判断など他の要素と組み合わせて、より完全な取引システムを構築することも可能です。全体として、本戦略はHAベースのデータを利用して反転点を見つける考え方を提供しており、これを基に拡張・最適化して自分に合った逆張り取引戦略を開発することができます。
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Heikin-Ashi Change Strategy", overlay=true)
UseHAcandles = input(true, title="Use Heikin Ashi Candles in Algo Calculations")- 1

