
Chiến lược này là một chiến lược giao dịch dao động kết hợp Hull MA, kênh giá, tín hiệu EMA và hồi phục tuyến tính. Chiến lược này sử dụng Hull MA để xác định hướng xu hướng thị trường, kênh giá và hồi phục tuyến tính để xác định khu vực đáy, tín hiệu EMA để xác định thời gian vào thị trường để nắm bắt xu hướng đường ngắn.
Chiến lược này bao gồm một số chỉ số:
Logic nhập cảnh:
Nhiều đầu vào: Hull MA lên và giá cao hơn đường ray, quay trở lại thẳng lên qua EMA ngắn hạn Hull MA xuống và giá thấp hơn đường ray dưới, linear regression xuống qua EMA ngắn hạn
Lập luận ra sân:
Nhiều đầu ra sân: Giá thấp hơn đường ray dưới và vượt qua đường quay trở xuống Đi đầu không: Giá cao hơn đường ray và đi qua đường quay trở lên
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Có thể tối ưu hóa từ những điểm sau:
Chiến lược này kết hợp nhiều chỉ số như Hull MA, kênh giá, EMA và sự hồi phục tuyến tính để tạo thành một chiến lược giao dịch xoay quanh đường trung và ngắn hoàn chỉnh hơn. Chiến lược này có thể cải thiện đáng kể độ chính xác phán đoán, thu được lợi nhuận trong xu hướng và đảo ngược so với chỉ số đơn lẻ. Nhưng cũng có một số rủi ro, cần phải có cơ sở phân tích kỹ thuật.
/*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