Ini adalah strategi perdagangan ayunan yang menggabungkan Hull MA, saluran harga, isyarat EMA dan regresi linear. Ia menggunakan Hull MA untuk menentukan arah trend pasaran, saluran harga dan regresi linear untuk mengenal pasti kawasan bawah, isyarat EMA ke masa kemasukan pasaran, untuk menangkap trend jangka sederhana.
Strategi ini terdiri daripada penunjuk utama berikut:
Logika kemasukan:
Long Entry: Hull MA menunjuk ke atas dan harga di atas band atas, regresi linear melintasi isyarat EMA ke atas Short Entry: Hull MA menunjuk ke bawah dan harga di bawah jalur bawah, regresi linear melintasi isyarat EMA ke bawah
Logik Keluar:
Long Exit: Harga di bawah band bawah dan melintasi regresi linear ke bawah Keluar Pendek: Harga di atas jalur atas dan melintasi regresi linear ke atas
Strategi ini mempunyai kelebihan berikut:
Terdapat juga beberapa risiko:
Penambahbaikan:
Strategi ini menggabungkan Hull MA, saluran harga, EMA dan regresi linear untuk strategi perdagangan ayunan jangka menengah yang lengkap. Berbanding dengan strategi penunjuk tunggal, ia meningkatkan ketepatan dengan ketara dalam menangkap trend dan pembalikan. Tetapi masih ada risiko, yang memerlukan pengetahuan analisis teknikal. Penambahbaikan lanjut pada parameter dan logik dapat meningkatkan kestabilan.
/*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