Estrategia de cambio de RSI de scalping rápido v1.7

El autor:¿ Qué pasa?, Fecha: 2023-12-22 15:10:40
Las etiquetas:

img

Resumen general

Noro's Fast Scalping RSI Switching Strategy es una estrategia comercial cuantitativa que identifica oportunidades de sobrecompra y sobreventa utilizando el indicador RSI. La estrategia también incorpora patrones de velas, filtros de promedio móvil y métodos de stop loss para controlar el riesgo.

Los componentes clave de esta estrategia incluyen:

  1. Indicador RSI rápido: Identifica los niveles de sobrecompra y sobreventa
  2. Patrones de velas: ayudan a determinar la dirección de la tendencia
  3. Filtro de media móvil: utilizar SMA para evitar señales falsas
  4. Mecanismo de detención de pérdidas: aplicar una detención de pérdidas basada en los límites del RSI.

Estrategia lógica

Noro Fast Scalping RSI Switching Strategy identifica principalmente las siguientes señales de negociación:

  1. Las señales de sobrecompra/sobreventa del RSI rápido se generan cuando el RSI rápido cruza su límite superior o su límite inferior.

  2. Señal de Candlestick: Los parámetros de Candlestick como el tamaño del cuerpo y la dirección se utilizan para determinar la tendencia y complementar las señales rápidas de RSI.

  3. Señal de filtro SMA: la dirección SMA filtra las señales de fuga falsas.

  4. Las posiciones se cierran cuando el RSI rápido vuelve a cruzar por encima de su límite superior o debajo de su límite inferior.

Específicamente, esta estrategia identifica oportunidades comerciales basadas en las zonas de sobrecompra y sobreventa del RSI rápido.

Para evitar el ruido, se añaden las siguientes condiciones suplementarias:

  1. Tamaño del cuerpo de la vela: Los cuerpos de las velas más grandes representan una tendencia más fuerte
  2. Dirección de la vela: determina la tendencia alcista o bajista
  3. Filtro SMA: filtra las señales falsas de ruptura
  4. Stop Loss: sale de las operaciones cuando el RSI rápido cruza sus límites.

Por lo tanto, esta estrategia combina RSI rápido, velas, promedio móvil y stop loss juntos para generar señales comerciales.

Ventajas

Las ventajas de esta estrategia incluyen:

  1. El RSI rápido es sensible: captura rápidamente las oportunidades de sobrecompra/sobreventa
  2. Candlestick & MA Filter: Evita las señales falsas
  3. Stop Loss automático: controla eficazmente los riesgos
  4. Adecuado para el scalping: funciona bien con plazos más cortos, por ejemplo 1H, 30M
  5. Fácil de optimizar: los parámetros se pueden ajustar para diferentes mercados

Los riesgos

También hay algunos riesgos a tener en cuenta:

  1. Las acciones de los bancos centrales de los Estados miembros que se encuentran en el mercado de valores de los mercados de valores de los bancos centrales de los Estados miembros que se encuentran en el mercado de valores de los bancos centrales de los Estados miembros que se encuentran en el mercado de valores de los bancos centrales de los Estados miembros que se encuentran en el mercado de valores de los bancos centrales de los Estados miembros que se encuentran en el mercado de valores de los bancos centrales.
  2. Optimización de parámetros necesaria: los parámetros necesitan ajuste para diferentes pares y marcos de tiempo
  3. Incapaz de evitar todas las pérdidas: Si se detiene la pérdida a tiempo, todavía se producen algunas pérdidas

Los siguientes métodos de optimización pueden ayudar a mitigar los riesgos:

  1. Optimizar los parámetros de RSI rápido: reducir las señales falsas
  2. Optimizar la colocación de pérdidas de parada: controlar el tamaño de la pérdida de una sola operación
  3. Añadir el tamaño de la posición: distribuir los riesgos entre múltiples operaciones

Direcciones de optimización

Algunas maneras de optimizar aún más esta estrategia incluyen:

  1. Extracción de ganancias Salidas: obtener ganancias parciales al alcanzar los objetivos de ganancia
  2. Mejorar la gestión de riesgos: incorporar normas de dimensionamiento de posiciones para diversificar los riesgos
  3. Ajuste de parámetros: efecto de ensayo de los ajustes de parámetros en los marcos de tiempo
  4. Aprendizaje automático: utilizar algoritmos para optimizar automáticamente los parámetros a lo largo del tiempo
  5. Prueba de robustez: Evalúa el rendimiento de la estrategia en más pares de símbolos

Al incorporar la obtención de beneficios, la gestión de riesgos, la optimización de parámetros, el aprendizaje automático y las pruebas de robustez, la estrategia puede mejorar significativamente su estabilidad.

Conclusión

En resumen, Noro's Fast Scalping RSI Switching Strategy combina el indicador rápido de RSI con el análisis de velas suplementario para identificar oportunidades de negociación sobrecompradas y sobrevendidas.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Fast RSI Strategy v1.7", shorttitle = "Fast RSI str 1.7", overlay = true)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(false, defval = false, title = "Use Martingale")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
usersi = input(true, defval = true, title = "Use Fast RSI Strategy")
usemm = input(true, defval = true, title = "Use Min/Max Strategy")
usebc = input(true, defval = true, title = "Use BarColor Strategy")
usesma = input(false, defval = false, title = "Use SMA Filter")
smaperiod = input(20, defval = 20, minval = 2, maxval = 1000, title = "SMA Filter Period")
fast = input(7, defval = 7, minval = 2, maxval = 50, title = "Fast RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rsibars = input(1, defval = 1, minval = 1, maxval = 20, title = "RSI Bars")
mmbars = input(1, defval = 1, minval = 1, maxval = 5, title = "Min/Max Bars")
showsma = input(false, defval = false, title = "Show SMA Filter")
showarr = input(false, defval = false, title = "Show Arrows")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), fast)
fastdown = rma(-min(change(rsisrc), 0), fast)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
upsignal = fastrsi > uplimit ? 1 : 0
dnsignal = fastrsi < dnlimit ? 1 : 0
uprsi = sma(upsignal, rsibars) == 1
dnrsi = sma(dnsignal, rsibars) == 1

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)
minsignal = min < min[1] and bar == -1 and bar[1] == -1 ? 1 : 0
maxsignal = max > max[1] and bar == 1 and bar[1] == 1 ? 1 : 0
mins = sma(minsignal, mmbars) == 1
maxs = sma(maxsignal, mmbars) == 1

//SMA Filter
sma = sma(close, smaperiod)
colorsma = showsma ? blue : na
plot(sma, color = colorsma, linewidth = 3)

//Signals
up1 = bar == -1 and (strategy.position_size == 0 or close < strategy.position_avg_price) and dnrsi and body > abody / 5 and usersi
dn1 = bar == 1 and (strategy.position_size == 0 or close > strategy.position_avg_price) and uprsi and body > abody / 5 and usersi
up2 = mins and (close > sma or usesma == false) and fastrsi < 70 and usemm
dn2 = maxs and (close < sma or usesma == false) and fastrsi > 30 and usemm 
up3 = sma(bar, 2) == -1 and usebc
dn3 = sma(bar, 2) == 1 and usebc
exit = (((strategy.position_size > 0 and fastrsi > dnlimit and bar == 1) or (strategy.position_size < 0 and fastrsi < uplimit and bar == -1)) and body > abody / 2)

//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na
needup = up1 or up2
needdn = dn1 or dn2
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)

//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]

if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Más.