Estrategia de la red de cuadro RSI

El autor:¿ Qué pasa?, Fecha: 2023-10-30 11:29:30
Las etiquetas:

img

Resumen general

Esta estrategia es un bot de pseudo-red destinado principalmente a la negociación algorítmica. Utiliza una red dinámica ponderada por volumen que se actualiza solo cuando el RSI cumple ciertas condiciones. También es una estrategia de ruptura, mientras que los bots de red normales no lo son (los bots de red típicos venden cuando se alcanza una red más alta, mientras que esta estrategia vende cuando se viola una red más baja bajo condiciones específicas).

En resumen, la estrategia actualiza su cuadrícula a los valores más altos / más bajos ponderados por volumen de su fuente dada (src en la configuración) cada vez que el RSI cruza por debajo / por encima de los niveles de sobrecompra / sobreventa. Desde este rango genera una cuadrícula de cinco líneas espaciadas uniformemente y utiliza la fuente actual para determinar qué línea de cuadrícula está más cerca. Luego, si la fuente cruza la línea directamente por encima, entra en una larga. Si la fuente cruza por debajo de la línea directamente por debajo, entra en una corta.

Puede configurar shorts, fuente, longitud del RSI y niveles de sobrecompra / sobreventa en la configuración.

Estrategia lógica

La lógica central de la estrategia es la siguiente:

  1. Utilice el indicador RSI para determinar los puntos de inversión de tendencia, utilizando como señales de confirmación los cruces de líneas RSI de los niveles de sobrecompra/sobreventa.

  2. Cuando se produce la señal RSI, se registran los precios más altos/más bajos durante un período como límites superiores/inferiores de la red.

  3. Divide el rango en 5 líneas de cuadrícula espaciadas uniformemente.

  4. Cuando el precio se rompe por encima de la línea superior, ir largo.

  5. Usando breakout en lugar de tacto, puede detectar mejor las inversiones de tendencia.

  6. Cierra todas las órdenes piramidal antes de cerrar para evitar riesgos durante la noche.

La estrategia consiste en:

  1. Configuración de entrada: fuente, parámetros del RSI, largo/corto, etc.

  2. Calculo del RSI: calcular el RSI y comprobar si hay señales cruzadas.

  3. Cuadrícula dinámica: registra el rango de precios en las señales RSI y calcula las líneas de la red.

  4. Verificación de señales: detección de líneas de la red de ruptura de precios para señales largas / cortas.

  5. Gestión de pedidos: enviar pedidos y aplanar antes de cerrar.

  6. Diagramación: líneas de la red gráfica, zonas largas/cortas, etc.

Al actualizar dinámicamente la cuadrícula y usar el RSI para el contexto de tendencia más las señales de ruptura, esta estrategia puede rastrear de manera efectiva las tendencias e invertir cuando la tendencia cambia.

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. La red dinámica se adapta a la tendencia, a diferencia de las redes fijas.

  2. Sólo ajusta la red en la confirmación de RSI, reduciendo el ruido.

  3. Las señales de fuga captan las inversiones mejor que el tacto.

  4. Se aplana antes de cerrar para evitar riesgos de brecha durante la noche.

  5. El RSI es eficaz para la detección de sobrecompra/venta.

  6. El modo de ruptura proporciona una entrada temprana en la tendencia en comparación con la reversión.

  7. El ajuste de la distancia y el tamaño de la red permite ajustar el riesgo.

  8. Cuadrícula visual y zonas largas/cortas.

  9. Shorts opcionales para los diferentes comerciantes.

  10. Una lógica simple y clara adecuada para el comercio de algo.

Estos hacen que la estrategia sea capaz de rastrear la tendencia automática con controles de riesgo para el comercio en vivo.

Análisis de riesgos

También hay algunos riesgos potenciales a tener en cuenta:

  1. Los mercados de la sierra pueden causar pérdidas de parada, pueden ampliar las paradas o pausar las operaciones.

  2. Los huecos de una noche pueden dejar grandes huecos abiertos, pueden reducir el tamaño de las posiciones.

  3. El mal ajuste de parámetros puede aumentar las operaciones o los errores de señal.

  4. Las altas tarifas pueden erosionar las ganancias de las operaciones de red.

  5. Las señales de fuga pueden retrasarse ligeramente en las reversiones.

  6. Puede tener un rendimiento inferior en tendencias alcistas constantes.

  7. Necesita suficiente capital para posiciones de mayor tamaño y pirámide, de lo contrario los resultados serán pobres.

Mitigantes:

  1. Optimizar los parámetros para reducir la frecuencia de las operaciones y el exceso de operaciones.

  2. Combina con los indicadores de tendencia, evita los períodos de negociación.

  3. Reducir el tamaño de la operación en % y el riesgo por operación.

  4. Prueba diferentes umbrales de ruptura para obtener el mejor equilibrio entre la puntualidad y la estabilidad.

  5. Agregue más condiciones de entrada, sólo introduzca tendencias claras para evitar quedar atrapado.

  6. Prueba posterior durante períodos más largos para evaluar la estabilidad de los parámetros.

  7. Explorar la optimización de parámetros dinámicos basados en el aprendizaje automático para la adaptabilidad del mercado.

  8. Considere combinar con estrategias de opciones para cubrir los riesgos de posición.

  9. Ajustar los parámetros basados en las últimas condiciones del mercado para mantener la eficacia de la estrategia.

  10. Construir plataformas de optimización visual para ayudar a las pruebas rápidas.

Con la optimización de parámetros, peinar señales, y más información del mercado, los riesgos pueden ser reducidos para hacer una estrategia algo verdaderamente confiable.

Oportunidades de mejora

La estrategia puede reforzarse aún más mediante:

  1. Optimizando los parámetros de RSI, probando los períodos de RSI para las mejores combinaciones.

  2. Prueba de diferentes espaciamientos de la red para un riesgo-recompensa óptimo.

  3. Añadir otros indicadores a las señales de filtro, por ejemplo, MACD, KD, etc. para mejorar la precisión.

  4. Desarrollar paradas adaptativas basadas en la volatilidad del mercado.

  5. Aumentar las condiciones de entrada, sólo entrar tendencias obvias para evitar trampas.

  6. Pruebas posteriores durante períodos más largos para evaluar la estabilidad de los parámetros.

  7. Explorando la optimización dinámica basada en el aprendizaje automático para la adaptabilidad.

  8. Incorporar estrategias de opciones para cubrir riesgos.

  9. Ajuste de los parámetros basados en las últimas condiciones del mercado para mantener la eficacia.

  10. Construyendo plataformas de optimización visual para pruebas rápidas.

Con optimización automatizada, combinaciones de estrategias, más información del mercado, etc., puede lograr una mejor estabilidad y rendimientos como una estrategia comercial real.

Resumen de las actividades

En resumen, la estrategia RSI Box Grid utiliza el RSI para identificar la confirmación de la inversión de tendencia, establece redes dinámicas de rango de precios, breakouts de operaciones y aplana el intradía, formando una tendencia flexible siguiendo la estrategia de negociación de algo.

La estrategia tiene ventajas que incluyen el RSI para el contexto de tendencia, las redes dinámicas, el comercio de ruptura y el aplanamiento completo intradiario. Esto le permite rastrear de manera efectiva las tendencias con controles de riesgo. Sin embargo, existen riesgos como las pérdidas de parada de la sierra, las brechas nocturnas, que requieren optimización, peinar señales y gestión de riesgos.

Hay muchas oportunidades de mejora, al incorporar más indicadores, optimización de ML, backtesting visual, etc., puede convertirse en una estrategia de trading de algo más robusta y de alto rendimiento.


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
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/
// © wbburgin

//@version=5
// strategy("RSI Box Strategy (pseudo-Grid Bot)", overlay=true, initial_capital = 10000, 
//  default_qty_type = strategy.percent_of_equity, default_qty_value = 1, pyramiding = 33, commission_value=0.10)

src = input.source(close,"Source")
rsiLength = input.int(14,"RSI Length")
oblvl = input.int(70,"Overbought Level")
oslvl = input.int(30,"Oversold Level")
useShorts = input.bool(false,"Use Shorts",inline="B")
showGrid = input.bool(false,"Show Grid",inline="B")

rsi = ta.rsi(src,rsiLength)

rsi_crossdn = ta.crossunder(rsi,oblvl)
rsi_crossup = ta.crossover(rsi,oslvl)

highest = ta.vwma(ta.highest(src,rsiLength),rsiLength)
lowest = ta.vwma(ta.lowest(src,rsiLength), rsiLength)

gridTop = ta.valuewhen(rsi_crossdn,highest,0)
gridBottom = ta.valuewhen(rsi_crossup,lowest,0)
gridMiddle = math.avg(gridTop,gridBottom)
gridMidTop = math.avg(gridMiddle,gridTop)
gridMidBottom = math.avg(gridMiddle,gridBottom)

diff1 = math.abs(src - gridTop)
diff2 = math.abs(src - gridBottom)
diff3 = math.abs(src - gridMiddle)
diff4 = math.abs(src - gridMidTop)
diff5 = math.abs(src - gridMidBottom)

minDiff = math.min(diff1, diff2, diff3, diff4, diff5)

// Determine which line is the closest
float closestLine = na
if minDiff == diff1
    closestLine := gridTop
else if minDiff == diff2
    closestLine := gridBottom
else if minDiff == diff3
    closestLine := gridMiddle
else if minDiff == diff4
    closestLine := gridMidTop
else if minDiff == diff5
    closestLine := gridMidBottom

buyCrosses = ta.crossover(src,gridTop) or ta.crossover(src,gridBottom) or ta.crossover(src,gridMiddle) or ta.crossover(src,gridMidTop) or ta.crossover(src,gridMidBottom)
sellCrosses= ta.crossunder(src,gridTop) or ta.crossunder(src,gridBottom) or ta.crossunder(src,gridMiddle) or ta.crossunder(src,gridMidTop) or ta.crossunder(src,gridMidBottom)

condition_bull = buyCrosses
condition_bear = sellCrosses

var float bull_status_line = na
var float bear_status_line = na
var float bull_buy_line = na
var float bear_sell_line = na

if condition_bull
    bull_status_line := closestLine
if condition_bear
    bear_status_line := closestLine

if bull_status_line == gridBottom
    bull_buy_line := gridMidBottom
if bull_status_line == gridMidBottom
    bull_buy_line := gridMiddle
if bull_status_line == gridMiddle
    bull_buy_line := gridMidTop
if bull_status_line == gridMidTop
    bull_buy_line := gridTop

if bear_status_line == gridTop
    bear_sell_line := gridMidTop
if bear_status_line == gridMidTop
    bear_sell_line := gridMiddle
if bear_status_line == gridMiddle
    bear_sell_line := gridMidBottom
if bear_status_line == gridMidBottom
    bear_sell_line := gridBottom

l = ta.crossover(src,bull_buy_line)
s = ta.crossunder(src,bear_sell_line)

if l
    strategy.entry("Long",strategy.long)
if s
    strategy.close("Long")
    if useShorts
        strategy.entry("Short",strategy.short)

// Plotting
in_buy = ta.barssince(l) < ta.barssince(s)
u=plot(bull_buy_line,color=na,title="Buy Plot")
d=plot(bear_sell_line,color=na,title="Sell Plot")

plot(not showGrid?na:gridBottom,color=color.new(color.white,75),title="Grid Line -2")
plot(not showGrid?na:gridMidBottom,color=color.new(color.white,75),title="Grid Line -1")
plot(not showGrid?na:gridMiddle,color=color.new(color.white,75),title="Grid Line 0")
plot(not showGrid?na:gridMidTop,color=color.new(color.white,75),title="Grid Line 1")
plot(not showGrid?na:gridTop,color=color.new(color.white,75),title="Grid Line 2")


fill(u,d,color=in_buy ? color.new(color.lime,75) : color.new(color.red,75))

Más.