Стратегия Parabolic SAR Fan Trailing Stop Loss


Дата создания: 2023-09-16 18:54:28 Последнее изменение: 2023-09-16 18:54:28
Копировать: 0 Количество просмотров: 992
1
Подписаться
1617
Подписчики

Обзор

Параболическая стратегия SAR - это торговая стратегия, основанная на параболическом показателе SAR. Эта стратегия предназначена для определения точки обратного тренда и своевременного выхода из позиции при обратном тренде.

Стратегический принцип

Параболический SAR-индикатор способен распознавать ценовые тенденции и давать потенциальные обратные сигналы. Пересечение линии K в точке SAR означает переход от пустого к пустому; пересечение линии K в точке SAR означает переход от пустого к пустому.

Стратегия основана на этой особенности показателя Parabolic SAR, которая распознает обратный тренд, когда точка SAR пересекает K-линию, и соответствующим образом выполняет операцию plus или minus. В частности, логика стратегии такова:

  1. Расчет параболической SAR.

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

  3. Открытие позиции при появлении пересечения, а также ликвидация позиции при повторном пересечении линии K с обратной точкой SAR.

Стратегические преимущества

  • Используйте показатель Parabolic SAR, чтобы определить переломные моменты в тренде и избежать обратных операций.

  • При обнаружении обратного сигнала быстро открывайте позиции, чтобы поймать смену тренда.

  • Установка точки остановки SAR, чтобы снова пересечь линию K, позволяет быстро остановить убытки и своевременно контролировать потери.

  • Стратегическая концепция проста, понятна и легко реализуема.

Риски и ответные меры

  • Параболический показатель 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)