Esta estratégia é um sistema de negociação de tendência que combina o indicador Supertrend com a média móvel adaptativa de Kaufman (KAMA). Identifica dinamicamente as mudanças de tendência do mercado, procura oportunidades longas em tendências de alta e emprega mecanismos flexíveis de stop-loss para controle de risco.
A estratégia emprega um sistema duplo de confirmação de indicadores técnicos. Em primeiro lugar, o indicador Supertrend calcula a direção da tendência usando o ATR e coeficientes personalizados, indicando uma tendência de alta quando a linha do indicador está abaixo do preço. Em segundo lugar, o indicador KAMA ajusta a sensibilidade média móvel por meio de um mecanismo adaptativo, melhor acomodando diferentes condições de mercado. Os sinais de entrada exigem duas condições simultâneas: Supertrend indicando uma tendência de alta e preço acima da linha KAMA. Da mesma forma, os sinais de saída precisam de confirmação dupla: Supertrend mudando para tendência de baixa e preço caindo abaixo da linha KAMA. Este mecanismo de confirmação dupla reduz efetivamente os sinais falsos.
Esta estratégia constrói um robusto sistema de negociação seguindo tendências, combinando os indicadores técnicos Supertrend e KAMA. Suas principais vantagens estão na capacidade de adaptabilidade e controle de riscos, com maior confiabilidade do sinal de negociação por meio de confirmação dupla. Enquanto enfrenta desafios em mercados agitados, o desempenho geral da estratégia pode ser melhorado através de configurações de parâmetros apropriadas e implementações de otimização. É particularmente adequado para negociação de tendências de médio a longo prazo e tem um bom desempenho em mercados 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")