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

Tendencia modificada del índice de fortaleza relativa siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-03-29 16:16:37
Las etiquetas:

img

Resumen general

Esta estrategia captura las tendencias del mercado basadas en el Índice de Fuerza Relativa Modificado (RSI Modificado). La idea principal de la estrategia es utilizar las señales de cruce y las señales del histograma del indicador RSI Modificado para determinar la tendencia del mercado y realizar operaciones de acuerdo con la dirección de la tendencia.

Principio de la estrategia

  1. Calcular la EMA del precio como la entrada para el RSI modificado
  2. Calcular el indicador RSI modificado
  3. Calcular la EMA del RSI modificado como línea de señal
  4. Calcular la diferencia entre el RSI modificado y la línea de señal como el histograma
  5. Cuando el RSI modificado cruza por encima de la línea de señal y el histograma es mayor que 0, se genera una señal de compra
  6. Cuando el RSI modificado cruce por debajo de la línea de señal y el histograma es menor que 0, se genera una señal de venta

Ventajas estratégicas

  1. El indicador RSI modificado puede capturar mejor las tendencias en comparación con el indicador RSI tradicional.
  2. La combinación de las señales de cruce y señales de histograma de RSI modificado puede filtrar eficazmente las señales falsas
  3. Los parámetros son ajustables y aplicables a diferentes mercados y plazos
  4. El programa es conciso y computacionalmente eficiente

Riesgos estratégicos

  1. El indicador RSI modificado es propenso a generar señales falsas en los mercados de rango
  2. La captura de los puntos de inflexión de la tendencia puede tener un retraso
  3. El ruido de precios afecta fácilmente a un solo indicador

Direcciones para la optimización de la estrategia

  1. Puede combinarse con otros indicadores de tendencia, como las medias móviles, para mejorar la fiabilidad de la señal.
  2. Se puede añadir un módulo de stop-loss y take-profit para controlar el riesgo de una sola transacción
  3. Los parámetros pueden optimizarse en función de las diferentes características del mercado
  4. Se puede añadir un módulo de gestión de posiciones para ajustar dinámicamente las posiciones

Resumen de las actividades

Esta estrategia utiliza las características del indicador RSI modificado para construir un sistema de negociación desde la perspectiva de seguir la tendencia. El indicador RSI modificado supera algunos de los defectos del indicador RSI tradicional y tiene una capacidad de captura de tendencia relativamente fuerte. Sin embargo, las estrategias basadas en un solo indicador a menudo tienen limitaciones y deben mejorarse en combinación con otros medios técnicos. Al optimizar los parámetros de la estrategia, enriquecer las fuentes de señal, agregar módulos de control de riesgos y otros métodos, se puede mejorar aún más la estabilidad y la rentabilidad de esta estrategia.


/*backtest
start: 2023-03-23 00:00:00
end: 2024-03-28 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/
// © YogirajDange

//@version=5


// Verical lines


// // Define the times
// t1 = timestamp(year, month, dayofmonth, 09, 15) // 9:15
// t2 = timestamp(year, month, dayofmonth, 11, 15) // 11:15
// t3 = timestamp(year, month, dayofmonth, 13, 15) // 1:15
// t4 = timestamp(year, month, dayofmonth, 15, 25) // 3:25

// // Check if the current bar is on the current day
// is_today = (year(time) == year(timenow)) and (month(time) == month(timenow)) and (dayofmonth(time) == dayofmonth(timenow))

// // Draw a vertical line at each time
// if is_today and (time == t1 or time == t2 or time == t3 or time == t4)
//     line.new(x1 = bar_index, y1 = low, x2 = bar_index, y2 = high, extend = extend.both, color=color.red, width = 1)

strategy('Modified RSI')
col_grow_above = input(#02ac11, "Above   Grow", group="Histogram", inline="Above")
col_fall_above = input(#6ee47d, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#e5939b, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#dd0000, "Fall", group="Histogram", inline="Below")
EMA_length = input.int(13, 'Price_EMA', minval=1)
RSI_length = input.int(14, 'RSI_Period', minval=1)
Avg_length = input.int(5, 'RSI_Avg_EMA', minval=1)
fastMA = ta.ema(close, EMA_length)
modrsi = ta.rsi(fastMA, RSI_length)
RSIAVG = ta.ema(modrsi, Avg_length)
plot(modrsi, color=color.rgb(38, 0, 255), linewidth=2)
plot(RSIAVG, color=color.rgb(247, 0, 0))
rsiUpperBand = hline(60, 'RSI Upper Band', color=#099b0e)
//hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(40, 'RSI Lower Band', color=#e90101)

RSI_hist = modrsi - RSIAVG

//plot(RSI_hist,"RSI_Histogram", color = #c201e9, style = plot.style_columns,linewidth= 5)

plot(RSI_hist, title="RSI_Histogram", style=plot.style_columns, color=(RSI_hist>=0 ? (RSI_hist[1] < RSI_hist ? col_grow_above : col_fall_above) : (RSI_hist[1] < RSI_hist ? col_grow_below : col_fall_below)))


/////// Moving Averages 20 50 EMA

fast_ma = input.int(20, minval=2, title="Fast_EMA")
slow_ma = input.int(50, minval=2, title="Slow_EMA")

src = input.source(close, title="Source")

out = ta.ema(src, fast_ma)
out1 = ta.ema(src, slow_ma)

//plot(out, title="20 EMA", color=color.rgb(117, 71, 247), linewidth = 2)
//plot(out1, title="50 EMA", color=color.rgb(0, 0, 0), linewidth = 2)


longCondition = ((ta.crossover(modrsi, RSIAVG)) and (RSI_hist > 0))
if longCondition
    strategy.entry('B', strategy.long)

shortCondition = ((ta.crossunder(modrsi, RSIAVG)) and (RSI_hist < 0))
if shortCondition
    strategy.entry('S', strategy.short)



Más.