Strategi perdagangan retracement tren berdasarkan indikator RSI

Penulis:ChaoZhang, Tanggal: 2023-09-13 15:33:26
Tag:

Strategi ini disebut Trend Retracement Trading Strategy Based on RSI Indicator. Ini menggunakan indikator RSI untuk mengukur tingkat overbought/oversold, dan menggabungkan pengaturan parameter yang dioptimalkan untuk perdagangan pullbacks dan menangkap pembalikan lokal dalam tren yang kuat.

Indikator RSI menilai apakah harga overbought atau oversold. RSI di atas 70 menunjukkan keadaan overbought, sementara di bawah 30 adalah oversold. Strategi ini menghasilkan sinyal jual ketika RSI mencapai 96, dan sinyal beli ketika RSI pecah di bawah 4. Parameter yang dioptimalkan ini lebih cocok untuk menangkap pembalikan sementara dalam tren yang kuat dibandingkan dengan tingkat RSI tradisional.

Setelah masuk, strategi ini memanfaatkan mekanisme profit taking dan stop loss. Posisi panjang ditutup ketika RSI rebound ke 80 setelah pembalikan, dan posisi pendek ditutup ketika RSI turun ke 20, secara efektif mengunci keuntungan retracement.

Keuntungan dari strategi ini adalah memanfaatkan sensitivitas RSI dalam penilaian yang mengakibatkan penurunan dan pembalikan tren, dan meningkatkan kinerja melalui optimasi parameter dan pengambilan keuntungan / stop loss.

Sebagai kesimpulan, RSI adalah alat sederhana dan praktis untuk mengukur kondisi overbought/oversold. Melalui optimasi parameter dan manajemen risiko yang ketat, efektivitasnya dapat ditingkatkan untuk perdagangan retracement tren.


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


Lebih banyak