Estrategia de negociación de tendencia de promedio móvil dinámico

El autor:¿ Qué pasa?, Fecha: 2023-11-15 17:45:13
Las etiquetas:

img

Resumen general

Esta estrategia se basa en el indicador de promedio móvil dinámico, combinado con bandas de Bollinger y RSI para el filtrado de señales comerciales. Implementa una tendencia siguiendo una estrategia de largo plazo. La estrategia juzga la tendencia calculando el cambio del precio de cierre del promedio móvil dinámico de Heiken Ashi y la compara con bandas de Bollinger para generar señales comerciales. Con el filtro RSI, puede identificar efectivamente puntos explosivos de tendencia para el seguimiento de tendencias.

Estrategia lógica

El núcleo de esta estrategia es calcular el cambio del precio de cierre de Heiken Ashi. Específicamente, calcula la diferencia entre el MA de la barra actual y el MA de las dos barras anteriores, y luego lo multiplica por un coeficiente de sensibilidad para obtener el valor preciso de cambio de MA.

Luego, este valor de cambio se compara con la diferencia entre la banda superior y la banda inferior de las bandas de Bollinger. Si el cambio de MA es mayor que la diferencia BB, se considera una explosión de tendencia. Cuando la explosión es positiva, es decir, el cambio de MA es positivo, genera una señal larga y una barra verde. Cuando la explosión es negativa, es decir, el cambio de MA es negativo, genera una señal cerrada y una barra roja.

Además, esta estrategia tiene un filtro RSI que solo permite señales largas cuando el RSI es superior a un umbral, evitando el riesgo de inversión de tendencia.

Ventajas

  • El MA dinámico para realizar un seguimiento eficaz de los cambios de tendencia
  • BB como indicador dinámico combinado con MA para una mejor identificación de la explosión de tendencia
  • El filtro RSI evita señales falsas de rebotes bajos
  • Solo adecuado para un mercado alcista persistente
  • Parámetros ajustables flexibles para diferentes productos y plazos

Los riesgos

  • Solo el largo no puede beneficiarse de la tendencia bajista
  • Demasiada dependencia de la optimización de parámetros para diferentes productos y plazos
  • La incapacidad de capturar la inversión de tendencia de manera efectiva puede llevar a grandes pérdidas.
  • Las configuraciones incorrectas del filtro RSI pueden perder oportunidades comerciales
  • La alta sensibilidad puede generar intercambios ruidosos

Los métodos de control del riesgo incluyen: ajuste adecuado de los parámetros de robustez, combinación de otros indicadores para juzgar la inversión de tendencia, uso solo en tendencias claras a largo plazo, etc.

Direcciones de optimización

Hay algo de espacio para una mayor optimización:

  • Pruebe diferentes fuentes de precios como cerrar, promedios móviles, etc. para una mejor suavización

  • Ajustar los parámetros de los períodos MA y BB para optimizar los diferentes productos

  • Pruebe relación de relación en lugar de coeficiente de sensibilidad para un valor de indicador más intuitivo

  • Añadir otros filtros como líneas de tendencia, volumen, etc. para mejorar la calidad de la señal

  • Desarrollar una estrategia corta basada en patrones de indicadores

  • Incorporar mecanismos de stop loss para un mejor control del riesgo

Conclusión

En general, esta es una tendencia relativamente estable después de la estrategia. Utiliza un promedio móvil dinámico para determinar la dirección de la tendencia, BB para identificar puntos explosivos, RSI para filtrar señales falsas, realizando un sistema de tendencia solo largo. Pero también tiene algunos riesgos, que requieren ajuste de parámetros para diferentes productos y marcos de tiempo, e incapacidad para beneficiarse de tendencias bajistas. Hay espacio para mejoras adicionales como mejorar la calidad de la señal, desarrollar una estrategia corta, agregar stop loss, etc. para lograr un mejor rendimiento.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

///////////Original Script Courtesy of Lazy_Bear.... Absolute Legend\\\\\\\\\\\\\\\

strategy('SmoothedWaddah', overlay=false, initial_capital=1)
sensitivity = input(150, title='Sensitivity')
fastLength = input(20, title='MacD FastEMA Length')
slowLength = input(40, title='MacD SlowEMA Length')
channelLength = input(20, title='BB Channel Length')
mult = input(1.5, title='BB Stdev Multiplier')
RSI14filter = input(40, title='RSI Value trade filter')

////////////MacD Calculation of price//////////////////////////////
calc_macd(source, fastLength, slowLength) =>
    fastMA = ta.ema(source, fastLength)
    slowMA = ta.ema(source, slowLength)
    fastMA - slowMA

/////////BolingerBand Calculation of Price///////////////////////
calc_BBUpper(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    basis + dev

calc_BBLower(source, length, mult) =>
    basis = ta.sma(source, length)
    dev = mult * ta.stdev(source, length)
    basis - dev

//////heinkenashi chart call for closing price "smoothing mechanism"\\\\\\\\\\\\\\\\\\\\\\\\\\\
point = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)

////////////////////T1 is change in MacD current  candle from previous candle Sensitivy amplifies calculation/////////////////////
t1 = (calc_macd(point, fastLength, slowLength) - calc_macd(point[1], fastLength, slowLength)) * sensitivity
//////////////////////T2 is  T1 from two candles prior\\\\\\\\\\\\\\\\\\\\\\\\\\\
t2 = (calc_macd(point[2], fastLength, slowLength) - calc_macd(point[3], fastLength, slowLength)) * sensitivity

////////////////E1 is difference in bolinger band upper and lower...E2 is E1 from one candle prior not needed//////////////
e1 = calc_BBUpper(ohlc4, channelLength, mult) - calc_BBLower(ohlc4, channelLength, mult)
//e2 = (calc_BBUpper(close[1], channelLength, mult) - calc_BBLower(close[1], channelLength, mult))

//////signal bar printing.. Up if MacD positive .. Down if MacD negative//////////
trendUp = t1 >= 0 ? t1 : 0
trendDown = t1 < 0 ? -1 * t1 : 0

///////plots difference in macD*Sensitivity, color change if increasing or decreasing. 
//////color is green/lime if explosion is up \ color is red/orange if explosion is down/////////
plot(trendUp, style=plot.style_columns, linewidth=1, color=trendUp < trendUp[1] ? color.new(color.lime,45) : color.new(color.green,45), title='UpTrend')
plot(trendDown, style=plot.style_columns, linewidth=1, color=trendDown < trendDown[1] ? color.new(color.orange,45) : color.new(color.red,45), title='DownTrend')
plot(e1, style=plot.style_line, linewidth=2, color=color.new(#A0522D, 0), title='ExplosionLine')


////////////Entry conditions and Concept/////////////////////
////////////Long Only System. T1 is measuring the distance between MACD EMA's. This is Multiplied
////////////by the sensitivity so that it can be compared to the difference between BollingerBand. 
/////////////{this could have been a ratio maybe i will work with that in a different script.} 
/////////////I found that 135-175 sensitivy allows for values to be compared on most charts.....
////////////If the (difference between the EMA)*(Sensitivity) is greater than (BB upper line- BB lower line)
////////////it is considered an explosion in either the downside or the upside.The indicator will print
///////////a bar higher than the trigger line either green or red (up or down respectively)//////////////////

longCondition = trendUp > e1 and ta.rsi(close, 14) > RSI14filter
if longCondition
    strategy.entry('up', strategy.long)

strategy.close('up', trendDown > e1)



Más.