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