Esta estrategia es un sistema de negociación de seguimiento de tendencias que combina el indicador de Supertrend con el Kaufman Adaptive Moving Average (KAMA). Identifica dinámicamente los cambios de tendencia del mercado, busca oportunidades largas en las tendencias alcistas y emplea mecanismos flexibles de stop-loss para controlar el riesgo. El concepto central se basa en la capacidad de determinación de la dirección de tendencia del indicador Supertrend, combinada con las características adaptativas de volatilidad del mercado de KAMA, para establecer posiciones largas en las tendencias alcistas del mercado.
La estrategia emplea un sistema de confirmación de indicadores técnicos duales. Primero, el indicador de Supertrend calcula la dirección de la tendencia utilizando ATR y coeficientes personalizados, indicando una tendencia alcista cuando la línea del indicador está por debajo del precio. Segundo, el indicador KAMA ajusta la sensibilidad de la media móvil a través de un mecanismo adaptativo, adaptándose mejor a diferentes condiciones del mercado. Las señales de entrada requieren dos condiciones simultáneas: Supertrend que indica una tendencia alcista y precio por encima de la línea KAMA. Del mismo modo, las señales de salida necesitan una confirmación dual: Supertrend que cambia a tendencia bajista y precio que cae por debajo de la línea KAMA. Este mecanismo de confirmación dual reduce eficazmente las señales falsas.
Esta estrategia construye un robusto sistema de negociación de seguimiento de tendencias mediante la combinación de indicadores técnicos Supertrend y KAMA. Sus principales ventajas se encuentran en la adaptabilidad y las capacidades de control de riesgos, con una mayor confiabilidad de las señales de negociación a través de la confirmación doble.
/*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")