Strategi ini mengintegrasikan purata bergerak berganda dan penunjuk RSI untuk membina strategi perdagangan silang antara kedudukan panjang dan pendek. Ia boleh menangkap trend jangka menengah hingga panjang sambil mengelakkan perdagangan bising yang tidak perlu dengan penunjuk jangka pendek.
Strategi ini menggunakan dua set purata bergerak, yang terdiri daripada purata bergerak pantas (EMA 59 dan EMA 82) dan purata bergerak perlahan (EMA 96 dan EMA 95). Ia pergi lama apabila harga melintasi di atas EMA pantas, dan pergi pendek apabila harga melintasi di bawah EMA pantas. Sementara itu, kawasan overbought dan oversold penunjuk RSI digunakan untuk mengesahkan isyarat perdagangan dan stop-loss.
Secara khusus, apabila EMA cepat memecahkan di atas EMA perlahan, isyarat panjang dihasilkan. Jika RSI di bawah 30 (kawasan terlalu banyak dijual) pada masa ini, pergi panjang. Apabila EMA cepat memecahkan di bawah EMA perlahan, isyarat pendek dihasilkan. Jika RSI melebihi 70 (kawasan terlalu banyak dibeli) pada titik ini, pergi pendek.
Kelebihan menggunakan purata bergerak berganda adalah untuk lebih mengenali perubahan dalam trend jangka menengah hingga panjang.
Strategi ini mengintegrasikan trend berikut purata bergerak berganda dan perdagangan pembalikan purata penunjuk RSI. EMA berganda mengesan arah trend jangka menengah hingga panjang, sementara RSI mengesahkan kesahihan isyarat perdagangan dan stop loss. Ini adalah strategi persilangan yang mudah dan praktikal antara panjang dan pendek. Ia boleh disesuaikan dengan persekitaran pasaran yang berbeza melalui penyesuaian parameter dan pengoptimuman.
/*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)