Strategi silang panjang pendek menggunakan purata bergerak dwi dan penunjuk RSI


Tarikh penciptaan: 2024-02-01 11:48:51 Akhirnya diubah suai: 2024-02-01 11:48:51
Salin: 0 Bilangan klik: 730
1
fokus pada
1617
Pengikut

Strategi silang panjang pendek menggunakan purata bergerak dwi dan penunjuk RSI

Strategi ini menggabungkan penggunaan purata bergerak ganda dan RSI untuk membina strategi perdagangan silang pelbagai ruang. Strategi ini dapat menangkap trend garis tengah dan panjang, sambil menggunakan indikator garis pendek untuk mengelakkan getaran yang tidak perlu.

Prinsip Strategi

Strategi ini menggunakan dua kumpulan purata bergerak, iaitu purata bergerak cepat ((EMA 59 dan EMA 82) dan purata bergerak perlahan ((EMA 96 dan EMA 95)). Apabila harga melintasi purata bergerak cepat dari bawah ke atas, buatlah lebih banyak; apabila harga melintasi purata bergerak cepat dari atas ke bawah, buatlah kosong.

Khususnya, apabila EMA cepat naik, ia akan menghasilkan isyarat kepala kosong apabila ia menembusi EMA perlahan. Apabila RSI berada di bawah 30 (ruang jual-beli), ia akan masuk dengan kepala kosong. Apabila EMA cepat turun, ia akan menghasilkan isyarat kepala kosong.

Kelebihan menggunakan purata bergerak berganda adalah lebih baik untuk mengenal pasti perubahan dalam trend garis tengah dan panjang. Tanda RSI boleh menyaring perdagangan bising yang disebabkan oleh beberapa pecah palsu.

Kelebihan Strategik

  • Menggunakan purata bergerak berganda untuk menangkap trend garis tengah dan panjang
  • RSI menapis bunyi bising
  • Gabungan trend-following dan reversal trading
  • Logik transaksi mudah dan jelas

Analisis risiko

  • Isyarat perdagangan yang dihasilkan oleh purata bergerak mungkin ditipu dalam pasaran yang bergolak
  • RSI juga boleh gagal dalam keadaan pasaran tertentu
  • Tetapan titik henti perlu berhati-hati untuk mengelakkan terlalu longgar atau mendesak

Arah pengoptimuman strategi

  • Kombinasi purata bergerak untuk tempoh yang lebih lama
  • Cuba untuk menyesuaikan parameter yang berbeza, seperti perubahan dalam RSI dalam rantaian turun dan turun
  • Menambah syarat penapisan tambahan, seperti metrik jumlah transaksi
  • Optimumkan strategi hentian kerugian, menggabungkan indikator hentian kerugian dinamik seperti ATR

ringkaskan

Strategi ini mengintegrasikan trend dalam purata bergerak berganda mengikuti perdagangan berbalik dengan penunjuk RSI. Dua EMA menjejaki arah trend dalam garis panjang, RSI digunakan untuk mengesahkan keberkesanan dan hentian isyarat perdagangan. Ini adalah strategi silang pelbagai ruang yang mudah dan praktikal, yang dapat disesuaikan dengan keadaan pasaran yang berbeza melalui penyesuaian dan pengoptimuman parameter.

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