Estratégia parabólica de reversão SAR

Autora:ChaoZhang, Data: 2023-09-18 21:59:08
Tags:

Resumo

Esta estratégia é negociada com base no indicador SAR Parabólico, que identifica pontos de reversão em potenciais tendências.

Princípios

O SAR parabólico é um indicador de tendência que identifica principalmente inversões de tendência.

Quando o SAR está abaixo do preço, representa uma tendência de alta.

Quando o SAR está acima do preço, ele representa uma tendência de queda.

A estratégia simplesmente troca o SAR flip como direção de sinal, com SAR como stop loss.

Vantagens

  1. O SAR localiza com precisão os pontos de reversão potenciais.

  2. O mecanismo de seguimento da tendência reduz os falsos sinais.

  3. SAR atua como parada de rastreamento, evitando ser preso.

  4. Não são necessários outros indicadores ou filtros.

  5. Optimização de parâmetros fácil, padrões geralmente funcionam.

Riscos e atenuações

  1. O SAR pode ser utilizado em mercados variados.

  2. SAR muito perto do preço corre o risco de ser atingido.

  3. O volume é ignorado, o risco de divergência.

  4. Os drawdowns podem ser significativos.

  5. As reversões nem sempre são bem-sucedidas.

Oportunidades de melhoria

  1. Teste se os parâmetros SAR podem ser melhorados.

  2. Adicione indicadores como o MACD para confirmar a probabilidade de reversão.

  3. Construa um mecanismo dinâmico de suspensão.

  4. Otimizar o dimensionamento da posição de entrada para capitalizar os sinais SAR.

  5. Pesquisa adicionando lógica de confirmação de reversão.

Resumo

A estratégia negocia pontos de reversão potenciais identificados pelo SAR, fazendo negociações quando o SAR inverte o preço. Os benefícios incluem trailing stops para evitar armadilhas. Mas o tempo do SAR pode ser impreciso e precisa de refinamento.


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

//@version=3
strategy("Parabolic SAR Strategy", overlay=true)

// 
// author: Kozlod
// date: 2018-09-03
// https://www.tradingview.com/u/Kozlod/
// 

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

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2018, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2019, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

psar = sar(start, increment, maximum)

// Signals
psar_long  = high[1] < psar[2] and high > psar[1] 
psar_short = low[1]  > psar[2] and low  < psar[1] 

// Plot PSAR
plotshape(psar, location = location.absolute, style = shape.cross, size = size.tiny, color = low < psar[1] and not psar_long ? green : red)


if (psar >= high and time_cond)
    strategy.entry("ParLE", strategy.long, stop=psar, comment="ParLE")
else
    strategy.cancel("ParLE")

if (psar <= low and time_cond)
    strategy.entry("ParSE", strategy.short, stop=psar, comment="ParSE")
else
    strategy.cancel("ParSE")

if (not time_cond)
    strategy.close_all()


Mais.