Estrategias de seguimiento de tendencias múltiples


Fecha de creación: 2023-11-17 17:19:37 Última modificación: 2023-11-17 17:19:37
Copiar: 1 Número de Visitas: 664
1
Seguir
1617
Seguidores

Estrategias de seguimiento de tendencias múltiples

Descripción general

La estrategia de seguimiento de tendencias múltiples utiliza los cuatro indicadores MACD, RSI, ATR y DEMA para identificar las tendencias a largo y corto plazo de las acciones y realizar operaciones de seguimiento de tendencias. La estrategia combina al mismo tiempo las ventajas de las operaciones de seguimiento de tendencias y las operaciones de seguimiento de tendencias, para capturar tendencias en las líneas más largas y buscar mejores oportunidades de entrada en las líneas cortas.

Principio de estrategia

Estrategias de negociación del MACD

El MACD es un indicador de dispersión de promedio móvil, un indicador de seguimiento de tendencias. El MACD se compone de promedios móviles rápidos y promedios móviles lentos, los parámetros más comunes son la línea rápida de 12 días de EMA, la línea lenta de 26 días de EMA y la línea de señal de 9 días de EMA del MACD.

El RSI es una estrategia de sobrecompra y sobreventa.

El RSI es un índice de fuerza y debilidad relativa que refleja la sobrecompra y sobreventa de acciones. El RSI se determina comparando el aumento promedio de cierre y la caída promedio de cierre durante un período de tiempo.

Análisis de las ventajas

La estrategia combina cuatro indicadores: MACD, RSI, ATR y DEMA, y combina el seguimiento de tendencias y las operaciones de ruptura para encontrar mejores momentos de entrada en las tendencias, con las siguientes ventajas:

  1. El MACD puede identificar de manera efectiva la dirección y el giro de tendencias a medio y largo plazo de los precios de las acciones.

  2. El RSI puede determinar si las acciones están sobrecompradas o sobrevendidas en el corto plazo, evitando perseguir las subidas y bajadas en los puntos de reversión de la tendencia.

  3. El ATR ajusta dinámicamente la posición de la línea de parada para controlar eficazmente la pérdida individual.

  4. DEMA puede filtrar parte del ruido como indicador auxiliar de juicio.

  5. La combinación de múltiples indicadores puede mejorar la fiabilidad de las señales de negociación.

Análisis de riesgos

La estrategia también tiene ciertos riesgos:

  1. La combinación de múltiples indicadores puede ser discordante y provocar señales de trading erróneas.

  2. El ATR es un indicador de stop loss dinámico, que es susceptible de ser roto en grandes fluctuaciones y causar pérdidas.

  3. DEMA, como un indicador de fluctuaciones de tendencia, puede filtrar las oportunidades de comercio a corto plazo más fuertes.

  4. Los parámetros estratégicos incorrectos pueden conducir a una mayor frecuencia de transacciones, aumentando los costos de transacción y la pérdida de puntos de deslizamiento.

El desarrollo de estrategias de comercio cuantitativas requiere un análisis meticuloso de datos históricos, una prueba de retroceso robusta y una gestión de riesgos prudente. No puedo recomendar acciones específicas, pero puedo sugerir enfocarse en principios de desarrollo de estrategias sólidas.

Dirección de optimización

La estrategia también puede ser optimizada en los siguientes aspectos:

  1. Prueba diferentes combinaciones de parámetros para encontrar el mejor.

  2. Aumentar las estrategias de detención de pérdidas, como el movimiento de la pérdida, el deterioro promedio, etc., para controlar aún más el riesgo.

  3. Se han añadido más indicadores auxiliares de juicio, como KDJ, Brinband, etc., para mejorar la precisión de la señal.

  4. Optimización de las opciones de entrada, como la combinación de estrategias como breakouts, para encontrar mejores puntos de venta.

  5. Distinguir entre mercados de capitales y mercados de capitales con diferentes parámetros.

  6. Modelado de acuerdo con la clasificación de las características de las acciones, para que la estrategia sea más adaptable.

Resumir

La estrategia de seguimiento de tendencias múltiples utiliza cuatro indicadores integrados: MACD, RSI, ATR y DEMA, lo que permite una combinación orgánica de seguimiento de tendencias y rupturas de tendencias. En comparación con la estrategia de un solo indicador, esta estrategia puede proporcionar una señal de negociación más confiable y evitar ciertas señales falsas.

Código Fuente de la Estrategia
/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © prim722

// © OTS Music

//@version=4
strategy("Atrend by OTS", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
if (crossover(delta, 0))
	strategy.entry("MACD buy", strategy.long, comment="MACD buy")
if (crossunder(delta, 0))
	strategy.entry("MACD sell", strategy.short, comment="MACD sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
length = input( 18 )
overSold = input( 30 )
overBought = input( 70 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
if (not na(vrsi))
	if (co)
		strategy.entry("RSI buy", strategy.long, comment="RSI buy")
	if (cu)
		strategy.entry("RSI sell", strategy.short, comment="RSI sell")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=false)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_line, linewidth=2, color=color.white)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="", text="", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.white, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_line, linewidth=2, color=color.gray)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="", text="", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.white : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.gray : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="ATrend Buy", message="ATrend Buy!")
alertcondition(sellSignal, title="ATrend Sell", message="ATrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="ATrend Direction Change", message="ATrend has changed direction!")

length1 = input(25, minval=1)
srcb = input(close, title="Source")
e1 = ema(srcb, length1)
e2 = ema(e1, length)
dema = 2 * e1 - e2
plot(dema, "DEMA", color.red)