Stratégie d'oscillateur Hull MA basée sur les canaux et la régression linéaire


Date de création: 2023-12-01 16:47:01 Dernière modification: 2023-12-01 16:47:01
Copier: 0 Nombre de clics: 731
1
Suivre
1619
Abonnés

Stratégie d’oscillateur Hull MA basée sur les canaux et la régression linéaire

Aperçu

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.

Principe de stratégie

La stratégie est principalement composée des indicateurs suivants:

  1. Hull MA
    • Hull MA est un paramètre général de 337 pour la période, représentant la direction de la tendance de la ligne moyenne longue
    • Lorsque le WMA à 18 cycles est supérieur à 337 cycles, il s’agit d’un marché à plusieurs têtes, et vice versa.
  2. Chaîne de prix
    • Les canaux de prix sont constitués d’EMA à hauts et bas, représentant des zones susceptibles de former des supports et des résistances.
  3. Signaux de l’EMA
    • Les signaux EMA sont généralement de 89 cycles, représentant une tendance à courte ligne et un signal d’entrée en bourse.
  4. Regression linéaire
    • Cycle de la ligne rapide 6 pour déterminer le fond et la rupture
    • Ligne lente 89 cycle, déterminer la direction de la tendance de la ligne moyenne longue

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

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Une combinaison d’indicateurs plus précise
    • Hull MA juge la tendance dominante, la chaîne juge le soutien sous pression, l’EMA juge le moment d’entrée
  2. La tendance est à la volatilité et à la capture des courts courants.
    • Stratégie basée sur un swing inverse, capture la tendance de chaque cycle de courte ligne moyenne
  3. Risques maîtrisés, moins de retraits
    • La stratégie consiste à envoyer des signaux uniquement dans les zones à forte probabilité et à éviter de poursuivre les hauts et les bas.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Limite d’optimisation des paramètres
    • Les paramètres principaux tels que le cycle EMA sont relativement fixes et l’espace d’optimisation est petit.
  2. Des pertes potentielles en cas de secousse
    • Le stop loss peut être déclenché lorsque les prix oscillent horizontalement
  3. Une base d’analyse technique est nécessaire.
    • L’idée stratégique nécessite une certaine connaissance du comportement des prix et des indicateurs, et n’est pas adaptée à tout le monde

L’optimisation peut se faire à partir des points suivants:

  1. Adaptation des stratégies de réduction des pertes, telles que la réduction des pertes post-seismologiques
  2. Optimisation de la logique d’entrée et de sortie
  3. Ajouter des filtres pour d’autres indicateurs, comme le MACD

Résumer

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.

Code source de la stratégie
/*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