Параболическая стратегия SAR - это торговая стратегия, основанная на параболическом показателе SAR. Эта стратегия предназначена для определения точки обратного тренда и своевременного выхода из позиции при обратном тренде.
Параболический SAR-индикатор способен распознавать ценовые тенденции и давать потенциальные обратные сигналы. Пересечение линии K в точке SAR означает переход от пустого к пустому; пересечение линии K в точке SAR означает переход от пустого к пустому.
Стратегия основана на этой особенности показателя Parabolic SAR, которая распознает обратный тренд, когда точка SAR пересекает K-линию, и соответствующим образом выполняет операцию plus или minus. В частности, логика стратегии такова:
Расчет параболической SAR.
Если SAR-точка проходит сверху вниз по линии K, то это означает пустой сигнал. Если SAR-точка проходит сверху вниз по линии K, то это означает многоголовый сигнал.
Открытие позиции при появлении пересечения, а также ликвидация позиции при повторном пересечении линии 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)