SARベースの運動量反転追跡戦略


作成日: 2024-02-04 17:40:20 最終変更日: 2024-02-04 17:40:20
コピー: 0 クリック数: 620
1
フォロー
1617
フォロワー

SARベースの運動量反転追跡戦略

概要

この記事では,パラボリックSAR指数に基づく動量逆転トラッキング戦略について説明します.この戦略は,パラボリックSAR指数を使用して,ニフティの先物市場の潜在的トレンド逆転を識別し,自動化されたトレンドトラッキング取引を実現します.

この戦略は,主に体系的な取引方法を好むトレーダーに適用され,明確な入場と出場シグナルを提供します.市場動向を捉えることで,この戦略はトレーダーの財務目標を達成するのに役立ちます.

戦略原則

この戦略は,パラボリックSAR指数を使用して価格トレンドの方向を判断する.看板トレンドでは,SAR値は価格の突破の下にあり,新しい高点の出現とともに徐々に上昇する.看板トレンドでは,SAR値は価格の突破の上であり,新しい低点の出現とともに徐々に低下する.

SAR値が価格を上下する時,潜在的トレンドの逆転を示し,戦略は新しいトレンドの方向を捕捉するために相応に空白または多額を行う.

具体的には,現在のSAR値と加速因子を初期に計算した後,戦略は価格の新高または新低を継続的に追跡し,それに応じてSAR値を調整する.確認されたKラインで,看板トレンドであれば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)