Estrategia de trading con impulso de tendencia RSI combinada con medias móviles duales y confirmación de volumen

RSI SMA
Fecha de creación: 2024-11-28 17:02:32 Última modificación: 2024-11-28 17:02:32
Copiar: 0 Número de Visitas: 495
1
Seguir
1617
Seguidores

Estrategia de trading con impulso de tendencia RSI combinada con medias móviles duales y confirmación de volumen

Descripción general

Esta estrategia es una estrategia de seguimiento de tendencias basada en señales de venta por encima del RSI, tendencias de medias de corto plazo y confirmación de volúmenes de transacción. Se trata principalmente de establecer posiciones de varios jefes mediante la identificación de oportunidades de venta por encima de corto plazo en tendencias ascendentes de largo plazo, mientras que se utiliza el aumento de la transacción para confirmar la eficacia de las señales de negociación. La estrategia utiliza el indicador RSI de 10 períodos, el sistema de dos medias de 250 y 500 períodos, y la mediana de transacción de 20 períodos como un conjunto de indicadores centrales.

Principio de estrategia

La lógica central de la estrategia se basa en la coordinación de tres condiciones clave:

  1. RSI señal de sobreventa ((RSI<=30): se utiliza para capturar oportunidades de rebote de una venta por encima del mercado
  2. El orden de las dos líneas medias más altas (SMA250>SMA500): confirma una tendencia al alza a largo plazo
  3. Confirmación de la transacción: La transacción actual es mayor que la media de la transacción de 20 ciclos.*2.5): Verificar la efectividad de las variaciones de precios

Cuando se cumplen las tres condiciones anteriores, la estrategia entra en una posición múltiple. La señal de posición cerrada se activa atravesando la media a corto plazo por debajo de la media a largo plazo (la horquilla muerta). Al mismo tiempo, la estrategia establece un stop loss del 5% para controlar el riesgo.

Ventajas estratégicas

  1. El mecanismo de confirmación múltiple reduce las señales falsas: la combinación de RSI, línea media y filtro triple de volumen de transacción, mejora significativamente la fiabilidad de las señales de negociación
  2. Características de seguimiento de la tendencia: juzgue la tendencia general a través de la media a largo plazo y evite el comercio a la inversa
  3. Control de riesgos: establezca un límite de pérdidas fijo para controlar el riesgo de una sola transacción
  4. Adaptabilidad: los parámetros de la estrategia se pueden ajustar con flexibilidad en función de las diferentes características del mercado
  5. Selección rigurosa de las oportunidades de negocio: filtro de múltiples condiciones asegura que solo se ingrese en el mejor momento

Riesgo estratégico

  1. Riesgo de atraso: la media periódica larga está muy atrasada y puede haber perdido una tendencia temprana.
  2. Riesgo de exceso: las condiciones estrictas y múltiples pueden perder algunas oportunidades de negociación efectivas
  3. Riesgo de mercado en movimiento: puede desencadenar frecuentemente señales falsas en mercados en movimiento horizontal
  4. El riesgo de la configuración de stop loss: el stop loss fijo puede no ser adecuado para todos los entornos de mercado
  5. Riesgo de optimización de parámetros: la optimización excesiva puede provocar que la estrategia tenga un rendimiento deficiente en operaciones reales.

Dirección de optimización de la estrategia

  1. Optimización de stop loss dinámico: se puede considerar un mecanismo de stop loss dinámico basado en el ATR o la volatilidad
  2. Cuantificación de la intensidad de la tendencia: la introducción de indicadores de intensidad de la tendencia como el ADX mejora la precisión de la determinación de la tendencia
  3. Optimización de la gestión de posiciones: proporción de posiciones que se ajustan dinámicamente según la intensidad de la señal y la volatilidad del mercado
  4. Mecanismos de salida mejorados: Mecanismos de salida flexibles, como objetivos de ganancias aumentados y límites de pérdidas móviles
  5. Filtración de tiempo: añade filtros de tiempo de transacción para evitar períodos de negociación ineficaz

Resumir

Se trata de una estrategia de seguimiento de tendencias de diseño razonable, riguroso y lógico, que equilibra los beneficios y los riesgos de manera efectiva mediante el uso combinado de múltiples indicadores técnicos. La estrategia tiene una ventaja central en su mecanismo de confirmación de señales y sistema de control de riesgos, pero también enfrenta desafíos como exceso de exceso y atraso.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © wielkieef

//@version=5
strategy(title=' Rsi Long-Term Strategy [15min]', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03)

// Rsi
rsi_lenght = input.int(10, title='RSI lenght', minval=0)
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght)
rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)
rsi_overs = rsi_value <= 30
rsi_overb = rsi_value >= 70

// Volume
vol_sma_length = input.int(20, title='Volume lenght  ', minval=1)
Volume_condt = volume > ta.sma(volume, vol_sma_length) * 2.5

//SMA1
lengthSMA1 = input(250, title="Lenght SMA 1")
SMA1 = ta.sma(close, lengthSMA1)
//plot(SMA1, color=color.rgb(245, 108, 3), linewidth=1, title="SMA250")

//SMA2
lengthSMA2 = input(500, title="Lenght SMA 2")
SMA2 = ta.sma(close, lengthSMA2)
//plot(SMA2, color=#9803f5, linewidth=1, title="SMA500")


//Entry Logic
Long_cond = (rsi_overs and SMA1 > SMA2 and Volume_condt )  

if Long_cond
    strategy.entry('Long', strategy.long)

//Close Logic
Long_close = ta.crossunder(SMA1,SMA2)

if Long_close
    strategy.close("Long")

//Bar colors
Bar_color = Volume_condt ? #fc9802 : SMA1 > SMA2 ? color.rgb(84, 252, 0) : SMA1 < SMA2 ? color.maroon : color.gray
barcolor(color=Bar_color)

// Rsi value Plotshapes
plotshape(rsi_value < 30 and SMA1 > SMA2 and Volume_condt, title='Buy', color=color.new(color.green, 0), style=shape.circle, location=location.belowbar, size=size.tiny, textcolor=color.new(color.black, 0))
plotshape(rsi_value > 70 and SMA1 < SMA2 and Volume_condt, title='Sell', color=color.new(color.red, 0), style=shape.circle, location=location.abovebar, size=size.tiny, textcolor=color.new(color.black, 0))
plotshape(ta.crossunder(SMA1,SMA2) , title='DEATH CROSS', color=#000000, style=shape.xcross, location=location.abovebar, size=size.small, textcolor=color.new(color.black, 0))

//Stop-Loss// this code is from author RafaelZioni, modified by wielkieef
pera(pcnt) =>
    strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss = input.float(title=' stop loss', defval=5.0, minval=0.5)
los = pera(stoploss)
strategy.exit('SL', loss=los)




// by wielkieef