Sistem perdagangan swing adaptif berdasarkan penunjuk RSI dwi

RSI SL TP MM ATR RR
Tarikh penciptaan: 2024-12-13 11:57:17 Akhirnya diubah suai: 2024-12-13 11:57:17
Salin: 4 Bilangan klik: 448
1
fokus pada
1617
Pengikut

Sistem perdagangan swing adaptif berdasarkan penunjuk RSI dwi

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan yang menyesuaikan diri berdasarkan dua RSI (indices yang agak kuat). Ia menggabungkan RSI untuk tempoh masa yang berbeza untuk mengenal pasti trend pasaran dan peluang perdagangan, dan untuk mengoptimumkan prestasi perdagangan melalui mekanisme pengurusan dana dan kawalan risiko. Inti strategi ini adalah untuk meningkatkan keuntungan dengan kerjasama RSI berbilang tempoh, sambil memastikan keselamatan perdagangan.

Prinsip Strategi

Strategi ini menggunakan RSI 7 kitaran sebagai isyarat perdagangan utama, digabungkan dengan RSI hari sebagai penapis trend. Apabila RSI kitaran pendek menembusi ke atas dari 40 dan RSI hari lebih besar daripada 55, sistem akan mengeluarkan lebih banyak isyarat.

Kelebihan Strategik

  1. RSI berkala meningkatkan kebolehpercayaan sinyal
  2. Mempunyai mekanisme penambahan simpanan yang beradaptasi, dapat mengurangkan kos pegangan dengan berkesan
  3. Sistem pengurusan wang yang baik, menyesuaikan kedudukan secara automatik mengikut keutamaan risiko
  4. Perlindungan Stop Loss Tetap, Kawalan Risiko Setiap Perdagangan
  5. Mengambil kira kos urus niaga, lebih sesuai dengan keadaan urus niaga sebenar

Risiko Strategik

  1. Indeks RSI mungkin memberi isyarat palsu dalam pasaran yang bergolak
  2. Mekanisme pegangan mungkin menyebabkan kerugian yang lebih besar dalam keadaan penurunan yang berterusan
  3. Peratusan Pecutan Tetap Mungkin Terlalu Konservatif Semasa Tempoh Ketegangan Tinggi
  4. Kos urus niaga boleh menjejaskan pendapatan dengan ketara apabila berdagang dengan kerap
  5. Strategi sokongan kecairan yang mencukupi perlu dilaksanakan

Arah pengoptimuman strategi

  1. Memperkenalkan penunjuk kadar turun naik (seperti ATR) untuk menyesuaikan kedudukan hentian secara dinamik
  2. Meningkatkan penapis kekuatan trend untuk mengurangkan isyarat palsu dalam pasaran goyah
  3. Mengoptimumkan logik kenaikan harga, menyesuaikan dinamik dengan turun naik pasaran
  4. Tambah isyarat pengesahan RSI untuk lebih banyak tempoh masa
  5. Membangunkan sistem pengurusan kedudukan yang bersesuaian

ringkaskan

Ini adalah sistem perdagangan lengkap yang menggabungkan analisis teknikal dan pengurusan risiko. Ia menyediakan isyarat perdagangan melalui sinergi RSI berkala dan mengawal risiko melalui pengurusan dana dan mekanisme penangguhan. Strategi ini sesuai untuk beroperasi di pasaran yang jelas dalam trend, tetapi perlu mengoptimumkan parameter mengikut keadaan pasaran sebenar.

Kod 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