Sumber daya yang dimuat... Pemuatan...

Adaptive Range Trading System Berdasarkan Indikator RSI Dual

Penulis:ChaoZhang, Tanggal: 2024-12-13 11:57:17
Tag:RSISLTPMMATRRR

img

Gambaran umum

Strategi ini adalah sistem perdagangan adaptif berdasarkan indikator RSI ganda (Relative Strength Index). Ini menggabungkan indikator RSI dari kerangka waktu yang berbeda untuk mengidentifikasi tren pasar dan peluang perdagangan sambil mengoptimalkan kinerja perdagangan melalui manajemen uang dan mekanisme kontrol risiko. Kekuatan inti dari strategi terletak pada sinergi antara RSI multi-periode untuk meningkatkan profitabilitas sambil menjaga keamanan perdagangan.

Prinsip Strategi

Strategi ini menggunakan indikator RSI 7 periode sebagai sinyal perdagangan utama, dikombinasikan dengan RSI harian sebagai filter tren. Posisi panjang dimulai ketika RSI jangka pendek melanggar di atas 40 dan RSI harian di atas 55. Jika harga turun di bawah harga masuk awal selama posisi, sistem secara otomatis menambahkan ke posisi untuk menurunkan biaya rata-rata. Posisi ditutup ketika RSI melanggar di bawah dari di atas 60. Stop-loss 5% diimplementasikan untuk pengendalian risiko. Strategi ini juga mencakup modul manajemen uang yang secara otomatis menghitung ukuran posisi berdasarkan total modal dan rasio risiko yang telah ditetapkan sebelumnya.

Keuntungan Strategi

  1. Kombinasi RSI multi-periode meningkatkan keandalan sinyal
  2. Mekanisme rata-rata posisi adaptif secara efektif mengurangi biaya kepemilikan
  3. Sistem manajemen uang yang komprehensif menyesuaikan posisi berdasarkan preferensi risiko
  4. Perlindungan stop loss tetap mengontrol risiko secara ketat per perdagangan
  5. Mempertimbangkan biaya perdagangan untuk kondisi perdagangan yang lebih realistis

Risiko Strategi

  1. Indikator RSI dapat menghasilkan sinyal palsu di pasar yang tidak stabil
  2. Mekanisme rata-rata posisi dapat menyebabkan kerugian yang signifikan dalam tren penurunan yang berkelanjutan
  3. Stop loss persentase tetap mungkin terlalu konservatif pada periode volatilitas tinggi
  4. Biaya perdagangan dapat secara signifikan mempengaruhi pengembalian selama perdagangan yang sering
  5. Pelaksanaan strategi membutuhkan likuiditas yang cukup

Arahan Optimasi

  1. Menggabungkan indikator volatilitas (seperti ATR) untuk penyesuaian stop-loss dinamis
  2. Tambahkan filter kekuatan tren untuk mengurangi sinyal palsu di pasar berkisar
  3. Mengoptimalkan logika rata-rata posisi dengan penyesuaian dinamis berdasarkan volatilitas pasar
  4. Sertakan konfirmasi RSI dari kerangka waktu tambahan
  5. Mengembangkan sistem ukuran posisi adaptif

Ringkasan

Ini adalah sistem perdagangan lengkap yang menggabungkan analisis teknis dan manajemen risiko. Ini menghasilkan sinyal perdagangan melalui koordinasi RSI multi-periode sambil mengendalikan risiko melalui manajemen uang dan mekanisme stop-loss. Strategi ini cocok untuk pasar tren tetapi membutuhkan optimasi parameter berdasarkan kondisi pasar yang sebenarnya.


/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Dual RSI with Rebuy Logic + Capital, Commission, and Stop Loss", overlay=true)

// Parameter
rsi_length = input.int(7, title="RSI Length")
daily_rsi_length = input.int(7, title="Daily RSI Length")
capital = input.float(10000, title="Initial Capital", minval=0)  // Kapital
risk_per_trade = input.float(0.01, title="Risk per Trade (%)", minval=0.01, maxval=1.0)  // Risikogröße in Prozent
commission = input.float(0.1, title="Commission (%)", minval=0, maxval=100)  // Kommission in Prozent
stop_loss_pct = input.float(5, title="Stop Loss (%)", minval=0.1, maxval=100)  // Stop-Loss in Prozent

// Ordergröße berechnen
risk_amount = capital * risk_per_trade
order_size = risk_amount / close  // Größe der Order basierend auf Risikogröße und Preis

// Daily RSI
day_rsi = request.security(syminfo.tickerid, "D", ta.rsi(close, daily_rsi_length), lookahead=barmerge.lookahead_on)

// RSI auf aktuellem Timeframe
rsi = ta.rsi(close, rsi_length)

// Kauf- und Verkaufsbedingungen
buy_condition = rsi[1] < 40 and rsi > rsi[1] and day_rsi > 55
sell_condition = rsi[1] > 60 and rsi < rsi[1]

// Variablen, um den Preis des ersten Kaufs zu speichern
var float first_buy_price = na
var bool is_position_open = false

// Kauf-Logik
if buy_condition
    if not is_position_open
        // Initiales Kaufsignal
        strategy.entry("Buy", strategy.long, qty=1)
        first_buy_price := close
        is_position_open := true
    else if close < first_buy_price
        // Rebuy-Signal, nur wenn Preis niedriger als erster Kaufpreis
        strategy.entry("Rebuy", strategy.long, qty=1)

// Verkaufs-Logik
if sell_condition and is_position_open
    strategy.close("Buy")
    strategy.close("Rebuy")
    first_buy_price := na  // Zurücksetzen des Kaufpreises
    is_position_open := false

// Stop-Loss-Bedingung
if is_position_open
    // Stop-Loss-Preis berechnen (5% unter dem Einstiegspreis)
    stop_loss_price = first_buy_price * (1 - stop_loss_pct / 100)
    
    // Stop-Loss für "Buy" und "Rebuy" festlegen
    strategy.exit("Stop Loss Buy", from_entry="Buy", stop=stop_loss_price)
    strategy.exit("Stop Loss Rebuy", from_entry="Rebuy", stop=stop_loss_price)

// Performance-Metriken berechnen (mit Kommission)
gross_profit = strategy.netprofit / capital * 100
commission_cost = commission / 100 * strategy.closedtrades
net_profit = gross_profit - commission_cost

// Debug-Plots
plot(first_buy_price, title="First Buy Price", color=color.blue, linewidth=1)
plotchar(buy_condition, title="Buy Condition", char='B', location=location.abovebar, color=color.green)
plotchar(sell_condition, title="Sell Condition", char='S', location=location.belowbar, color=color.red)

// Debugging für Performance



Berkaitan

Lebih banyak