反転モメンタム窓破り戦略
概要
リバーサルモーメンタムブレイクアウト戦略(Reversal Momentum Breakout Strategy)は、価格反転とモメンタム指標を利用して取引シグナルを生成する定量取引戦略です。本戦略は「モメンタム先行」の理論に基づき、一定期間内の最高価格と最低価格を追跡することで、市場が反転の重要なポイントにあるかどうかを判断し、反転の機会を捉えます。
戦略の原理
本戦略は主に指定期間(例:20日)内の最高価格と最低価格を計算し、市場が重要な反転ポイントにあるかどうかを判断します。具体的なロジックは以下の通りです。
-
直近20日間の最高価格(window_high)と最低価格(window_low)を計算します。
-
現在のローソク足の最高価格が過去20日間の最高価格を上回った場合(すなわち新高値が発生)、高値反転監視期間に入り、カウンターを5日に設定します。
-
最高価格が新高値を更新しなかった場合、カウンターは毎日1ずつ減少します。カウンターが0になった時点で、高値反転監視期間は終了します。
-
最低価格についても同様のロジックで判断し、新安値が発生した場合は安値反転監視期間に入ります。
-
反転監視期間中に、買いまたは売りのポジションを取ります。反転の重要なポイント付近で反転シグナルが発生した場合、大きな値動きを捉えることが可能です。
本戦略はまた、取引開始時間を設定しており、過去データ内での取引シグナルの発生を防ぎます。
優位性分析
リバーサルモメンタムブレイクアウト戦略には以下の主な利点があります。
-
反転の機会を捉え、反転相場に適しています。市場が継続的に上昇または下落した後、ある程度の反転が発生することがよくあります。本戦略はこれらの転換点を捉えることができます。
-
モメンタムが先行し、比較的感度が高い。一定期間の最高価格と最低価格を計算することで、価格反転のトレンドとタイミングを敏感に判断できます。
-
反転監視期間を設定し、偽シグナルを回避します。反転の重要なポイント付近でのみシグナルを出すことで、ノイズの一部をフィルタリングできます。
-
買いと売りの両方のポジションを取ることが可能。相場の方向に応じてロングとショートを交互に行います。
-
ルールが比較的シンプルで実装が容易。本戦略は主にシンプルな価格とモメンタム指標に依存しており、コード化が容易です。
リスク分析
リバーサルモメンタムブレイクアウト戦略には以下の主なリスクも存在します。
-
反転予測の不正確さ。市場が方向性を持ち続ける場合、本戦略は損失を発生させます。
-
相場全体の動向を完全に考慮できない。個別銘柄の反転が必ずしも市場全体の反転を意味するわけではなく、市場全体の分析と組み合わせる必要があります。
-
ドローダウンが大きくなる可能性がある。反転が発生しない場合、資産の減少幅が拡大する可能性があります。
-
データフィッティングリスク。戦略が過去のデータに過度に依存し、実運用ではバックテストの結果よりもパフォーマンスが劣る可能性があります。
-
パラメータ感度。ウィンドウ期間や反転カウンターなどのパラメータ設定が戦略の安定性に影響を与えます。
これらのリスクへの対応策としては、ストップロスの最適化、市場全体の要因の考慮、パラメータの組み合わせ調整による安定性のテストなどが挙げられます。
最適化の方向性
本戦略の主な最適化の方向性は以下の通りです。
-
市場全体の指標との組み合わせ。市場の強弱を比較し、市場環境が不利な状況での反転を回避します。
-
複数因子による銘柄選定。財務状況が良好で、ファンダメンタルズが堅調であり、価格が過大評価されている個別銘柄を選択します。
-
パラメータの組み合わせ最適化。ウィンドウ期間や反転カウンターのパラメータを調整し、最適なパラメータの組み合わせを探します。
-
ストップロス戦略の追加。トレーリングストップや幅ストップなどにより、最大ドローダウンを管理します。
-
機械学習の導入。AIモデルを使用して価格反転の確率を予測し、シグナルの精度を向上させます。
まとめ
リバーサルモメンタムブレイクアウト戦略は、価格とモメンタム指標を追跡することで反転の機会を探します。感度が高く、反転のトレンドとタイミングを識別できます。しかし、ある程度のリスクも存在するため、適切な最適化とリスク管理が必要です。全体的に見て、本戦略の原理を理解し最適化を施した上で、定量取引システムの有効な構成要素となり得ます。
/*backtest
start: 2023-02-16 00:00:00
end: 2024-02-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("New Highs and Lows Momentum Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
window = input.int(20, title="New Highs and Lows Window", minval=1)- 1

