Параболическая стратегия SAR для отслеживания стоп-лосса

Автор:Чао Чжан, Дата: 2023-09-16 18:54:28
Тэги:

Обзор

Стратегия Parabolic SAR trailing stop loss - это торговая стратегия, основанная на индикаторе Parabolic SAR. Она направлена на своевременное выявление точек переворота тренда и позиций выхода, когда тренд переворачивается.

Логика стратегии

Параболический SAR-индикатор может идентифицировать ценовые тенденции и давать потенциальные сигналы обворота.

Основываясь на этой особенности индикатора Parabolic SAR, эта стратегия определяет обратные тенденции, когда точка SAR пересекает свечу, и делает соответствующие длинные или короткие записи.

  1. Вычислить параболические значения SAR.

  2. Если точка SAR пересекается сверху вниз по свечи, это означает медвежий сигнал, идите коротко; если точка SAR пересекается сверху вниз по свечи, это означает бычий сигнал, идите долго.

  3. Ввести позицию, когда происходит перекресток, и выйти из позиции с остановкой потери, когда точка SAR снова пересекает свечу в противоположном направлении.

Преимущества

  • Использует индикатор Parabolic 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)

Больше