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

Han Yue - Tendencia siguiendo la estrategia de negociación basada en múltiples EMA, ATR y RSI

El autor:¿ Qué pasa?, Fecha: 2024-05-14 16:37:52
Las etiquetas:El EMAEl ATRIndicador de riesgo

img

Resumen general

Esta estrategia utiliza tres promedios móviles exponenciales (EMA) con diferentes períodos para determinar la tendencia del mercado, y combina el índice de fuerza relativa (RSI) y el rango verdadero promedio (ATR) para identificar los puntos de entrada, las pérdidas de parada y los niveles de ganancia. Cuando el precio atraviesa el canal formado por las tres EMA y el RSI también atraviesa su promedio móvil, la estrategia activa una señal de entrada. ATR se utiliza para controlar el tamaño de la posición y establecer los niveles de stop-loss, mientras que la relación riesgo-recompensación (RR) se utiliza para determinar los niveles de ganancia.

Principios de estrategia

  1. Calcular tres EMA con períodos diferentes (a corto, mediano y largo plazo) para determinar la tendencia general del mercado.
  2. Cuando el RSI rompe su promedio móvil, indica un cambio en la tendencia.
  3. Generar señales de entrada basadas en la relación entre el precio y el canal EMA, así como señales RSI: abrir una posición en la dirección de la tendencia cuando el precio rompe el canal EMA y el RSI también rompe su promedio móvil.
  4. El valor de las posiciones de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de los titulares de activos y de las titulares de activos y de los titulares de activos y de los titulares de activos y de las titulares de activos y de las titulares de activos y de los titulares de activos y de las titulares de activos y de los titulares de activos y de los titulares de activos.
  5. Establecer niveles de rentabilidad basados en una relación riesgo-rendimiento predefinida (por ejemplo, 1,5:1) para garantizar la rentabilidad de la estrategia.

Análisis de ventajas

  1. Sencilla y eficaz: la estrategia utiliza sólo unos pocos indicadores técnicos comunes, con una lógica clara y fácil de entender e implementar.
  2. Seguimiento de tendencias: al combinar el canal EMA y el RSI, la estrategia puede seguir las tendencias del mercado y capturar movimientos de precios más grandes.
  3. Control de riesgos: el uso de ATR para establecer niveles de stop-loss y controlar el tamaño de las posiciones limita efectivamente la exposición al riesgo de cada operación.
  4. Flexibilidad: los parámetros de la estrategia (como los períodos EMA, los períodos RSI, los multiplicadores ATR, etc.) pueden ajustarse de acuerdo con diferentes mercados y estilos de negociación para optimizar el rendimiento.

Análisis de riesgos

  1. Optimización de parámetros: el rendimiento de la estrategia depende en gran medida de la elección de parámetros, y la configuración incorrecta de parámetros puede conducir al fracaso de la estrategia o al mal rendimiento.
  2. Riesgo de mercado: la estrategia puede sufrir pérdidas significativas en caso de acontecimientos inesperados o condiciones extremas de mercado, especialmente durante inversiones de tendencia o mercados volátiles.
  3. Sobreajuste: Si la estrategia se sobreajusta a los datos históricos durante el proceso de optimización de parámetros, puede conducir a un bajo rendimiento en la negociación real.

Direcciones de optimización

  1. Parámetros dinámicos: ajustar dinámicamente los parámetros de la estrategia de acuerdo con los cambios en las condiciones del mercado, por ejemplo, utilizando períodos de EMA más largos cuando la tendencia es fuerte y períodos más cortos en mercados inestables.
  2. Combinar otros indicadores: introducir otros indicadores técnicos (como bandas de Bollinger, MACD, etc.) para mejorar la fiabilidad y precisión de las señales de entrada.
  3. Incorporar el sentimiento del mercado: Combinar indicadores del sentimiento del mercado (como el índice de miedo y codicia) para ajustar la exposición al riesgo y la gestión de la posición de la estrategia.
  4. Análisis de marcos de tiempo múltiples: Analiza las tendencias y señales del mercado en diferentes marcos de tiempo para obtener una perspectiva del mercado más completa y tomar decisiones comerciales más sólidas.

Resumen de las actividades

Esta estrategia construye un sistema de trading de seguimiento de tendencias simple y eficaz mediante la combinación de múltiples indicadores técnicos comunes, como EMA, RSI y ATR. Utiliza el canal EMA para determinar las tendencias del mercado, RSI para confirmar la fuerza de la tendencia y ATR para controlar el riesgo. Las ventajas de la estrategia se encuentran en su simplicidad y adaptabilidad, ya que puede seguir las tendencias y el comercio en diferentes condiciones del mercado. Sin embargo, el rendimiento de la estrategia depende en gran medida de la elección de parámetros, y la configuración inadecuada de parámetros puede conducir a un fracaso de la estrategia o un mal rendimiento. Además, la estrategia puede enfrentar riesgos significativos durante eventos inesperados o condiciones extremas del mercado.


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
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/
// © hatnxkld

//@version=4
strategy("Win ha", overlay=true)

ss2 = input("0300-1700", title = "Khung thời gian")

t2 = time(timeframe.period,ss2)
c2 = #cacae6

bgcolor(t2 ? c2 : na, transp = 70)


//3ema
emangan=input(title="Ema ngắn", defval = 12)
ngan=ema(close, emangan)
a= plot(ngan, title="EMA ngắn", color=color.yellow)
ematb=input(title="Ema trung bình", defval = 100)
tb=ema(close, ematb)
b= plot(tb, title="EMA trung bình", color=color.blue)
//emadai=input(title="Ema dai", defval = 288)
//dai=ema(close,emadai)
//c= plot(dai, title="EMA dai", color=color.red)




// nhập hệ số nhân ATR
i=input(title="Hệ số nhân với ATR", defval=1.25)

// RSI
rsi=rsi(close, emangan)
marsi=sma(rsi, emangan)

// Kênh keltler
//heso=input(defval=1, title="Hệ số Kênh Keltler")
//atr=atr(emangan)
//tren=ngan+atr*heso
//d=plot(tren, title="Kênh trên", color=color.white)
//duoi=ngan-atr*heso
//e=plot(duoi, title="Kênh dưới", color=color.white)
//fill(d,e, color=color.rgb(48, 58, 53))

ban = ( close[1]>open[1] and (high[1]-close[1])>(close[1]-low[1]) and open>close and close<low[1]   ) 


//or (    open[1] > close[1] and (high[1]-open[1])>(open[1]-low[1]) and (open[1]-close[1])>(close[1]-low[1]) and open>close and close <low[1]     )   )  //and time(timeframe.period,"2200-1300")
//and (close[1]-open[1])>(open[1]-low[1]) 
//high > ngan and close < ngan and ngan<tb and 
// and time(timeframe.period,"1000-2300")
bgcolor(color = ban ? color.rgb(235, 106, 123) : na)
//bgcolor(color.rgb(82, 255, 154),transp = 100, offset = 1, show_last = 2)
//and time(timeframe.period,"2300-1500") and ((open>ngan and close<ngan) or (open>tren and close<tren))
plotshape(ban , style=shape.arrowdown, location=location.abovebar, color=#ff00ff, size=size.tiny, textcolor=color.rgb(255, 59, 213))
alertcondition(ban, "Ban", "Ban")

mua=  (  open[1]>close[1] and (close[1]-low[1])>(high[1]-close[1]) and close > open and close > high[1]  )  //and time(timeframe.period,"2200-1300")


//or  (  close[1]>open[1] and (open[1]-low[1]) > (high[1]-open[1]) and (close[1]-open[1])>(high[1]-close[1]) and close>open and close>high[1]      ) )
//and (open[1]-close[1])>(high[1]-open[1])
//low < ngan and close > ngan and ngan>tb and
//or  (  close[1]>open[1] and (open[1]-low[1]) > (high[1]-open[1]) and (close[1]-open[1])>(high[1]-close[1]) and close>open and close>high[1]      )

// and time(timeframe.period,"1000-2300")
bgcolor(color= mua? color.rgb(108, 231, 139):na)
//and time(timeframe.period,"2300-1500") and ((open<ngan and close>ngan)or (open<duoi and close>duoi) )
plotshape(mua , style=shape.arrowup, location=location.belowbar, color=#00ff6a, size=size.tiny, textcolor=color.rgb(83, 253, 60))
alertcondition(mua , "Mua", "Mua")


//len1 = ban==true and (high-low)>2*atr
//plotshape(len1 , style=shape.flag, location=location.abovebar, color=#ff00ff, size=size.tiny, title="Sell Signal", text="Xuong 1", textcolor=color.rgb(255, 59, 213))

//bann= ban==true and rsi < marsi and marsi[2]>marsi[1]
//plotshape(bann , style=shape.labeldown, location=location.abovebar, color=#ff00ff, size=size.tiny, title="Sell Signal", text="BAN 2", textcolor=color.rgb(240, 234, 239))

//bannn = mua==true and rsi>marsi and marsi[2]<marsi[1]
//plotshape(bannn , style=shape.labelup, location=location.belowbar, color=#00ff6a, size=size.tiny, title="Buy Signal", text="Mua 2", textcolor=color.rgb(237, 241, 236))

//a1= ban==true and (high - low)<atr 
//plotshape(a1 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text="<atr", textcolor=color.rgb(240, 95, 76))

//a2 = ban ==true and (high - low)>atr and (high - low)<(2*atr) 
//plotshape(a2 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text="<2atr", textcolor=color.rgb(237, 241, 236))

//a3= ban==true and (high - low)>(2*atr) 
//plotshape(a3 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Sell", text=">2atr", textcolor=color.rgb(234, 252, 74))


//b1= mua==true and (high - low)<atr 
//plotshape(b1 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text="<atr", textcolor=color.rgb(237, 241, 236))

//b2 = mua ==true and (high - low)>atr and (high - low)<(2*atr) 
//plotshape(b2 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text="<2atr", textcolor=color.rgb(237, 241, 236))

//b3= mua==true and (high - low)>(2*atr) 
//plotshape(b3 , style=shape.xcross, location=location.bottom, color=#00ff6a, size=size.tiny, title="Buy", text=">2atr", textcolor=color.rgb(237, 241, 236))

// Đặt SL TP ENTRY
risk= input(title="Rủi ro % per Trade", defval=0.5)
rr= input(title="RR", defval=1.5)
onlylong= input(defval=false)
onlyshort=input(defval=false)

stlong = mua and strategy.position_size<=0 ? low[1]:na
stoplong= fixnan(stlong)

stshort = ban and strategy.position_size>=0 ? high[1]:na
stopshort= fixnan(stshort)

enlong = mua and strategy.position_size<=0 ? close:na
entrylong =fixnan(enlong)

enshort = ban and strategy.position_size>=0 ? close:na
entryshort = fixnan(enshort)

amountL = risk/100* strategy.initial_capital / (entrylong - stoplong)
amountS = risk/100* strategy.initial_capital / (stopshort - entryshort)

TPlong= mua and strategy.position_size<=0? entrylong + (entrylong -stoplong)*rr:na
takeprofitlong =fixnan(TPlong)
TPshort = ban and strategy.position_size>=0? entryshort - (stopshort - entryshort)*rr:na 
takeprofitshort = fixnan(TPshort)

strategy.entry("Long", strategy.long , when = enlong and not onlyshort, qty= amountL )
strategy.exit("exitL", "Long", stop = stoplong, limit= takeprofitlong)

strategy.entry("Short", strategy.short , when = enshort and not onlylong, qty= amountS )
strategy.exit("exitS", "Short", stop = stopshort, limit= takeprofitshort)



Relacionados

Más.