ATRに応じて適応的に変動する動的ストップロスを用いたモメンタムノックイン戦略
概要
本戦略は、モメンタム指標であるストキャスティクスK値と、ボラティリティ指標であるATRを組み合わせた戦略です。ATRの値に基づいてK値のストップロスラインとエントリーラインを動的に調整し、市場のボラティリティに応じてストップロスラインとエントリーラインを自動調整する考え方を実現しています。
戦略の原理
-
長さlenのK値sma(stoch(close, high, low, len), smoothK)を計算します。これはストキャスティクスK値を表します。
-
長さlenのATR値atr(len)を計算します。
-
ATR値に基づいてストップロスラインplot(rsi(atr, len)+lowLine, ..., title = "low line")とエントリーラインplot(rsi(atr, len)*-1+100-lowLine, ..., title = "up line")を描画します。
-
K値がいつエントリーラインを上抜けるか(crossover(k,up line))、およびストップロスラインを下抜けるか(crossunder(k,low line))を判定し、買いシグナルと売りシグナルを生成します。
-
買いと売りの背景色を描画します。
-
上記のシグナルが成立した場合に買い・売りの注文を実行し、ストップロスを設定します。
戦略の優位性分析
-
本戦略は市場のボラティリティATRに基づいてストップロスラインとエントリーラインを動的に調整するため、市場のボラティリティに応じてストップロスリスクを自動適応させることができます。
-
市場のボラティリティが高い場合、ストップロスラインとエントリーラインの間隔が広がるため、ストップロスが振り落とされるのを防ぐことができます。
-
市場のボラティリティが低い場合、ストップロスラインとエントリーラインの間隔が狭まるため、早期にストップロスを実行できます。
-
モメンタム指標K値を用いてエントリーとエグジットを判定します。K値は価格変化の速度を反映し、転換点を捉えることができます。
-
モメンタム指標とボラティリティ指標を組み合わせることで、トレンドを捉えると同時に、ボラティリティに応じてリスクを自動調整することが可能です。
戦略のリスク分析
-
K値は偽りのブレイクアウトを起こしやすく、不要な取引シグナルを発生させる可能性があります。K値のパラメータsmoothKを適切に調整することで、K線を平滑化できます。
-
ATRのパラメータlenを大きく設定しすぎると、ストップロスラインとエントリーラインの間隔が広くなりすぎ、リスクが高くなる可能性があります。異なるlenパラメータの安定性をテストする必要があります。
-
純粋なトレーリングストップロスでは、ストップロスの位置が適切かどうかを判断できず、1回のストップロスにおけるリスクをコントロールできません。期待損失アルゴリズムを組み合わせて、1回のストップロスリスクを制御することを検討できます。
-
戦略のシグナルが頻繁に発生するため、取引コストが高くなります。エントリーラインのパラメータlowLineを適切に調整し、取引頻度を制御できます。
戦略の最適化の方向性
-
K値のパラメータsmoothKをテスト調整し、K値を平滑化する最適なパラメータ組み合わせを見つけます。
-
ATRのパラメータlenの異なる値をテストし、適切なATRパラメータを決定します。
-
エントリーラインのパラメータlowLineを最適化し、取引頻度を制御する最適なパラメータを見つけます。
-
他の指標(例えば出来高指標、KDJ指標など)を組み合わせてエントリーシグナルをフィルタリングし、偽りのブレイクアウトを回避することを検討します。
-
ストップロス方式を最適化し、期待損失ストップロスに改善することで、ストップロスリスクを能動的に制御できるようにすることを検討します。
まとめ
本戦略は、モメンタム指標K値とボラティリティ指標ATRに基づいて、ストップロスラインとエントリーラインを動的に調整する考え方を実現しています。トレンドを捉えると同時に、ボラティリティに応じてリスクを自動調整できる、非常に革新的かつ実用的な戦略コンセプトです。パラメータの最適化やストップロス方式の改善など、さらなる改善を行うことで、戦略をより安定かつ信頼性の高いものにすることができ、非常に有望な発展の可能性を秘めています。
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Stoch + ATR", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type = strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input(34, minval=1, title="Length for Main Stochastic & ATR") - 1
