
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.
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.
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.
/*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)