Strategi ini mengintegrasikan dua indikator rata-rata bergerak dan RSI untuk membangun strategi perdagangan silang antara posisi panjang dan pendek.
Strategi ini mengadopsi dua set rata-rata bergerak, yang terdiri dari rata-rata bergerak cepat (EMA 59 dan EMA 82) dan rata-rata bergerak lambat (EMA 96 dan EMA 95).
Secara khusus, ketika EMA cepat pecah di atas EMA lambat, sinyal panjang dihasilkan. Jika RSI di bawah 30 (area oversold) pada saat ini, pergi panjang. Ketika EMA cepat pecah di bawah EMA lambat, sinyal pendek diproduksi. Jika RSI melampaui 70 (area overbought) pada titik ini, pergi pendek.
Keuntungan dari menggunakan rata-rata bergerak ganda adalah untuk lebih mengenali perubahan tren jangka menengah hingga panjang.
Strategi ini mengintegrasikan tren berikut dari rata-rata bergerak ganda dan perdagangan reversi rata-rata dari indikator RSI. EMA ganda melacak arah tren jangka menengah hingga panjang, sementara RSI mengkonfirmasi validitas sinyal perdagangan dan stop loss. Ini adalah strategi silang yang sederhana dan praktis antara panjang dan pendek. Ini dapat disesuaikan dengan lingkungan pasar yang berbeda melalui penyesuaian dan optimalisasi 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)