Strategi persilangan long-short menggunakan moving average ganda dan indikator RSI


Tanggal Pembuatan: 2024-02-01 11:48:51 Akhirnya memodifikasi: 2024-02-01 11:48:51
menyalin: 0 Jumlah klik: 730
1
fokus pada
1617
Pengikut

Strategi persilangan long-short menggunakan moving average ganda dan indikator RSI

Strategi ini menggunakan kombinasi dari moving averages dan RSI untuk membangun strategi trading crossover multi-spatial. Strategi ini dapat menangkap tren garis tengah dan panjang, sementara menggunakan indikator garis pendek untuk menghindari getaran yang tidak perlu.

Prinsip Strategi

Strategi ini menggunakan dua set rata-rata bergerak, yaitu rata-rata bergerak cepat ((EMA 59 dan EMA 82) dan rata-rata bergerak lambat ((EMA 96 dan EMA 95)). Jika harga melintasi rata-rata bergerak cepat dari bawah ke atas, lakukan over; Jika harga melintasi rata-rata bergerak cepat dari atas ke bawah, lakukan over.

Secara khusus, ketika EMA cepat ke atas menerobos EMA lambat menghasilkan sinyal multihead. Pada saat ini, jika RSI di bawah 30 (zona oversold), maka masuklah ke dalam multihead. Ketika EMA cepat turun dari EMA lambat, menghasilkan sinyal kosong.

Keuntungan dari menggunakan moving average ganda adalah lebih mudah untuk mengidentifikasi perubahan dalam tren garis tengah dan panjang. Indikator RSI dapat memfilter beberapa perdagangan bising yang disebabkan oleh false breakouts.

Keunggulan Strategis

  • Menggunakan Moving Average Ganda untuk Menangkap Tren Garis Panjang
  • RSI Filter Noise Trading
  • Kombinasi trend following dan reversal trading
  • Logika transaksi sederhana dan jelas

Analisis risiko

  • Sinyal perdagangan yang dihasilkan oleh moving averages dapat ditipu dalam pasar yang sangat bergoyang
  • Indeks RSI juga akan gagal dalam kondisi pasar tertentu
  • Pengaturan titik tolak harus dilakukan dengan hati-hati, jangan terlalu santai atau terlalu mendesak.

Arah optimasi strategi

  • Kombinasi rata-rata bergerak untuk periode yang lebih panjang
  • Cobalah untuk menyesuaikan parameter yang berbeda, seperti perubahan dalam kisaran RSI untuk naik atau turun
  • Menambahkan kondisi penyaringan tambahan, seperti indikator volume transaksi
  • Optimalkan strategi stop loss, menggabungkan indikator stop loss dinamis seperti ATR

Meringkaskan

Strategi ini mengintegrasikan tren dari dua rata-rata bergerak yang mengikuti perdagangan berbalik dengan indikator RSI. Dua EMA melacak arah tren garis panjang, dan RSI digunakan untuk mengkonfirmasi efektivitas sinyal perdagangan dan stop loss. Ini adalah strategi crossover multi-spatial yang sederhana dan praktis, yang dapat disesuaikan dengan lingkungan pasar yang berbeda melalui penyesuaian dan pengoptimalan parameter.

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

//@version=2
strategy("Swing Hull/rsi/EMA Strategy", overlay=true,default_qty_type=strategy.cash,default_qty_value=10000,scale=true,initial_capital=10000,currency=currency.USD)

//A Swing trading strategy that use a combination of indicators, rsi for target, hull for overall direction enad ema for entering the martket.
// hull ma copied from syrowof HullMA who copied from mohamed982 :) thanks both
// Performance 

n=input(title="period",defval=500)

n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))

n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))

n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)



// RSi and Moving averages

length = input( 14 )
overSold = input( 70)
overBought = input( 30)
point = 0.0001
dev= 2

fastLength = input(59)
fastLengthL = input(82)
slowLength = input(96)
slowLengthL = input(95)
price = close

mafast = ema(price, fastLength)
mafastL= ema(price, fastLengthL)
maslow = ema(price, slowLength)
maslowL = ema(price, slowLengthL)
vrsi = rsi(price, length)
cShort =  (crossunder(vrsi, overBought))

condDown = n2 >= n1
condUp = condDown != true
closeLong =  (crossover(vrsi, overSold))
closeShort = cShort 


// Strategy Logic
longCondition = n1> n2
shortCondition = longCondition != true

col =condUp ? lime : condDown ? red : yellow
plot(n1,color=col,linewidth=3)


if (not na(vrsi))
    if shortCondition    
        if (price[0] < maslow[0] and price[1] > mafast[1]) //cross entry
            strategy.entry("SYS-SHORT", strategy.short, comment="short")
strategy.close("SYS-SHORT", when=closeShort) //output logic

if (not na(vrsi))
    if longCondition // swing condition          
        if (price[0] < mafast[0] and price[1] > mafast[1]) //cross entry
            strategy.entry("SYS-LONG", strategy.long, comment="long")
strategy.close("SYS-LONG", when=closeLong) //output logic


// Stop Loss 


sl = input(75)
Stop = sl * 10
Q = 100


strategy.exit("Out Long", "SYS-LONG", qty_percent=Q, loss=Stop)
strategy.exit("Out Short", "SYS-SHORT", qty_percent=Q, loss=Stop)



//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)