Algorithm RSI Estrategia de ruptura de rango

El autor:¿ Qué pasa?, Fecha: 2023-10-17 17:14:09
Las etiquetas:

img

Resumen general

Esta estrategia monitorea la ruptura del indicador RSI en diferentes rangos para implementar la compra baja y la venta alta.

Estrategia lógica

  1. Establezca el período de RSI en 14

  2. Establecer los rangos de señales de compra del RSI:

    • Se aplicará el método de cálculo de la rentabilidad.
    • Los indicadores de rentabilidad de los activos de riesgo se aplican a los activos de riesgo de riesgo de riesgo de riesgo.
  3. Establecer los rangos de señales de venta del RSI:

    • Se trata de los valores de los activos financieros de la entidad.
    • Los indicadores de rentabilidad de los activos de riesgo de riesgo de riesgo de riesgo de riesgo
  4. Cuando el RSI entre en el rango de compra, vaya largo:

    • Si el RSI entra en el rango 1 (por debajo de 27), realiza un largo 1 lote
    • Si el RSI entra en el rango 2 (por debajo de 18), realizar un largo adicional de 1 lote
  5. Cuando el RSI entre en el rango de venta, sea corto:

    • Si el RSI entra en el rango 1 (por encima de 68), se abre 1 lote
    • Si el RSI entra en el rango 2 (por encima de 80), realizar una operación corta adicional de 1 lote.
  6. Fija el beneficio a 2500 pips y el stop loss a 5000 pips

  7. Posición cerrada cuando el RSI salga del rango de señal

Análisis de ventajas

  1. La configuración de doble rango ayuda a identificar mejor las condiciones de sobrecompra y sobreventa, evitando perder oportunidades de reversión

  2. La adopción de fija tomar ganancias y detener la pérdida en pips evita perseguir las tendencias demasiado

  3. El RSI es un oscilador maduro para identificar los niveles de sobrecompra y sobreventa con ventajas sobre otros indicadores

  4. Con el ajuste adecuado de parámetros, esta estrategia puede capturar efectivamente los puntos de inversión de tendencia y generar rendimientos excedentes

Análisis de riesgos

  1. Puede producirse una divergencia del índice de volatilidad que conduzca a pérdidas consecutivas de una posición corta sostenida

  2. Las operaciones de venta y de venta de valores de riesgo de la entidad de crédito se consideran en el caso de las operaciones de venta y de venta de valores de riesgo de la entidad de crédito.

  3. La configuración incorrecta del intervalo puede dar lugar a operaciones perdidas o frecuentes operaciones no rentables

  4. Esta estrategia se basa mucho en la optimización de parámetros basada en backtests.

Direcciones de optimización

  1. Eficacia del ensayo de la RSI con diferentes períodos de duración

  2. Optimizar los valores de los rangos de compra y venta para adaptarse a las características de los diferentes productos

  3. Investigación dinámica para obtener beneficios y detener pérdidas para mejorar la rentabilidad y la racionalidad

  4. Considerar la combinación de otros indicadores para la negociación en conjunto para mejorar la solidez

  5. Explorar técnicas de aprendizaje automático para optimizar automáticamente los rangos de parámetros para la robustez

Conclusión

Esta estrategia se basa en los principios de sobrecompra y sobreventa del RSI. Al adoptar rangos de negociación dobles, utiliza el indicador RSI de manera efectiva, capturando los extremos del mercado con una estabilidad decente. Sin embargo, tiene cierta dependencia de parámetros y necesita optimización en todos los productos. Si se sintoniza correctamente, esta estrategia puede producir buenos rendimientos excedentes. En resumen, es una estrategia comercial simple pero efectiva que utiliza un indicador maduro, vale la pena investigar para mejorar y proporcionar información para el comercio cuantitativo.


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

// Ramy's Algorithm

//@version=5
strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000)

// User input
length = input(title = "Length", defval=14, tooltip="RSI period")

first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers")
second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers")

first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers")
second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers")

takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance")
stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance")

lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size")

// Get RSI
vrsi = ta.rsi(close, length)

// Entry Conditions
long1 = (vrsi <= first_buy_level and vrsi>second_buy_level)
long2 = (vrsi <= second_buy_level)

short1= (vrsi >= first_sell_level and vrsi<second_sell_level)
short2= (vrsi >= second_sell_level)


// Entry Orders
// Buy Orders
if (long1 and strategy.position_size == 0)
    strategy.entry("Long", strategy.long, qty=lot, comment="Buy")
    if (long2 and  strategy.position_size == 0)
        strategy.entry("Long", strategy.long, qty=lot, comment="Buy")

// Short Orders
if (short1 and strategy.position_size == 0)
    strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    if (short2 and strategy.position_size == 0)
        strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    
// Exit our trade if our stop loss or take profit is hit
strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss)
strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss)

// plot data to the chart
hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
plot (vrsi, title = "RSI", color = color.blue, linewidth=2)





Más.