Estrategia de trading con retroceso de tendencia basada en el indicador RSI


Fecha de creación: 2023-09-13 15:33:26 Última modificación: 2023-09-13 15:33:26
Copiar: 0 Número de Visitas: 686
1
Seguir
1617
Seguidores

Esta estrategia se llama estrategia de comercio de reversión de tendencia basada en el indicador RSI. Utiliza el indicador RSI para determinar si hay sobreventa y sobreventa, y se combina con la configuración de parámetros de optimización para realizar operaciones de reversión de tendencia con el objetivo de capturar reveses locales en una tendencia fuerte.

El indicador RSI determina si el precio está sobrecomprado o sobrevendido. Si el RSI es superior a 70 significa que está sobrecomprado, y si es inferior a 30 significa que está sobrevendido. Esta estrategia genera una señal de venta cuando el RSI alcanza 96 y una señal de compra cuando el RSI cae a 4. Estos parámetros, optimizados, son más adecuados que los parámetros RSI tradicionales para capturar reveses temporales en una tendencia fuerte.

Después de la entrada, la estrategia utiliza un mecanismo de stop-stop. Cuando el RSI se eleva a 80 después de la reversión, se detiene el equilibrio de más órdenes, y cuando el RSI cae a 20 se detiene el equilibrio de las cartas en blanco, para bloquear efectivamente las ganancias de rebote. Además, se utiliza el seguimiento de los stop-loses para garantizar la garantía de prioridad después de la entrada.

La ventaja de esta estrategia reside en el uso de los judgementesultos sensibles al RSI para capturar reveses y retrocesos temporales en la tendencia y mejorar la eficacia de la estrategia a través de la optimización de los parámetros y el stop loss. Sin embargo, ningún indicador individual puede ser perfecto y debe usarse en combinación con el análisis de la tendencia y la resistencia al soporte.

En general, el indicador RSI es una herramienta sencilla y práctica para determinar sobrecompra y sobreventa. A través de la optimización de los parámetros y la gestión estricta del riesgo, se puede mejorar su eficacia en el comercio de reajustes de tendencia. Sin embargo, los comerciantes aún deben mantener la flexibilidad para ajustar la estrategia, ya que diferentes mercados requieren diferentes configuraciones de parámetros.

Código Fuente de la Estrategia
/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 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/
// © corderomoraj


//@version=5
strategy("Good Mode RSI v2", overlay=true)

// Parámetros de la estrategia
rsiPeriod = input(2, "RSI Period")
sellLevel = input(96, "Sell Level")
buyLevel = input(4, "Buy Level")
takeProfitLevelSell = input(20, "Take Profit Level Sell")
takeProfitLevelBuy = input(80, "Take Profit Level Buy")
var float trailingStopPrice = na
var float trailingStopOffset = input(100, "Trailing Stop Offset (pips)")

// Capital inicial
initialCapital = 250
positionSize = initialCapital * 0.015

// Condiciones de entrada y salida
rsi = ta.rsi(close, rsiPeriod)

// Condiciones de entrada y salida para la orden de venta
sellCondition = rsi > sellLevel
closeSellCondition = rsi < takeProfitLevelSell

// Condiciones de entrada y salida para la orden de compra
buyCondition = rsi < buyLevel
closeBuyCondition = rsi > takeProfitLevelBuy

// Trailing Stop para las posiciones de venta
if strategy.position_size < 0
    if low < trailingStopPrice
        trailingStopPrice := low
    strategy.exit("Sell", "Sell", trail_offset = trailingStopOffset * syminfo.mintick, trail_price = trailingStopPrice)

// Trailing Stop para las posiciones de compra
if strategy.position_size > 0
    if high > trailingStopPrice
        trailingStopPrice := high
    strategy.exit("Buy", "Buy", trail_offset = trailingStopOffset * syminfo.mintick, trail_price = trailingStopPrice)

// Ejecutar orden de venta
if (sellCondition)
    strategy.entry("Sell", strategy.short, qty = positionSize)
    trailingStopPrice := high

// Cerrar orden de venta
if (closeSellCondition)
    strategy.close("Sell")

// Ejecutar orden de compra
if (buyCondition)
    strategy.entry("Buy", strategy.long, qty = positionSize)
    trailingStopPrice := low

// Cerrar orden de compra
if (closeBuyCondition)
    strategy.close("Buy")