
Cette stratégie est une stratégie de trading basculante qui combine Hull MA, les canaux de prix, les signaux EMA et la régression linéaire. Cette stratégie utilise le Hull MA pour déterminer la direction de la tendance du marché, les canaux de prix et la régression linéaire pour déterminer les zones de fond, et les signaux EMA pour déterminer le moment d’entrée sur le marché afin de capturer la tendance de la courte ligne moyenne.
La stratégie est principalement composée des indicateurs suivants:
Logistique d’entrée:
Entrée multiple: Hull MA vers le haut et le prix plus élevé que la voie, retour linéaire vers le haut à travers l’EMA à court terme Entrée à vide: Hull MA vers le bas et le prix est inférieur à la trajectoire descendante, une régression linéaire vers le bas traversant l’EMA à court terme
La logique de sortie:
Sortie multiple: prix inférieur à la descente et traversant une descente linéaire Sortie à vide: prix plus élevé que la voie et traversant une remontée linéaire
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
L’optimisation peut se faire à partir des points suivants:
Cette stratégie utilise plusieurs indicateurs, tels que la Hull MA, le canal de prix, l’EMA et la régression linéaire, pour former une stratégie de négociation plus complète. Comparée à une seule stratégie, cette stratégie peut considérablement améliorer l’exactitude de jugement et capturer des bénéfices dans les tendances et les retournements.
/*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