Handelsstrategie zur Trendrückführung auf Basis des RSI-Indikators

Schriftsteller:ChaoZhang, Datum: 2023-09-13 15:33:26
Tags:

Diese Strategie trägt den Namen Trend Retracement Trading Strategy Based on RSI Indicator. Sie verwendet den RSI-Indikator, um Überkauf/Überverkauf zu messen, und kombiniert optimierte Parameter-Einstellungen, um Pullbacks zu handeln und lokale Umkehrungen innerhalb starker Trends zu erfassen.

Der RSI-Indikator beurteilt, ob die Preise überkauft oder überverkauft sind. RSI über 70 deutet auf einen überkauften Zustand hin, während unter 30 überverkauft ist. Diese Strategie erzeugt Verkaufssignale, wenn der RSI 96 erreicht, und Kaufsignale, wenn der RSI unter 4 bricht. Diese optimierten Parameter eignen sich besser für die Erfassung vorübergehender Umkehrungen innerhalb starker Trends im Vergleich zu traditionellen RSI-Levels.

Nach dem Eintritt nutzt die Strategie Profit Taking und Stop-Loss-Mechanismen. Long-Positionen werden geschlossen, wenn der RSI nach der Umkehrung auf 80 reboundet, und Short-Positionen geschlossen, wenn der RSI auf 20 fällt, wodurch Retracement-Gewinne effektiv eingeschlossen werden.

Der Vorteil dieser Strategie besteht darin, dass der RSI-Sensitivität bei der Beurteilung von Trendrückgängen und -umkehrungen zugrunde gelegt wird und die Leistung durch Parameteroptimierung und Gewinn-/Verluststop-optimierung verbessert wird.

Der RSI ist ein einfaches und praktisches Werkzeug zur Messung von Überkauf-/Überverkaufsbedingungen. Durch Parameteroptimierung und strenges Risikomanagement kann seine Wirksamkeit für den Trend-Retracement-Handel verbessert werden.


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


Mehr