Strategi long-short yang menggabungkan RSI dan MACD

RSI MACD
Tanggal Pembuatan: 2024-05-17 11:04:03 Akhirnya memodifikasi: 2024-05-17 11:04:03
menyalin: 0 Jumlah klik: 778
1
fokus pada
1617
Pengikut

Strategi long-short yang menggabungkan RSI dan MACD

Ringkasan

Strategi ini menggabungkan dua indikator teknis, yaitu indeks relative strength (RSI) dan indikator dispersi rata-rata bergerak (MACD), yang menggunakan RSI untuk menilai overbought dan oversold, dan MACD untuk menilai arah tren, untuk membentuk satu set strategi multi-kamar yang lengkap. Ketika RSI melampaui, sinyal jual dikeluarkan, MACD melintasi garis cepat dan lambat ke atas dan meluntasi posisi; Ketika RSI melampaui, sinyal beli dikeluarkan, MACD melintasi garis cepat dan lambat ke bawah dan meluntasi posisi.

Prinsip Strategi

  1. Perhitungan RSI untuk menilai overbought dan oversold:
    • Ketika RSI lebih besar dari 70 dan melintasi garis 70 dari atas ke bawah, sinyal jual dikirim
    • Ketika RSI lebih kecil dari 30 dan melintasi garis 30 dari bawah ke atas, sinyal beli akan dikirim
  2. Perhitungan MACD untuk menentukan arah tren:
    • Ketika MACD fast line melintasi slow line dari bawah ke atas, sinyal untuk menjual posisi di posisi kosong
    • Ketika MACD fast line melintasi slow line dari atas ke bawah, sinyal buy-in untuk posisi kosong
  3. Pengaturan Stop Loss:
    • Menghitung kenaikan dan penurunan rata-rata dari varietas tersebut dengan setengahnya sebagai titik tolak

Dengan menggunakan RSI untuk menilai overbought dan oversold, intervensi pada awal pembalikan pasar; Menggunakan MACD untuk menentukan arah tren, posisi terdepan pada awal tren, dapat lebih memahami tren. Kedua indikator saling melengkapi, membentuk sistem perdagangan yang lengkap.

Keunggulan Strategis

  1. Kombinasi dari strategi overbought dan oversold dan trend tracking, dapat melakukan intervensi pada awal pembalikan pasar, dan menyetor posisi tepat waktu setelah tren terbentuk, dan secara efektif menghindari kerugian yang disebabkan oleh getaran pasar yang berulang.
  2. Pengaturan stop loss didasarkan pada sifat fluktuasi varietas, yang dapat mengontrol penarikan dan meningkatkan efisiensi penggunaan dana.
  3. Kode logis jelas, menggunakan pemrograman fungsional, mudah dipahami dan dioptimalkan.

Risiko Strategis

  1. Pilihan parameter RSI dan MACD memiliki dampak besar pada kinerja strategi, dan mungkin memerlukan optimasi parameter untuk varietas dan siklus yang berbeda.
  2. Strategi ini dapat mengalami penarikan yang lebih besar dalam situasi pasar yang ekstrim, seperti pergeseran cepat yang disebabkan oleh peristiwa yang tidak terduga.
  3. Strategi ini mungkin tidak bekerja dengan baik di pasar yang bergolak, dengan perdagangan yang lebih sering dan biaya transaksi yang lebih tinggi.

Arah optimasi strategi

  1. Optimalkan parameter RSI dan MACD untuk menemukan kombinasi parameter yang paling sesuai dengan varietas dan siklus saat ini, meningkatkan stabilitas dan profitabilitas strategi.
  2. Menambahkan lebih banyak filter seperti volume transaksi, volatilitas, dan lain-lain untuk mengurangi frekuensi transaksi dan meningkatkan kualitas sinyal.
  3. Memperkenalkan modul manajemen posisi, menyesuaikan posisi sesuai dengan tren pasar dan dinamika kinerja sendiri, mengendalikan penarikan.
  4. Kombinasi dengan strategi lain, seperti pelacakan tren, respon rata-rata, dan lain-lain, membentuk kombinasi multi-strategi, meningkatkan fleksibilitas strategi.

Meringkaskan

Strategi ini membentuk sistem perdagangan multi-posisi yang lengkap dengan menilai overbought dan oversold dengan RSI dan MACD untuk menentukan arah tren. Logika strategi jelas, keunggulan jelas, tetapi juga ada risiko tertentu. Dengan cara mengoptimalkan parameter, menambahkan kondisi filter, manajemen posisi, dan kombinasi dengan strategi lain, kinerja strategi dapat ditingkatkan lebih lanjut, sehingga menjadi strategi perdagangan yang kuat.

Kode Sumber Strategi
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="RSI & MACD Strategy", shorttitle="RSI & MACD", overlay=true)

// Définition des entrées
rsi_length = 14
rsi_overbought = 70
rsi_oversold = 30
macd_fast_length = 12
macd_slow_length = 26
macd_signal_length = 9

// Fonction pour calculer le RSI
calculate_rsi(source, length) =>
    price_change = ta.change(source)
    up = ta.rma(price_change > 0 ? price_change : 0, length)
    down = ta.rma(price_change < 0 ? -price_change : 0, length)
    rs = up / down
    rsi = 100 - (100 / (1 + rs))
    rsi

// Fonction pour calculer le MACD
calculate_macd(source, fast_length, slow_length, signal_length) =>
    fast_ma = ta.ema(source, fast_length)
    slow_ma = ta.ema(source, slow_length)
    macd = fast_ma - slow_ma
    signal = ta.ema(macd, signal_length)
    hist = macd - signal
    [macd, signal, hist]

// Calcul des indicateurs
rsi_value = calculate_rsi(close, rsi_length)
[macd_line, signal_line, _] = calculate_macd(close, macd_fast_length, macd_slow_length, macd_signal_length)

// Conditions d'entrée et de sortie
// Entrée en vente : RSI passe de >= 70 à < 70
sell_entry_condition = ta.crossunder(rsi_value, rsi_overbought)

// Sortie en vente : MACD fast MA croise au-dessus de slow MA
sell_exit_condition = ta.crossover(macd_line, signal_line)

// Entrée en achat : RSI passe de <= 30 à > 30
buy_entry_condition = ta.crossover(rsi_value, rsi_oversold)

// Sortie en achat : MACD fast MA croise en-dessous de slow MA
buy_exit_condition = ta.crossunder(macd_line, signal_line)

// Affichage des signaux sur le graphique
plotshape(series=sell_entry_condition, title="Sell Entry", location=location.belowbar, color=color.red, style=shape.triangleup, size=size.small)
plotshape(series=sell_exit_condition, title="Sell Exit", location=location.abovebar, color=color.green, style=shape.triangledown, size=size.small)
plotshape(series=buy_entry_condition, title="Buy Entry", location=location.abovebar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=buy_exit_condition, title="Buy Exit", location=location.belowbar, color=color.red, style=shape.triangledown, size=size.small)

// Entrées et sorties de la stratégie
if (sell_entry_condition)
    strategy.entry("Short", strategy.short)
    
if (sell_exit_condition)
    strategy.close("Short")

if (buy_entry_condition)
    strategy.entry("Long", strategy.long)
    
if (buy_exit_condition)
    strategy.close("Long")