パラボリックSAR扇形トラッキングストップは,パラボリックSAR指数に基づく取引戦略である.この戦略は,トレンドの逆転点を認識し,トレンドが逆転した時に,ストップをタイムリーで退出する目的である.
パラボリックSAR指標は価格トレンドを認識し,潜在的逆転信号を与える.SAR点の上をK線を横切ると多頭から空頭へ;SAR点下をK線を横切ると空頭から空頭へ.
この戦略は,パラボリックSAR指標のこの特性に基づいて,SARポイントがK線を横切るときにトレンドの逆転を認識し,それに応じて多額のまたは空っぽの操作を行います.具体的には,戦略の論理は次のとおりです.
パラボリックSAR値の計算
トレンド反転信号があるかどうかを判断する.SAR点が上からK線下へ,空頭信号を代表する空頭する.SAR点が下からK線上へ,多頭信号を代表する,多頭する.
横断が発生したときにポジションを開き,逆のSARポイントで再びK線を横断したときに平仓を止めた.
パラボリックSARの指数は,トレンドの反転点を識別し,トレンドの反転操作を避けるために使用されます.
逆転の信号を認識してすぐにポジションを開き,トレンドの変化を捉えます.
SARが再びK線を横切るストップポイントを設定することで,速やかにストップして,損失をタイムリーにコントロールすることができる.
戦略はシンプルでわかりやすく,実行しやすい.
パラボリックSAR指標は,大量の偽信号を生じ,不必要な取引を引き起こす可能性があります.SARのパラメータを適切に調整して,偽信号率を下げることができます.
急速な反転する市場では,容易に騙される. フィルタリング条件の追加を考慮して,激しい変動の時期を避ける.
ストップポイントがあまりにも近い場合,ストップが頻繁になる可能性があります. ストップ範囲を適切に緩め,価格に一定の調整スペースを与えることができます.
特定の市場の制限に弱い指標を1つだけ頼り,他の指標やフィルタリング条件を加えることで適合性を向上させることが考えられます.
Parabolic SAR扇形は,パラボリックSAR指数のトレンド認識能力を利用し,トレンドが逆転したときに迅速にストップスイッチする.戦略の考え方はシンプルで明確で,簡単に把握できます.しかし,Parabolic SAR1つの指標だけに依存するにも一定の制限があります.実際のアプリケーションでは,市場環境を総合的に考慮し,パラメータを適切に調整し,他の技術指標と連携して実現する必要があります.
/*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)