SARモメント逆転追跡戦略

作者: リン・ハーンチャオチャン, 日付: 2024-02-04 17:40:20
タグ:

img

概要

この記事では,パラボリックストップとリバース (SAR) インジケーターに基づくモメンタム逆転追跡戦略を紹介しています.この戦略は,パラボリックSAR インジケーターを使用して,自動トレンドトラッキング取引のためにニフティ・フューチャーズ市場で潜在的なトレンド逆転を特定します.

この戦略は,市場動向を把握することで,トレーダーが財務目標を達成するのを助け,明確なエントリーと出口信号を提供する,体系的な取引アプローチを好むトレーダーに適しています.

戦略の論理

この戦略は,価格傾向の方向性を決定するためにパラボリックSAR指標を使用する. 上向きでは,SAR値は価格の下にあり,新しい高値が発生すると徐々に上昇する. 下向きでは,SAR値は価格の上にあり,新しい低値が発生すると徐々に低下する.

SAR値が価格を上または下を突破すると,潜在的なトレンド逆転を示し,戦略は新しいトレンド方向を把握するために対応するショートまたはロングポジションを取ります.

具体的には,初期に現在のSAR値と加速因子を計算した後,戦略は新しい高値/低値を追跡し,それに応じてSAR値を調整します. 確認されたバーでは,上昇傾向の場合,SAR値以下にショートポジションを取ります. 下降傾向の場合,SAR値以上にロングポジションを取ります.

利点分析

  • クラシックパラボリックSAR指標を用いて市場の逆転を記録する
  • 明確で体系的な入口と出口の信号を提供する
  • 傾向を追跡し,追加の価格動きを把握するのに役立ちます
  • 手動による意思決定なしの自動取引システム

リスク分析

  • SAR インジケーター信号は100%信頼できない可能性があり,誤った信号が発生する可能性があります.
  • 失敗した逆転はストップ損失を引き起こす可能性があります.
  • 契約終了の必要性の検討の影響
  • 取引コストが戦略収益性に影響する

オプティマイゼーションの方向性

  • SAR パラメータの最適化 (ステップ,初期値,最大値など)
  • 逆転を確認するために他の逆転指標 (RSI,MACDなど) を組み合わせる
  • 偽信号をフィルターするために条件論理 (音量等) を追加する
  • 固定ストップの代わりに後押しストップを使用することを検討します
  • 自動調整位置サイズを検討

結論

この戦略は,パラボリックSAR指標を使用して市場のトレンド逆転を把握する自動化されたシステムを提供します.これは,トレンドトラッキングから利益を得るのに役立つ,取引決定のための明確なエントリーと出口信号を提供します.しかし,誤った信号,ストップ損失リスクなどの問題も注意が必要です.継続的な最適化により,信頼性の高いトレンドトラッキング方法になる可能性があります.


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Positional Parabolic SAR Strategy", overlay=true)
initial = input(0.02)
step = input(0.02)
cap = input(0.2)
var bool isUptrend = na
var float Extremum = na
var float SARValue = na
var float Accelerator = initial
var float futureSAR = na

if bar_index > 0
    isNewTrendBar = false
    SARValue := futureSAR
    if bar_index == 1
        float pastSAR = na
        float pastExtremum = na
        previousLow = low[1]
        previousHigh = high[1]
        currentClose = close
        pastClose = close[1]
        if currentClose > pastClose
            isUptrend := true
            Extremum := high
            pastSAR := previousLow
            pastExtremum := high
        else
            isUptrend := false
            Extremum := low
            pastSAR := previousHigh
            pastExtremum := low
        isNewTrendBar := true
        SARValue := pastSAR + initial * (pastExtremum - pastSAR)
    if isUptrend
        if SARValue > low
            isNewTrendBar := true
            isUptrend := false
            SARValue := math.max(Extremum, high)
            Extremum := low
            Accelerator := initial
    else
        if SARValue < high
            isNewTrendBar := true
            isUptrend := true
            SARValue := math.min(Extremum, low)
            Extremum := high
            Accelerator := initial
    if not isNewTrendBar
        if isUptrend
            if high > Extremum
                Extremum := high
                Accelerator := math.min(Accelerator + step, cap)
        else
            if low < Extremum
                Extremum := low
                Accelerator := math.min(Accelerator + step, cap)
    if isUptrend
        SARValue := math.min(SARValue, low[1])
        if bar_index > 1
            SARValue := math.min(SARValue, low[2])
    else
        SARValue := math.max(SARValue, high[1])
        if bar_index > 1
            SARValue := math.max(SARValue, high[2])
    futureSAR := SARValue + Accelerator * (Extremum - SARValue)
    if barstate.isconfirmed
        if isUptrend
            strategy.entry("ShortEntry", strategy.short, stop=futureSAR, comment="ShortEntry")
            strategy.cancel("LongEntry")
        else
            strategy.entry("LongEntry", strategy.long, stop=futureSAR, comment="LongEntry")
            strategy.cancel("ShortEntry")
plot(SARValue, style=plot.style_cross, linewidth=3, color=color.white)
plot(futureSAR, style=plot.style_cross, linewidth=3, color=color.red)


もっと