Zeitübergreifende Hull-Handelsstrategie mit gleitendem Durchschnitt


Erstellungsdatum: 2023-11-07 16:54:14 zuletzt geändert: 2023-11-07 16:54:14
Kopie: 0 Klicks: 697
1
konzentrieren Sie sich auf
1617
Anhänger

Zeitübergreifende Hull-Handelsstrategie mit gleitendem Durchschnitt

Überblick

Diese Strategie basiert auf dem Hull Moving Average, berechnet den Hull MA auf verschiedenen Zeitlinien und vergleicht den Hull MA-Bewegungen auf verschiedenen Zeitlinien, um Trendänderungen zu entdecken. Es wird ein Kaufsignal erzeugt, wenn ein kurzer Zeitraum auf dem Hull MA über einen langen Zeitraum verläuft.

Strategieprinzip

  1. Eingabeparameter: Hull MA-Zyklus Period, Zeitleiste von HMA2 Resolution2, Zeitleiste von HMA3 Resolution3

  2. Berechnung des Hull-MA-Wertes HMA auf der aktuellen K-Linie

  3. Berechnung des Hull-MA-Wertes HMA2 auf der Resolution-2-Zeitlinie

  4. Berechnung des Hull-MA auf der Resolution3-Zeitlinie HMA3

  5. Vergleiche der Größenverhältnisse von HMA, HMA2 und HMA3

  6. Wenn HMA>HMA2>HMA3, erzeugt ein Kaufsignal

  7. Wenn HMA < HMA2 < HMA3, erzeugt ein Verkaufssignal

  8. Hull-MA-Werte und -Signale auf verschiedenen Zeitlinien in der oberen linken Ecke der Oberfläche angezeigt

  9. Farbe zur Unterscheidung von Auf- und Abwärtszuständen

Analyse der Stärken

  1. Die Verwendung mehrerer Zeitlinien kann falsche Durchbrüche filtern und verhindern, dass sie erfasst werden.

  2. Anpassbare Zeitachsenparameter für verschiedene Perioden.

  3. Das ist eine sehr einfache Lösung, aber es ist sehr kompliziert.

  4. Die Hull MA-Bewegung wird visualisiert, um die aktuellen Trends zu beurteilen.

Risikoanalyse

  1. Die falsche Einstellung der Parameter kann zu zu häufigen Transaktionen führen.

  2. Der Hull MA ist nachlässig und könnte einen Trendwendepunkt verpassen.

  3. Die Strategie erzeugt falsche Signale, wenn der Stier und der Bär umschalten.

  4. Die Strategie der Durchbruchsklasse, die leicht zu einem gefälschten Durchbruch in die Zelle führen kann.

  5. Die Gebühren sind nicht berücksichtigt und beeinträchtigen den tatsächlichen Gewinn.

Das Risiko kann durch Optimierung von Parametern, Kombination anderer Indikatoren als Filter und angemessene Lockerung der Stop-Line verringert werden.

Optimierungsrichtung

  1. Optimierung der Hull MA-Zyklusparameter für unterschiedliche Zyklen und Schwankungen.

  2. Es ist wichtig, dass die Befragten ihre Beurteilung über den Umsatz erhöhen und falsche Durchbrüche vermeiden.

  3. Die Zunahme der Erschütterungsindikatoren, die die Stärke des Trends bestimmen sollen.

  4. Das ist eine sehr gute Idee, um zu entscheiden, wann man etwas kauft oder verkauft.

  5. Das ist eine sehr gute Idee, aber es ist nicht einfach.

  6. Anpassung der Stop-Loss-Strategie und Optimierung des Risikomanagements.

  7. Benutzerdefinierte Kauf- und Verkaufsbedingungen, Kombination mit anderen Indikatoren.

  8. Erhöhung der Handelsstrategien auf Basis von Preiskanälen und -bandbreiten.

Zusammenfassen

Die Strategie basiert auf dem Vergleich der Hull MA-Indikatoren mit den Durchschnittskursen auf verschiedenen Zeitlinien, um die Richtung des aktuellen Trends zu bestimmen und bei einer Trendwende ein Kauf- und Verkaufssignal zu erzeugen. Im Vergleich zu einer einzigen Durchschnittslinie filtert die Hull MA auf mehreren Zeitlinien effektiv falsche Durchbrüche. Die Strategie hat jedoch auch Probleme mit Parameter-Einstellungen, Trendurteilen usw. Durch die Integration von mehr Indikatoren, Optimierung der Parameter-Einstellungen und Verbesserung der Stop-Loss-Strategie können die Strategieprofitabilität erhöht und das Risiko kontrolliert werden.

Strategiequellcode
/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//
strategy("wtfBUYorSELLffs",overlay=true,currency="USD",initial_capital=100000,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.percent,commission_value=0.1)
Period=input(title="Hull MA Period",type=input.integer,defval=6,minval=1)
Resolution2=input(title="HMA2 Resolution", type=input.resolution,defval="60")
Resolution3=input(title="HMA3 Resolution", type=input.resolution,defval="240")
Price=input(title="Source of Price",type=input.source,defval=open)
xOffset       = input(40, title="Panel offset (X-Axis)")
yOffset       = input(0, title="Panel offset (y-Axis)")
lightgray = #D3D3D3FF
pnlTextColor = color.silver
pnlColor = color.black
HMA = hma(Price,Period)
HMA2 = security(syminfo.tickerid, Resolution2, HMA,barmerge.gaps_off,barmerge.lookahead_off)
HMA3 = security(syminfo.tickerid, Resolution3, HMA,barmerge.gaps_off,barmerge.lookahead_off) 
HUP = HMA > HMA[1]
H1UP = security(syminfo.tickerid, Resolution2, HUP,barmerge.gaps_off,barmerge.lookahead_off)
H2UP = security(syminfo.tickerid, Resolution3, HUP,barmerge.gaps_off,barmerge.lookahead_off) 

int barSize = timeframe.isdaily ? timeframe.multiplier*86400000 : 
           timeframe.isseconds? timeframe.multiplier*1000 :
           timeframe.isminutes? timeframe.multiplier*60000 : (time[0]-time[1])
int   lapos_x = timenow + barSize*xOffset
float lapos_y = highest(20) + yOffset*syminfo.mintick * syminfo.pointvalue
f_draw_infopanel(_x, _y, _line, _text)=>
    _rep_text = ""
    for _l = 0 to _line
        _rep_text := _rep_text + "\n"
    _rep_text := _rep_text + _text
    // var label _la = na
    // label.delete(_la)
//     _la := label.new(
//          x=_x, y=_y, 
//          text=_rep_text, xloc=xloc.bar_time, yloc=yloc.price, 
//          color=pnlColor, style=label.style_labelup, textcolor=pnlTextColor, size=size.normal)
// f_draw_infopanel(lapos_x, lapos_y, 8, "╚═══════════════════════╝")
f_draw_infopanel(lapos_x, lapos_y, 6,  "HMA3 on TF " + Resolution3 + "  = " + tostring(HMA3,"#.####") + (H2UP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 4,  "HMA2 on TF " + Resolution2 + "  = " +  tostring(HMA2,"#.####") + (H1UP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 2,  "HMA1 on TF " + timeframe.period + "  = " + tostring(HMA,"#.####") + (HUP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 0,  "╔═════════ HMA(" + tostring(Period,"#") +") ════════╗")
change_color=HMA>HMA3?color.green:color.red
change_color2=HMA2>HMA3?color.lime:color.yellow
plot1=plot(HMA3,color=change_color2,title="3 Hull MA Line",linewidth=2,transp=75)
plot2=plot(HMA2,color=change_color,title="2 Hull MA Line",linewidth=2,transp=75)
plot3=plot(HMA,color=color.white,title="Hull MA Line",linewidth=2,transp=75)
fill(plot1,plot3,color=change_color,transp=90)
fill(plot2,plot3,color=change_color2,transp=75)
if (H2UP and H1UP and HUP)
    strategy.entry("BUY",strategy.long)
if (not H2UP and not H1UP and not HUP)
    strategy.entry("SELL",strategy.short)