Strategi jangka pendek menggabungkan RSI dan MACD

RSI MACD
Tarikh penciptaan: 2024-05-17 11:04:03 Akhirnya diubah suai: 2024-05-17 11:04:03
Salin: 0 Bilangan klik: 778
1
fokus pada
1617
Pengikut

Strategi jangka pendek menggabungkan RSI dan MACD

Gambaran keseluruhan

Strategi ini menggabungkan kedua-dua petunjuk teknikal, iaitu RSI dan MACD, untuk menentukan keadaan overbought dan oversold, dan MACD untuk menentukan arah trend. Strategi ini membentuk satu set strategi multi-kamar yang lengkap. Apabila RSI mengeluarkan isyarat jual ketika overbought, MACD melintasi garis perlahan dan melonggarkan posisi ke atas. Apabila RSI mengeluarkan isyarat beli ketika overbought, MACD melintasi garis perlahan dan melonggarkan posisi ke bawah.

Prinsip Strategi

  1. Untuk mengira RSI, perbandingan antara overbought dan oversold:
    • Apabila RSI lebih besar daripada 70 dan melintasi garis 70 dari atas ke bawah, isyarat jual dikeluarkan
    • Apabila RSI kurang daripada 30, dan melintasi garis 30 dari bawah ke atas, isyarat beli dikeluarkan
  2. Mengira MACD untuk menentukan arah trend:
    • Apabila MACD Fast Line melintasi Slow Line dari bawah ke atas, ia akan memberi isyarat untuk menjual kedudukan
    • Apabila MACD Fast Line melintasi Slow Line dari atas ke bawah, ia akan memberi isyarat untuk membeli kedudukan pada kedudukan yang tidak rata
  3. Tetapan titik henti:
    • Hitung kenaikan dan penurunan purata untuk jenis ini dengan mengambil separuh sebagai titik berhenti

Dengan menggunakan RSI untuk menilai keadaan overbought dan oversold, campur tangan pada awal pembalikan pasaran; menggunakan MACD untuk menentukan arah trend, pada awal trend, posisi rata, dapat memahami trend dengan lebih baik. Kedua-dua penunjuk saling melengkapi, membentuk sistem perdagangan yang lengkap.

Kelebihan Strategik

  1. Gabungan antara strategi overbought dan oversold dan trend tracking, ia dapat campur tangan pada permulaan pembalikan pasaran, dan melonggarkan kedudukan tepat pada masanya selepas trend terbentuk, dan berkesan mengelakkan kerugian yang disebabkan oleh kejutan pasaran berulang.
  2. Tetapan titik hentian adalah berdasarkan ciri-ciri turun naik jenis, yang dapat mengawal penarikan balik dan meningkatkan kecekapan penggunaan dana.
  3. Kod logiknya jelas, menggunakan cara pengaturcaraan fungsi, mudah difahami dan dioptimumkan.

Risiko Strategik

  1. Pilihan parameter RSI dan MACD mempunyai kesan besar terhadap prestasi strategi, dan parameter mungkin perlu dioptimumkan untuk pelbagai jenis dan kitaran.
  2. Strategi ini mungkin mengalami penarikan balik yang lebih besar dalam keadaan pasaran yang melampau, seperti perubahan cepat yang disebabkan oleh peristiwa yang tidak dijangka.
  3. Strategi ini mungkin tidak berfungsi dengan baik dalam pasaran yang bergolak, yang menyebabkan perdagangan yang kerap dan kos dagangan yang tinggi.

Arah pengoptimuman strategi

  1. Mengoptimumkan parameter RSI dan MACD untuk mencari kombinasi parameter yang paling sesuai untuk varieti dan kitaran semasa, meningkatkan kestabilan dan keuntungan strategi.
  2. Tambah lebih banyak syarat penapisan, seperti jumlah transaksi, kadar turun naik dan lain-lain, mengurangkan kekerapan transaksi dan meningkatkan kualiti isyarat.
  3. Memperkenalkan modul pengurusan kedudukan, menyesuaikan kedudukan mengikut trend pasaran dan dinamik prestasi sendiri, mengawal penarikan balik.
  4. Gabungan dengan strategi lain, seperti trend tracking, mean reversion, dan lain-lain, membentuk gabungan pelbagai strategi, meningkatkan daya serap strategi.

ringkaskan

Strategi ini membentuk satu sistem perdagangan pelbagai ruang yang lengkap dengan menilai keadaan overbought dan oversold oleh RSI dan arah trend oleh MACD. Logik strategi jelas, kelebihan jelas, tetapi ada juga risiko tertentu. Dengan cara mengoptimumkan parameter, menambahkan syarat penapis, pengurusan kedudukan, dan menggabungkan dengan strategi lain, anda dapat meningkatkan lagi prestasi strategi ini, menjadikannya strategi perdagangan yang mantap.

Kod 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")