
Esta estratégia é um sistema de negociação de acompanhamento de tendências que combina o indicador Supertrend com a Média Móvel Adaptativa de Kaufman (KAMA). A estratégia identifica dinamicamente mudanças nas tendências de mercado, busca oportunidades de longo prazo em uma tendência ascendente e usa um mecanismo de stop-loss flexível para controlar riscos. A ideia central da estratégia é usar a capacidade de julgamento da direção da tendência do indicador Supertrend, combinada com as características adaptativas do indicador KAMA às flutuações do mercado, para estabelecer posições longas na tendência ascendente do mercado.
A estratégia utiliza um sistema duplo de confirmação de indicadores técnicos. Primeiro, o indicador Supertrend calcula a direção da tendência por meio do ATR e de um coeficiente personalizado. Quando a linha do indicador está abaixo do preço, isso indica uma tendência ascendente. Em segundo lugar, o indicador KAMA ajusta a sensibilidade da média móvel por meio de um mecanismo adaptativo, que pode se adaptar melhor a diferentes ambientes de mercado. O sinal de entrada deve atender a duas condições ao mesmo tempo: Supertrend indica uma tendência de alta e o preço está acima da linha KAMA. Da mesma forma, o sinal de saída também requer dupla confirmação: a supertrend se transforma em uma tendência de baixa e o preço cai abaixo da linha KAMA. Este mecanismo de dupla confirmação reduz efetivamente o impacto de sinais falsos.
Esta estratégia cria um sistema de negociação robusto de acompanhamento de tendências combinando dois indicadores técnicos, Supertrend e KAMA. As principais vantagens da estratégia são sua adaptabilidade e capacidade de controle de risco, e a confiabilidade dos sinais de negociação é melhorada por meio de um mecanismo de dupla confirmação. Embora possa haver alguns desafios em um mercado volátil, o desempenho geral da estratégia pode ser melhorado ainda mais por meio de configurações de parâmetros razoáveis e implementação de direções de otimização. Essa estratégia é particularmente adequada para negociação de tendências de médio e longo prazo e tem melhor desempenho em um ambiente de mercado com tendências claras.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Supertrend + KAMA Long Strategy", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)
// User-defined inputs for date range
startDate = input(timestamp("2018-01-01 00:00:00"), title="Start Date")
endDate = input(timestamp("2069-12-31 23:59:59"), title="End Date")
inDateRange = true
// Inputs for KAMA and Supertrend
kamaLength = input.int(21, title="KAMA Length", minval=1)
atrPeriod = input.int(10, title="Supertrend ATR Length", minval=1)
factor = input.float(3.0, title="Supertrend Factor", minval=0.01, step=0.01)
//------------------------- Kaufman Moving Average Adaptive (KAMA) -------------------------
xPrice = close
xvnoise = math.abs(xPrice - xPrice[1])
Length = kamaLength
nfastend = 0.666
nslowend = 0.0645
nsignal = math.abs(xPrice - xPrice[Length])
float nnoise = 0.0
for i = 0 to Length - 1
nnoise := nnoise + xvnoise[i]
nefratio = nnoise != 0.0 ? nsignal / nnoise : 0.0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
var float nAMA = na
nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
plot(nAMA, color=color.blue, linewidth=2, title="Kaufman KAMA")
//------------------------- Supertrend Calculation -------------------------
[stValue, dirValue] = ta.supertrend(factor, atrPeriod)
upTrend = dirValue < 0
downTrend = dirValue >= 0
plot(dirValue < 0 ? stValue : na, "Up Trend", color=color.green, style=plot.style_linebr)
plot(dirValue >= 0 ? stValue : na, "Down Trend", color=color.red, style=plot.style_linebr)
//------------------------- Strategy Logic -------------------------
// Entry condition: Supertrend is in uptrend AND price is above KAMA
canLong = inDateRange and upTrend and close > nAMA
// Exit condition (Take Profit): Supertrend switches to downtrend AND price is below KAMA
stopLoss = inDateRange and downTrend and close < nAMA
if canLong
strategy.entry("Long", strategy.long)
label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.normal)
if stopLoss
strategy.close("Long", comment="Stop Loss")
label.new(bar_index, high, "STOP LOSS", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.normal)
//------------------------- Alerts -------------------------
alertcondition(canLong, title="Long Entry", message="Supertrend + KAMA Long Signal")
alertcondition(stopLoss, title="Stop Loss", message="Supertrend switched to Downtrend and Price below KAMA")