
Strategi ini adalah strategi perdagangan berayun yang menggabungkan Hull MA, saluran harga, sinyal EMA, dan regresi linier. Strategi ini menggunakan Hull MA untuk menentukan arah tren pasar, saluran harga dan regresi linier untuk menentukan area bawah, dan sinyal EMA untuk menentukan waktu masuk ke pasar untuk menangkap tren garis pendek.
Strategi ini terdiri dari beberapa indikator:
Logika input:
Multiple entry: Hull MA ke atas dan harga lebih tinggi dari atas rel, linear regression ke atas melewati EMA singkat Masuk kosong: Hull MA ke bawah dan harga di bawah rel bawah, linear regression ke bawah melewati EMA singkat
Logika Keluar:
Perjalanan beruntun: harga di bawah rel bawah dan melintasi regresi linier ke bawah Berjalan dengan kepala kosong: harga lebih tinggi dari naik kereta api dan melintasi linear kembali ke atas
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Ada beberapa hal yang dapat dioptimalkan:
Strategi ini menggabungkan beberapa indikator seperti Hull MA, saluran harga, EMA, dan regresi linier untuk membentuk strategi perdagangan yang lebih lengkap. Strategi ini dapat meningkatkan akurasi penilaian, menangkap keuntungan dalam tren dan pembalikan, dibandingkan dengan indikator tunggal. Namun, ada juga risiko tertentu yang memerlukan dasar analisis teknis.
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Swing Hull/SonicR/EMA/Linear Regression Strategy", overlay=true)
//Hull MA
n=input(title="HullMA Period",defval=377)
//
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)
condDown = n2 >= n1
condUp = condDown != true
col =condUp ? lime : condDown ? red : yellow
plot(n1,title="Hull MA", color=col,linewidth=3)
// SonicR + Line reg
EMA = input(defval=89, title="EMA Signal")
HiLoLen = input(34, minval=2,title="High Low channel Length")
lr = input(89, minval=2,title="Linear Regression Length")
pacC = ema(close,HiLoLen)
pacL = ema(low,HiLoLen)
pacH = ema(high,HiLoLen)
DODGERBLUE = #1E90FFFF
// Plot the Price Action Channel (PAC) base on EMA high,low and close//
L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=90)
H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=90)
C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=80)
//Moving Average//
signalMA =ema(close,EMA)
plot(signalMA,title="EMA Signal",color=black,linewidth=3,style=line)
linereg = linreg(close, lr, 0)
lineregf = linreg(close, HiLoLen, 0)
cline=linereg>linereg[1]?green:red
cline2= lineregf>lineregf[1]?green:red
plot(linereg, color = cline, title = "Linear Regression Curve Slow", style = line, linewidth = 1)
//plot(lineregf, color = cline2, title = "Linear Regression Curve Fast", style = line, linewidth = 1)
longCondition = n1>n2
shortCondition = longCondition != true
closeLong = lineregf-pacH>(pacH-pacL)*2 and close<lineregf and linereg>signalMA
closeShort = pacL-lineregf>(pacH-pacL)*2 and close>lineregf and linereg<signalMA
if shortCondition
if (close[0] < signalMA[0] and close[1] > pacL[1] and linereg>pacL and close<n1 and pacL<n1) //cross entry
strategy.entry("SHORT", strategy.short, comment="Short")
strategy.close("SHORT", when=closeShort) //output logic
if longCondition // swing condition
if (close[0] > signalMA[0] and close[1] < pacH[1] and linereg<pacH and close>n1 and pacH>n1) //cross entry
strategy.entry("LONG", strategy.long, comment="Long")
strategy.close("LONG", when=closeLong) //output logic