
A estratégia de acompanhamento de tendências de resistência de suporte super é uma estratégia de acompanhamento de tendências inovadora que combina os dois indicadores populares de resistência de suporte e super tendência, juntamente com um filtro de tendência adicional para melhorar a precisão. A estratégia foi inspirada no script de acompanhamento de tendências de resistência de suporte de Lonesome TheBlue, que visa fornecer aos comerciantes uma ferramenta de acompanhamento de tendências confiável, minimizando os falsos sinais.
A estratégia é baseada na fusão de pontos de resistência de suporte e indicadores de tendência super, e na adição de um poderoso filtro de tendência. Primeiro, ele calcula os altos e baixos de suporte em períodos especificados, pontos de referência críticos que são essenciais para a análise de tendências.
Em seguida, o ATR é gerado de acordo com a linha média e os fatores definidos pelo usuário. Esses bandos se auto-ajustam de acordo com as flutuações do mercado, aumentando a flexibilidade da estratégia. O núcleo da estratégia do supertrend é identificar com precisão a tendência dominante, que se transforma de forma suave entre os sinais de multitoque e de cabeça de arco quando o preço interage com o supertrend.
A introdução de um filtro de tendência adicional para a estratégia aumenta ainda mais sua capacidade. O filtro é baseado em médias móveis, que avaliam dinamicamente a força e a direção da tendência. Ao combinar o filtro de tendência com o sinal de super-trend do ponto de resistência de suporte original, a estratégia visa tomar decisões de negociação mais inteligentes e confiáveis.
Aumento da precisão: a adição de filtros de tendência aumenta a precisão da estratégia confirmando a direção da tendência geral antes de gerar um sinal.
A continuação da tendência: integração de pontos de resistência e supertrends e filtros de tendência para prolongar a negociação durante uma forte tendência de mercado, maximizando potencialmente as oportunidades de lucro.
Reduzir os falsos sinais: o cálculo de médias ponderadas da estratégia, juntamente com o filtro de tendência, ajuda a minimizar os falsos sinais e reduzir os saltos em condições de incerteza ou de liquidação do mercado.
A estratégia continua a fornecer pontos de apoio e resistência adicionais de acordo com os pontos de apoio e resistência, fornecendo valiosas informações contextuais para os comerciantes.
Dependência de parâmetros: a estratégia é sensível aos parâmetros do ciclo ATR e do múltiplo ATR, e a configuração inadequada dos parâmetros pode causar excesso de negociação ou perda de oportunidades.
Reversão de tendência: perto do ponto de reversão de tendência, a estratégia pode produzir sinais errados, resultando em perdas desnecessárias. O risco deve ser gerenciado em combinação com o stop loss.
Otimização excessiva: os parâmetros podem ser otimizados para obter a melhor combinação, mas não são prospectivos. As diferenças de cenário e variedade devem ser consideradas na escolha dos parâmetros.
Risco de posição vazia: a estratégia entra em uma posição vazia quando o preço se desvia do trajeto ascendente e descendente. Isso pode perder a oportunidade de uma nova formação da tendência.
Combinação com outros indicadores: pode ser considerado o acréscimo de volume de negócios ou de índices de volatilidade, para melhorar a solidez da estratégia.
Parâmetros dinâmicos: métodos que podem ser estudados para otimizar automaticamente ou ajustar os parâmetros de acordo com o ambiente do mercado, para tornar a estratégia mais adaptável.
Estratégias de parada de perdas: estude como projetar mecanismos de parada de perdas para controlar efetivamente as perdas individuais, mantendo a lógica da estratégia.
Adaptabilidade da variedade: estratégia de avaliação Parameter în diferite piețe și instrumente, optimizați parametrii în funcție de specificul fiecăruia.
A estratégia de acompanhamento de tendências de resistência de super-suporte é uma estratégia de quantificação muito promissora. Ela mostra vantagens únicas em várias dimensões, como simplicidade e capacidade de acompanhamento de tendências.
/*backtest
start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © Julien_Eche
// Strategy based on "Pivot Point Supertrend" Indicator by LonesomeTheBlue
//@version=4
strategy("PPS", overlay=true, initial_capital=500000, currency=currency.USD, default_qty_type=strategy.cash, default_qty_value=50000)
prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50)
Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1)
Pd=input(defval = 10, title = "ATR Period", minval=1)
showpivot = input(defval = false, title="Show Pivot Points")
showlabel = input(defval = true, title="Show Buy/Sell Labels")
showcl = input(defval = false, title="Show PP Center Line")
showsr = input(defval = false, title="Show Support/Resistance")
// get Pivot High/Low
float ph = pivothigh(prd, prd)
float pl = pivotlow(prd, prd)
// drawl Pivot Points if "showpivot" is enabled
plotshape(ph and showpivot, text="H", style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd)
plotshape(pl and showpivot, text="L", style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd)
// calculate the Center line using pivot points
var float center = na
float lastpp = ph ? ph : pl ? pl : na
if lastpp
if na(center)
center := lastpp
else
//weighted calculation
center := (center * 2 + lastpp) / 3
// upper/lower bands calculation
Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))
// get the trend
float TUp = na
float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown
// plot the trend
linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor , linewidth = 2, title = "PP SuperTrend")
plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na)
// check and plot the signals
bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1
plotshape(bsignal and showlabel ? Trailingsl : na, title="Buy", text="Buy", location = location.absolute, style = shape.labelup, size = size.tiny, color = color.lime, textcolor = color.black, transp = 0)
plotshape(ssignal and showlabel ? Trailingsl : na, title="Sell", text="Sell", location = location.absolute, style = shape.labeldown, size = size.tiny, color = color.red, textcolor = color.white, transp = 0)
//get S/R levels using Pivot Points
float resistance = na
float support = na
support := pl ? pl : support[1]
resistance := ph ? ph : resistance[1]
// if enabled then show S/R levels
plot(showsr and support ? support : na, color = showsr and support ? color.lime : na, style = plot.style_circles, offset = -prd)
plot(showsr and resistance ? resistance : na, color = showsr and resistance ? color.red : na, style = plot.style_circles, offset = -prd)
// Trend Filter from SuperTrend Long Strategy
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
// Combine the SuperTrend calculations
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
// Moving Average as Trend Filter
periodes_ma = input(title="Moving Average Period", type=input.integer, defval=20)
src_ma = input(title="Moving Average Source", type=input.source, defval=close)
ma = sma(src_ma, periodes_ma)
// Strategy Entry Conditions
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 999)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
// Combined entry conditions
longCondition = (trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window())
shortCondition = (trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window())
if (longCondition)
strategy.entry("BUY", strategy.long)
if (shortCondition)
strategy.close("BUY")
strategy.entry("SELL", strategy.short)
buy1 = barssince((trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window()))
sell1 = barssince((trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window()))
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(color1)