Sumber dimuat naik... memuat...

Sistem Dagangan Julat Adaptif Berdasarkan Indikator RSI Berganda

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

img

Ringkasan

Strategi ini adalah sistem perdagangan adaptif berdasarkan penunjuk RSI (Relative Strength Index) berganda. Ia menggabungkan penunjuk RSI dari jangka masa yang berbeza untuk mengenal pasti trend pasaran dan peluang perdagangan sambil mengoptimumkan prestasi perdagangan melalui pengurusan wang dan mekanisme kawalan risiko. Kekuatan teras strategi terletak pada sinergi antara RSI pelbagai tempoh untuk meningkatkan keuntungan sambil mengekalkan keselamatan perdagangan.

Prinsip Strategi

Strategi ini menggunakan penunjuk RSI 7 tempoh sebagai isyarat perdagangan utama, digabungkan dengan RSI harian sebagai penapis trend. Posisi panjang dimulakan apabila RSI jangka pendek melanggar di atas 40 dan RSI harian di atas 55. Jika harga jatuh di bawah harga kemasukan awal semasa kedudukan, sistem secara automatik menambah ke kedudukan untuk menurunkan kos purata. Posisi ditutup apabila RSI melanggar di bawah 60. Stop-loss 5% dilaksanakan untuk kawalan risiko. Strategi ini juga merangkumi modul pengurusan wang yang secara automatik mengira saiz kedudukan berdasarkan jumlah modal dan nisbah risiko yang telah ditetapkan.

Kelebihan Strategi

  1. Gabungan RSI pelbagai tempoh meningkatkan kebolehpercayaan isyarat
  2. Mekanisme purata kedudukan adaptif mengurangkan kos pegangan secara berkesan
  3. Sistem pengurusan wang yang komprehensif menyesuaikan kedudukan berdasarkan keutamaan risiko
  4. Perlindungan stop-loss tetap mengawal risiko setiap perdagangan dengan ketat
  5. Mempertimbangkan kos dagangan untuk syarat dagangan yang lebih realistik

Risiko Strategi

  1. Indikator RSI boleh menghasilkan isyarat palsu di pasaran yang tidak menentu
  2. Mekanisme purata kedudukan boleh membawa kepada kerugian yang ketara dalam trend menurun yang berterusan
  3. Stop loss peratusan tetap mungkin terlalu konservatif dalam tempoh turun naik yang tinggi
  4. Kos dagangan boleh memberi kesan yang ketara kepada pulangan semasa perdagangan yang kerap
  5. Pelaksanaan strategi memerlukan likuiditi yang mencukupi

Arahan pengoptimuman

  1. Menggabungkan penunjuk turun naik (seperti ATR) untuk penyesuaian stop-loss dinamik
  2. Tambah penapis kekuatan trend untuk mengurangkan isyarat palsu di pasaran pelbagai
  3. Mengoptimumkan logik purata kedudukan dengan penyesuaian dinamik berdasarkan turun naik pasaran
  4. Sertakan pengesahan RSI dari jangka masa tambahan
  5. Membangunkan sistem ukuran kedudukan adaptif

Ringkasan

Ini adalah sistem perdagangan lengkap yang menggabungkan analisis teknikal dan pengurusan risiko. Ia menjana isyarat perdagangan melalui penyelarasan RSI pelbagai tempoh sambil mengawal risiko melalui pengurusan wang dan mekanisme hentian kerugian. Strategi ini sesuai untuk pasaran trend tetapi memerlukan pengoptimuman parameter berdasarkan keadaan pasaran sebenar.


/*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 lanjut