Тенденционная стратегия ретрассемента на основе индикатора RSI

Автор:Чао Чжан, Дата: 2023-09-13 15:33:26
Тэги:

Эта стратегия называется Стратегия ретракции тренда на основе индикатора RSI. Она использует индикатор RSI для измерения уровней перекупа / перепродажи и сочетает в себе оптимизированные параметры для торговли с отклонениями и ловли местных переворотов в сильных тенденциях.

Индикатор RSI определяет, являются ли цены перекупленными или перепроданными. RSI выше 70 предполагает перекупленное состояние, а ниже 30 - перепроданное. Эта стратегия генерирует сигналы продажи, когда RSI достигает 96, и сигналы покупки, когда RSI прорывается ниже 4. Эти оптимизированные параметры лучше подходят для захвата временных переворотов в сильных тенденциях по сравнению с традиционными уровнями RSI.

После входа стратегия использует механизмы получения прибыли и остановки потери. Долгие позиции закрываются, когда RSI поднимается до 80 после перелома, а короткие позиции закрываются, когда RSI падает до 20, эффективно блокируя прибыль от ретрейса.

Преимущество этой стратегии заключается в использовании чувствительности RSI в оценке, приводящей к отклонениям и переломам тренда, и улучшении производительности посредством оптимизации параметров и получения прибыли/остановки убытков.

В заключение, RSI - это простой и практичный инструмент для измерения условий перекупленности / перепроданности. Благодаря оптимизации параметров и строгому управлению рисками его эффективность может быть повышена для торговли ретрессером тренда. Но трейдерам по-прежнему нужна гибкость в корректировке стратегии, поскольку на разных рынках требуются разные настройки параметров.


/*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")


Больше