Hull-MA-Kanal und Swing-Handelsstrategie mit linearer Regression

Schriftsteller:ChaoZhang, Datum: 2023-12-01 16:47:01
Tags:

img

Übersicht

Dies ist eine Swing-Handelsstrategie, die Hull MA, Preiskanal, EMA-Signal und lineare Regression kombiniert.

Strategie Logik

Die Strategie besteht aus folgenden Hauptindikatoren:

  1. Hull MA
    • Der typische Zeitraum für Hull MA beträgt 337 Jahre, was eine mittelfristige bis langfristige Trendrichtung darstellt.
    • Wenn 2 mal 18-Perioden WMA über 337-Perioden WMA ist, ist es ein Bullenmarkt, andernfalls ist es ein Bärenmarkt
  2. Preiskanal
    • Preiskanal-Grafiken EMA-Hoch und EMA-Niedrig, die Support- und Widerstandsbereich darstellen
  3. EMA-Signal
    • Typischer Zeitraum ist 89, der kurzfristigen Trend und Eintrittssignal darstellt
  4. Lineare Regression
    • Schnelle Linie von 6 Perioden für Boden und Ausbruch
    • Langsame Linie von 89 für den mittelfristigen bis langfristigen Trend

Eintrittslogik:

Long Entry: Hull MA zeigt nach oben und Preis über dem oberen Band, lineare Regression kreuzt das EMA-Signal nach oben Kurzer Einstieg: Hull MA zeigt nach unten und der Preis liegt unterhalb des unteren Bandes, lineare Regression durchquert das EMA-Signal nach unten

Ausgang Logik:

Long Exit: Preis unterhalb des unteren Bandes und durchqueren der linearen Regression Kurzer Ausgang: Preis über dem oberen Band und kreuzende lineare Regression nach oben

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Höhere Genauigkeit mit mehreren Indikatoren
    • Hull MA für den Haupttrend, Kanal für Unterstützung/Widerstand, EMA für den Einstieg
  2. Swing-Trading zur Erfassung mittelfristiger Trends
    • Strategie hauptsächlich Umkehrungen zur Erfassung jedes mittelfristigen Zyklus
  3. Kontrollierbares Risiko und geringere Auslastung
    • Das Signal wird nur in einem hohen Wahrscheinlichkeitsbereich erzeugt.

Risikoanalyse

Es gibt auch einige Risiken:

  1. Beschränkter Optimierungsraum
    • Hauptparameter wie EMA-Periode ist fest, mit kleinen Optimierung Raum
  2. Kann im Bereichsmarkt verlieren
    • Stoppverlust kann im seitlichen Bereich ausgelöst werden
  3. Ich brauche ein paar Kenntnisse in der technischen Analyse.
    • Strategie Logik erfordert Preis-Aktion und Indikator Kenntnisse, nicht für jeden geeignet

Verbesserungen

  1. Anpassung der Stop-Loss-Strategie, z. B. nachträglicher Stop-Loss
  2. Optimierung der Ein- und Ausstiegslogik
  3. Hinzufügen anderer Filterindikatoren wie MACD

Zusammenfassung

Die Strategie kombiniert Hull MA, Preiskanal, EMA und lineare Regression für eine vollständige mittelfristige Swing-Handelsstrategie. Im Vergleich zu Einzelindikatorstrategien verbessert sie die Genauigkeit bei der Erfassung von Trends und Umkehrungen erheblich. Es gibt jedoch immer noch Risiken, die technisches Analysewissen erfordern. Weitere Verbesserungen der Parameter und Logik können die Stabilität verbessern.


/*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


Mehr