パラボリック SAR トレイリングストップ・ロスの戦略

作者: リン・ハーンチャオチャン, 日時: 2023-09-16 18:54:28
タグ:

概要

Parabolic SAR トレイリングストップロスの戦略は,Parabolic SAR インディケーターに基づいた取引戦略である.トレンドが逆転するときに,トレンド逆転点と出口ポジションを適時に特定することを目的としている.

戦略の論理

パラボリック SAR インディケーターは価格動向を特定し,潜在的な逆転シグナルを与える.SARドットがキャンドルスティックの上を横切ると,それは上昇から下落への変化を表し,SARドットがキャンドルスティックの下を横切ると,それは下落から上昇への変化を表します.

パラボリックSAR指標のこの特徴に基づいて,この戦略は,SARドットがキャンドルスティックを横切ったときにトレンド逆転を特定し,対応する長または短エントリを作成します.具体的には,戦略論理は以下のとおりです.

  1. パラボリック SAR 値を計算する.

  2. トレンド逆転信号があるかどうかを判断する.SARドットがキャンドルスティックの上から下へと横切る場合は,下落信号を表し,ショートに行く.SARドットがキャンドルスティックの下から上へと横切る場合は,上昇信号を表し,ロングに行く.

  3. クロスオーバーが起きたときにポジションを入力し,SARドットが再び反対方向にキャンドルスティックを横切ったときにストップ損失でポジションを終了します.

利点

  • トレンド逆転点を特定するためにパラボリックSAR指標を使用し,トレンドに反する取引を避ける.

  • 逆転信号が確認されたときに迅速にポジションに入れて,トレンドの変化を把握する.

  • SAR 交差点でストップ損失を設定し,迅速なストップとタイムリーな損失制御を行う.

  • シンプルで明快な戦略論理 実行が簡単です

リスク と 軽減

  • パラボリックSARインジケーターは多くの誤った信号を生成し,不必要な取引を引き起こします.誤った信号を減らすためにSARパラメータを細かく調整します.

  • 高波動期を避けるためにフィルターを追加することを検討してください.

  • ストップロスの距離が近すぎると,過剰なストップが起こる可能性があります.ストップロスの範囲に少しの動きの余地を与えましょう.

  • 単一の指標に依存することで,戦略は市場特有の制限に敏感になります.信頼性を向上させるために他の指標またはフィルターと組み合わせることを検討してください.

結論

パラボリック・SARのストップ・ロスト戦略は,トレンドが逆転するときに迅速にストップアウトし,方向を逆転させるために,パラボリック・SAR指標のトレンド識別能力を利用する.戦略の論理はシンプルで明確である.しかし,パラボリック・SAR指標のみに頼ることは制限がある.実際は,市場条件を考慮し,パラメータをそれに合わせて調整し,パフォーマンスを向上させるために他の技術指標を組み合わせなければならない.


/*backtest
start: 2023-08-16 00:00:00
end: 2023-09-15 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Parabolic SAR Strategy (on close) [QuantNomad]", shorttitle="SAR Strategy [QN]", overlay=true)

start     = input(0.02)
increment = input(0.02)
maximum   = input(0.2)

psar      = 0.0 // PSAR
af        = 0.0 // Acceleration Factor
trend_dir = 0   // Current direction of PSAR
ep        = 0.0 // Extreme point

sar_long_to_short = trend_dir[1] == 1  and close <= psar[1] // PSAR switches from long to short
sar_short_to_long = trend_dir[1] == -1 and close >= psar[1] // PSAR switches from short to long

trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long

// Calculate trend direction
trend_dir    := barstate.isfirst[1] and close[1] > open[1] ? 1 : 
   barstate.isfirst[1] and close[1] <= open[1] ? -1 : 
   sar_long_to_short ? -1 : 
   sar_short_to_long ?  1 : nz(trend_dir[1])

// Calculate  Acceleration Factor
af := trend_change ? start : 
   (trend_dir == 1 and high > ep[1]) or  
   (trend_dir == -1 and low < ep[1]) ? 
   min(maximum, af[1] + increment) : 
   af[1]

// Calculate extreme point
ep := trend_change and trend_dir == 1 ? high :  
   trend_change and trend_dir == -1 ? low : 
   trend_dir == 1 ? max(ep[1], high) : 
   min(ep[1], low)

// Calculate PSAR
psar := barstate.isfirst[1] and close[1] > open[1] ? low[1] : 
   barstate.isfirst[1] and close[1] <= open[1] ? high[1] : 
   trend_change ? ep[1] :    
   trend_dir == 1 ? psar[1] + af * (ep - psar[1]) : psar[1] - af * (psar[1] - ep) 

plot(psar, style=plot.style_cross, color=trend_dir == 1 ? color.green : color.red,  linewidth = 2)

// Strategy 
strategy.entry("Long",  true,  when = sar_short_to_long)
strategy.entry("Short", false, when = sar_long_to_short)

もっと