En la carga de los recursos... Cargando...

Estrategia de seguimiento de tendencias múltiples

El autor:¿ Qué pasa?, Fecha: 2023-11-17 17:19:37
Las etiquetas:

img

Resumen general

La estrategia de seguimiento de tendencias múltiple utiliza de manera integral MACD, RSI, ATR y DEMA cuatro indicadores para identificar las tendencias a largo y corto plazo de las acciones y realizar operaciones de seguimiento de tendencias.

Estrategia lógica

Estrategia de negociación del MACD

El MACD es el acrónimo de Moving Average Convergence Divergence, que es un indicador de tendencia. El MACD consiste en una línea de promedio móvil rápido y una línea de promedio móvil lento, comúnmente utilizando parámetros de EMA de 12 días para línea rápida, EMA de 26 días para línea lenta y línea de señal como EMA de 9 días del MACD. Cuando el MACD cruza por encima de la línea de señal, es una señal de compra, y cuando cruza por debajo, es una señal de venta.

Estrategia de sobrecompra y sobreventa del RSI

RSI significa índice de fortaleza relativa, que refleja el estado de sobrecompra y sobreventa de una acción. RSI determina si una acción está sobrecomprada o sobreventa comparando la ganancia promedio y la pérdida promedio durante un período de tiempo.

Análisis de ventajas

Esta estrategia utiliza ampliamente MACD, RSI, ATR y DEMA cuatro indicadores, teniendo en cuenta tanto el seguimiento de tendencias y el comercio de ruptura, que puede encontrar mejores puntos de entrada dentro de la tendencia.

  1. El MACD puede identificar eficazmente la dirección y los puntos de inflexión de las tendencias a medio y largo plazo de los precios de las acciones.

  2. El RSI puede juzgar si una acción está sobrecomprada o sobrevendida a corto plazo para evitar perseguir máximos y vender mínimos en los puntos de inversión de tendencia.

  3. ATR ajusta dinámicamente la posición de stop loss para controlar eficazmente la pérdida única.

  4. DEMA sirve como un indicador de juicio auxiliar para filtrar algo de ruido.

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

Análisis de riesgos

Esta estrategia también presenta algunos riesgos:

  1. Puede producirse una divergencia con la combinación de múltiples indicadores, lo que conduce a señales comerciales erróneas.

  2. El ATR como indicador dinámico de stop loss es propenso a romperse en grandes fluctuaciones que resultan en pérdidas.

  3. DEMA como un filtro de tendencia puede filtrar algunas oportunidades comerciales más fuertes a corto plazo.

  4. Los parámetros de estrategia inadecuados pueden dar lugar a operaciones frecuentes, aumento de los costes de transacción y pérdidas por deslizamiento.

Para controlar los riesgos, los parámetros de los indicadores se pueden ajustar en consecuencia. También se pueden introducir más indicadores de juicio auxiliares para la confirmación. Desarrollar estrategias comerciales cuantitativas requiere un análisis meticuloso de datos históricos, pruebas de retroceso robustas y una gestión prudente del riesgo. No puedo recomendar acciones específicas, pero puedo sugerir centrarse en principios de desarrollo de estrategias sólidas.

Direcciones de optimización

La estrategia también puede optimizarse en los siguientes aspectos:

  1. Prueba diferentes combinaciones de parámetros para encontrar los parámetros óptimos.

  2. Añadir estrategias de stop loss como stop loss móvil, stop loss promedio, etc. para controlar aún más los riesgos.

  3. Introducir más indicadores de juicio auxiliares como KDJ, Bandas de Bollinger, etc. para mejorar la precisión de la señal.

  4. Optimice las selecciones de tiempo de entrada combinando estrategias de escape para encontrar mejores puntos de entrada.

  5. Diferenciar los parámetros de los mercados alcista y bajista.

  6. Construir modelos basados en las características del stock para mejorar la adaptabilidad.

Resumen de las actividades

La estrategia de seguimiento de tendencias múltiple integra MACD, RSI, ATR y DEMA cuatro indicadores, logrando una combinación orgánica de seguimiento de tendencias y ruptura de tendencias. En comparación con las estrategias de indicadores únicos, esta estrategia puede proporcionar señales comerciales más confiables y evitar ciertas señales falsas. A través de la optimización de parámetros, estrategias de stop loss, juicios auxiliares, etc., el rendimiento de la estrategia puede mejorarse aún más. Esta estrategia es adecuada para el comercio cuantitativo que requiere capacidades de cambio de tendencia más altas y es una estrategia de idea prometedora que vale la pena rastrear y optimizar a largo plazo.


/*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)

Más.