
Esta estrategia es un sistema de trading de seguimiento de tendencias que combina el indicador Supertrend con la media móvil adaptativa Kaufman (KAMA). La estrategia identifica dinámicamente los cambios en las tendencias del mercado, busca oportunidades largas en una tendencia alcista y utiliza un mecanismo de stop-loss flexible para controlar los riesgos. La idea central de la estrategia es utilizar la capacidad de juicio de dirección de tendencia del indicador Supertrend, combinada con las características adaptativas del indicador KAMA a las fluctuaciones del mercado, para establecer posiciones largas en la tendencia ascendente del mercado.
La estrategia utiliza un sistema de confirmación de indicador técnico dual. En primer lugar, el indicador Supertrend calcula la dirección de la tendencia a través del ATR y un coeficiente personalizado. Cuando la línea del indicador está por debajo del precio, indica una tendencia alcista. En segundo lugar, el indicador KAMA ajusta la sensibilidad de la media móvil a través de un mecanismo adaptativo, que puede adaptarse mejor a diferentes entornos de mercado. La señal de entrada debe cumplir dos condiciones al mismo tiempo: Supertrend indica una tendencia alcista y el precio está por encima de la línea KAMA. Del mismo modo, la señal de salida también requiere una doble confirmación: la supertendencia se convierte en una tendencia bajista y el precio cae por debajo de la línea KAMA. Este mecanismo de doble confirmación reduce eficazmente el impacto de las señales falsas.
Esta estrategia construye un sólido sistema comercial de seguimiento de tendencias combinando dos indicadores técnicos, Supertrend y KAMA. Las principales ventajas de la estrategia son su adaptabilidad y capacidad de control de riesgos, y la confiabilidad de las señales comerciales se mejora a través de un mecanismo de doble confirmación. Si bien pueden existir algunos desafíos en un mercado volátil, el desempeño general de la estrategia se puede mejorar aún más mediante configuraciones de parámetros razonables e implementación de instrucciones de optimización. Esta estrategia es especialmente adecuada para el trading de tendencias a medio y largo plazo y funciona mejor en un entorno de mercado con tendencias 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")