Sistem perdagangan ayunan adaptif berdasarkan indikator RSI ganda

RSI SL TP MM ATR RR
Tanggal Pembuatan: 2024-12-13 11:57:17 Akhirnya memodifikasi: 2024-12-13 11:57:17
menyalin: 4 Jumlah klik: 448
1
fokus pada
1617
Pengikut

Sistem perdagangan ayunan adaptif berdasarkan indikator RSI ganda

Ringkasan

Strategi ini adalah sistem perdagangan adaptif yang didasarkan pada indikator RSI ganda (indicator relatif kuat). Strategi ini menggabungkan indikator RSI dari periode waktu yang berbeda untuk mengidentifikasi tren pasar dan peluang perdagangan, dan untuk mengoptimalkan kinerja perdagangan melalui manajemen dana dan mekanisme kontrol risiko. Inti dari strategi ini adalah meningkatkan profitabilitas dengan sinergi RSI multi-siklus, sambil memastikan keamanan perdagangan.

Prinsip Strategi

Strategi ini menggunakan indikator RSI 7 siklus sebagai sinyal perdagangan utama, dan menggabungkan RSI harian sebagai filter tren. Ketika RSI periode pendek menembus ke atas dari bawah 40 dan RSI harian lebih besar dari 55, sistem akan mengirim sinyal lebih banyak.

Keunggulan Strategis

  1. Kombinasi RSI multi-siklus meningkatkan keandalan sinyal
  2. Adaptasi mekanisme penambahan saham, dapat secara efektif mengurangi biaya penyimpanan
  3. Sistem pengelolaan dana yang baik yang secara otomatis menyesuaikan posisi sesuai dengan preferensi risiko
  4. Perlindungan stop loss tetap, pengendalian risiko ketat untuk setiap transaksi
  5. Mengingat biaya transaksi, lebih sesuai dengan situasi transaksi yang sebenarnya

Risiko Strategis

  1. Indeks RSI dapat menghasilkan sinyal palsu di pasar yang bergejolak
  2. “Mekanisme pembiayaan bisa menyebabkan kerugian yang lebih besar dalam situasi penurunan yang terus berlanjut”.
  3. Stop loss persentase tetap mungkin terlalu konservatif pada periode fluktuasi tinggi
  4. Biaya transaksi dapat mempengaruhi pendapatan secara signifikan jika sering diperdagangkan
  5. Strategi Dukungan Likuiditas yang Memerlukan Pelaksanaan

Arah optimasi strategi

  1. Memperkenalkan indikator volatilitas (seperti ATR) untuk secara dinamis menyesuaikan posisi stop loss
  2. Menambahkan filter intensitas tren untuk mengurangi sinyal palsu di pasar yang bergoyang
  3. Mengoptimalkan Logika Peningkatan Posisi, Memperhitungkan Volatilitas Pasar untuk Penyesuaian Dinamis
  4. Tambahkan sinyal konfirmasi RSI untuk periode waktu yang lebih banyak
  5. Mengembangkan Sistem Manajemen Posisi Adaptif

Meringkaskan

Ini adalah sistem perdagangan lengkap yang menggabungkan analisis teknis dan manajemen risiko. Ini memberikan sinyal perdagangan melalui sinergi RSI multi-siklus, dan mengendalikan risiko melalui manajemen dana dan mekanisme stop loss. Strategi ini cocok untuk beroperasi di pasar yang jelas tren, tetapi perlu mengoptimalkan parameter sesuai dengan situasi pasar yang sebenarnya.

Kode Sumber Strategi
/*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