Estrategia de marco temporal cruzado basada en el indicador RSI


Fecha de creación: 2023-12-29 14:12:54 Última modificación: 2023-12-29 14:12:54
Copiar: 0 Número de Visitas: 647
1
Seguir
1623
Seguidores

Estrategia de marco temporal cruzado basada en el indicador RSI

Descripción general

Esta estrategia es una estrategia de corto plazo de BTC en el marco temporal basado en el indicador RSI. La estrategia obtiene una curva VWAP calculando el precio promedio ponderado por transacción (VWAP) de cada línea K y luego aplica el indicador RSI a la curva. Se corta el BTC cuando el indicador RSI aparece en una señal de forca muerta que atraviesa hacia abajo desde la zona de sobreventa.

Principio de estrategia

  1. Calcule el promedio ponderado por volumen de transacciones (VWAP) de cada línea K, obteniendo una curva VWAP
  2. El indicador RSI aplicado a la curva VWAP tiene un parámetro de 20 días, una línea de sobreventa de 85 y una línea de sobreventa de 30
  3. Cuando el indicador RSI cruza la zona de venta por encima de la zona de compra por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta por encima de la zona de venta
  4. Después de mantener una posición de 28 líneas de K, si el indicador RSI se eleva nuevamente a través de la línea de venta excesiva (30), la posición baja

Análisis de las ventajas

  1. El uso de VWAP en lugar de un simple precio de cierre refleja mejor el precio real de la transacción
  2. Aplicar el indicador RSI para identificar el estado de sobrecompra y venta y evitar el seguimiento de las subidas y bajadas
  3. La aplicación también ofrece un servicio de búsqueda de datos en línea.
  4. Riesgo controlado, 28 líneas K sin pérdida

Riesgos y soluciones

  1. Los eventos inesperados han provocado un rápido aumento de los precios que no se puede detener.
    • La adopción de un marco temporal para reducir el riesgo de estafa
  2. Los parámetros están mal configurados y las oportunidades se pierden.
    • Prueba y optimización de los parámetros RSI y de las líneas de sobrecompra y sobreventa
  3. La línea K no puede atravesar para entrar en el supermercado
    • Ajuste flexible de los parámetros en combinación con otros indicadores para determinar tendencias

Dirección de optimización

  1. Prueba más combinaciones de parámetros para encontrar el mejor
  2. Combinado con MACD, KD y otros indicadores para determinar si se está entrando en una zona de sobrecompra
  3. Configuración de los parámetros de prueba según las diferentes variedades
  4. Optimización del mecanismo de detención de pérdidas, ajustando la amplitud de detención de pérdidas según la volatilidad

Resumir

Esta estrategia identifica el estado de sobreventa y sobreventa de BTC a través de la combinación de VWAP y RSI, opera de manera transversal al marco de tiempo y puede controlar el riesgo de manera efectiva. La idea de la estrategia es clara y fácil de entender, merece ser optimizada para pruebas adicionales y se aplica a las operaciones en el mercado real.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=4

strategy("Soran Strategy 2 - SHORT SIGNALS", pyramiding=1, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=50, overlay=false)


// ----------------- Inputs ----------------- //

reso = input(title="Resolution", type=input.resolution, defval="")
length = input(20, title="RSI Length", type=input.integer)
ovrsld = input(30, "RSI Oversold level", type=input.float)
ovrbgt = input(85, "RSI Overbought level", type=input.float)
lateleave = input(28, "Number of candles", type=input.integer)
// lateleave : numbers of bars in overbought/oversold zones where the position is closed. The position is closed when this number is reached or when the zone is left (the first condition).

// best parameters BTCUSDTPERP M15 : 20 / 30 / 85 / 28


stratbull = input(title="Enter longs ?", type = input.bool, defval=true)
stratbear = input(title="Enter shorts ?", type = input.bool, defval=true)

stratyear = input(2020, title = "Strategy Start Year")
stratmonth = input(1, title = "Strategy Start Month")
stratday = input(1, title = "Strategy Start Day")
stratstart = timestamp(stratyear,stratmonth,stratday,0,0)


// --------------- Laguerre ----------------- //

laguerre = input(title="Use Laguerre on RSI ?", type=input.bool, defval=false)
gamma = input(0.06, title="Laguerre Gamma")

laguerre_cal(s,g) =>
    l0 = 0.0
    l1 = 0.0
    l2 = 0.0
    l3 = 0.0
    l0 := (1 - g)*s+g*nz(l0[1])
    l1 := -g*l0+nz(l0[1])+g*nz(l1[1])
    l2 := -g*l1+nz(l1[1])+g*nz(l2[1])
    l3 := -g*l2+nz(l2[1])+g*nz(l3[1])
    (l0 + 2*l1 + 2*l2 + l3)/6


// ---------------- Rsi VWAP ---------------- //

rsiV = security(syminfo.tickerid, reso, rsi(vwap(close), length))

rsiVWAP = laguerre ? laguerre_cal(rsiV,gamma) : rsiV


// ------------------ Plots ----------------- //

prsi = plot(rsiVWAP, color = rsiVWAP>ovrbgt ? color.red : rsiVWAP<ovrsld ? color.green : color.white, title="RSI on VWAP", linewidth=1, style=plot.style_line)
hline = plot(ovrbgt, color = color.gray, style=plot.style_line)
lline = plot(ovrsld, color = color.gray, style=plot.style_line)
fill(prsi,hline, color = rsiVWAP > ovrbgt ? color.red : na, transp = 30)
fill(prsi,lline, color = rsiVWAP < ovrsld ? color.green : na, transp = 30)


// ---------------- Positions: only shows the Short and close shoret positions --------------- //

timebull = stratbull and time > stratstart
timebear = stratbear and time > stratstart


strategy.entry("Short", false, when = timebear and crossunder(rsiVWAP, ovrbgt), comment="")
strategy.close("Short", when = timebear and crossunder(rsiVWAP, ovrsld)[lateleave] or crossover(rsiVWAP, ovrsld), comment="")