RSI dan EMA Berasaskan Trend Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2024-01-25 12:19:32
Tag:

img

Ringkasan

Strategi ini menggabungkan Indeks Kekuatan Relatif (RSI) dan indikator teknikal Purata Bergerak Eksponensial (EMA) untuk melaksanakan strategi perdagangan kuantitatif berdasarkan trend berikut.

Logika Strategi

Pemilihan penunjuk

  • EMA untuk menentukan arah trend semasa. Strategi ini menggunakan EMA 20 hari, 50 hari dan 200 hari. Apabila harga di atas EMA ini, trend menaik dikenal pasti.
  • RSI untuk mengenal pasti tahap overbought / oversold. RSI 14 tempoh standard, dengan ambang overbought pada 70 dan ambang oversold pada 30.

Peraturan kemasukan

Isyarat masuk panjang:

  • RSI di bawah tahap 30, menunjukkan keadaan oversold di mana harga mungkin bangkit semula
  • Harga di atas sama ada EMA 20 hari, 50 hari atau 200 hari, menunjukkan pasaran yang cenderung menaik

Apabila kedua-dua kriteria dipenuhi, kedudukan panjang dimasukkan.

Pengurusan Risiko

Pendaftaran Stop Loss perlu mengambil kira ciri pasaran.

Ukuran kedudukan pada masa masuk: Hilang Maksimum / (Harga Masuk - Harga Hentian Kerugian) = Ukuran Kedudukan

Ini berkesan mengawal risiko setiap perdagangan.

Peraturan Keluar

Isyarat utama keluar:

  • RSI meningkat di atas tahap 70, harga mungkin jatuh kerana keadaan overbought
  • Penurunan harga di bawah sama ada EMA 20 hari, 50 hari atau 200 hari, pembalikan trend

Apabila mana-mana isyarat berlaku, kedudukan ditutup.

Analisis Kelebihan

Strategi ini menggabungkan kelebihan trend berikut dan pembalikan purata. EMA menentukan trend keseluruhan, kemudian isyarat kemasukan berlaku di zon pembalikan yang berpotensi, mendapat manfaat daripada kedua-dua trend dan pembalikan untuk kestabilan. Parameter RSI juga boleh dioptimumkan untuk pasaran yang berbeza, menjadikan strategi yang kukuh.

Kerugian maksimum tetap setiap perdagangan melindungi modal dengan mengawal secara langsung tahap risiko perdagangan.

Analisis Risiko

Strategi ini berfungsi dengan baik dalam pasaran yang jelas. Dalam persekitaran yang kompleks dan tidak menentu, menggunakan EMA untuk trend mungkin mempunyai batasan. Juga RSI mempunyai beberapa kesan kelewatan, yang memerlukan pengesahan dari tindakan harga sebenar.

Penempatan stop loss sangat penting untuk PnL, memerlukan ujian yang teliti untuk pasaran yang berbeza. Jika terlalu luas, kerugian tunggal boleh berkembang; jika terlalu ketat, bunyi bising boleh mencetuskan berhenti yang tidak diingini. Ujian langsung diperlukan untuk pengoptimuman berterusan.

Arahan pengoptimuman

Ujian parameter RSI yang berbeza untuk menyesuaikan lebih banyak pasaran. Mencari nisbah saiz perdagangan yang optimum. Menambah penunjuk teknikal lain untuk membina sistem kemasukan / keluar yang lebih kukuh. Ini adalah semua pilihan yang patut diterokai.

Kesimpulan

Strategi ini mengintegrasikan kekuatan strategi trend berikut dan strategi pembalikan purata. Masuk berlaku pada pembalikan yang berpotensi sambil mengenal pasti trend yang lebih besar. Pengoptimuman RSI menyesuaikan dengan lebih banyak rejim pasaran. Tahap risiko perdagangan tetap memastikan operasi stabil dalam jangka sederhana hingga panjang. Penambahbaikan lanjut mungkin melalui penyesuaian dan ujian ketahanan menggunakan pasaran dan gaya yang berbeza.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Stratégie RSI et EMA avec Gestion du Risque", overlay=true)

// Paramètres de la stratégie
rsiLength = input(14, "Longueur du RSI")
rsiOverbought = input(70, "Niveau de Surachat RSI")
rsiOversold = input(30, "Niveau de Survente RSI")

// Calcul du RSI
rsiValue = rsi(close, rsiLength)

// Paramètres des EMA
ema20 = ema(close, 20)
ema50 = ema(close, 50)
ema200 = ema(close, 200)

// Paramètre du risque par trade
riskPerTrade = input(0.03, "Risque par Trade (3%)")

// Distance du stop-loss en pips (à ajuster selon votre stratégie)
stopLossPips = input(1, "Distance du Stop-Loss en pips")

// Calcul de la taille de position et du stop-loss
calculatePositionSize(entryPrice, stopLossPips) =>
    stopLossPrice = entryPrice - stopLossPips * syminfo.mintick
    riskPerTradeValue = strategy.equity * riskPerTrade
    positionSize = riskPerTradeValue / (entryPrice - stopLossPrice)
    positionSize

// Conditions d'entrée
longCondition = (rsiValue < rsiOversold) and (close > ema20 or close > ema50 or close > ema200)
if longCondition
    strategy.entry("Long", strategy.long, qty=1)

// Conditions de sortie
exitCondition = (rsiValue > rsiOverbought) or (close < ema20 or close < ema50 or close < ema200)
if exitCondition
    strategy.close("Long")

// Affichage des EMA et RSI sur le graphique
plot(ema20, color=color.red)
plot(ema50, color=color.green)
plot(ema200, color=color.blue)
hline(rsiOverbought, "Niveau de Surachat RSI", color=color.red)
hline(rsiOversold, "Niveau de Survente RSI", color=color.blue)
plot(rsiValue, "RSI", color=color.purple)

Lebih lanjut