Estratégia de negociação de retração de tendência com base no indicador RSI


Data de criação: 2023-09-13 15:33:26 última modificação: 2023-09-13 15:33:26
cópia: 0 Cliques: 686
1
focar em
1617
Seguidores

Esta estratégia é conhecida como estratégia de negociação de reversão de tendência baseada no indicador RSI. A estratégia usa o indicador RSI para determinar sobrecompra e sobrevenda e, em combinação com a configuração de parâmetros de otimização, realiza negociações de reversão de tendência para capturar reversões locais em tendências fortes.

O indicador RSI determina se o preço está sobrecomprado ou sobrevendido. O RSI acima de 70 é sobrecomprado e abaixo de 30 é sobrevendido. Esta estratégia gera um sinal de venda quando o RSI chega a 96 e um sinal de compra quando o RSI cai para 4. Esses parâmetros, depois de otimizados, são mais adequados para capturar uma reversão temporária de uma tendência forte do que o RSI tradicional.

Após a entrada, a estratégia usa um mecanismo de stop-loss. Quando o RSI sobe para 80 após a reversão, o stop-loss se estende a mais, e quando o RSI desce para 20 o stop-loss se estende a menos, bloqueando efetivamente o lucro de rebote. Além disso, o uso de stop-loss de rastreamento garante a garantia de prioridade após a entrada.

A vantagem da estratégia é que ela capta os reversos e reversos temporários na tendência usando os critérios de avaliação sensíveis ao RSI, o que aumenta a eficácia da estratégia por meio da otimização de parâmetros e do stop loss. No entanto, nenhum indicador isolado pode ser perfeito e deve ser usado em conjunto com a análise de tendência e resistência de suporte.

Em geral, o RSI é uma ferramenta simples e prática para o julgamento de overbought e oversold. Otimizando os parâmetros e gerenciando rigorosamente o risco, pode aumentar a sua eficácia na negociação de reversão de tendência. No entanto, os comerciantes ainda precisam manter a flexibilidade de ajustar a estratégia, e diferentes mercados precisam de diferentes configurações de parâmetros.

Código-fonte da estratégia
/*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")