Pivot-Supertrend-Strategie für mehrere Zeitrahmen

Schriftsteller:ChaoZhang, Datum: 2024-01-31 17:29:37
Tags:

img

Übersicht

Diese Strategie kombiniert den Pivot Points-Indikator und die Average True Range Bands, um ein Trend-Tracking-System über mehrere Zeitrahmen hinweg zu implementieren.

Strategie Logik

Diese Strategie beruht hauptsächlich auf zwei Indikatoren:

  1. Pivot-Punkte: Berechnen Sie den Durchschnitt der höchsten, niedrigsten und schließenden Preise über einen bestimmten Zeitraum, um obere und untere Pivot-Punkte zu bestimmen.

  2. Durchschnittliche Wahre Bandbreite: Berechnen Sie die durchschnittliche Wahre Bandbreite über einen bestimmten Zeitraum und bewegen Sie das mittlere Band nach oben und unten, um einen Kanal zu bilden.

Die spezifische Handelslogik lautet:

Wenn der Preis durch den Durchschnittlichen Wahren Bereich durchbricht, nehmen Sie lange oder kurze Positionen entlang der Breakout-Richtung. Wenn der Preis in den Kanal zurückkehrt, schließen Sie Positionen. Auch wenn der Preis den oberen Drehpunkt durchbricht, nehmen Sie eine lange Position ein; wenn der Preis den unteren Drehpunkt durchbricht, nehmen Sie eine kurze Position ein.

Die Strategie führt auch das Konzept der Pivot-Mittellinie ein.Wenn der Take-Profit die Mittellinie überschreitet, ist es möglich, die Hälfte der Position zu schließen, um einen gewissen Gewinn zu erzielen und das Risiko zu kontrollieren.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Lange und mittlere Zyklen bestimmen die wichtigsten Trends, während kurze Zyklen bestimmte Einträge bestimmen.

  2. Die Pivot-Mittellinie bietet die Möglichkeit, die Hälfte der Position zu schließen, um einen gewissen Gewinn zu erzielen und gleichzeitig Gewinntrades zu sichern.

  3. Durchschnittliche True Range Bands liefern klare Stop-Loss-Level.

  4. Die Strategie hat wenige Parameter, leicht zu optimieren für die besten Parameterkombinationen.

  5. Es vermeidet das Risiko falscher Ausbrüche so weit wie möglich.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Höhere Stop-Loss-Risiken bei hoher Marktvolatilität.

  2. Die mittlere Linie kann häufig bei Marktkonsolidierungen zum Stop-Loss führen.

  3. Eine falsche Parameterwahl kann zu zu wenigen oder zu häufigen Trades führen.

  4. Jüngste Drehpunktbrüche können sich als falsche Brüche erweisen.

Optimierungsrichtlinien

Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:

  1. Kombinieren Sie mehr Filter wie Volumen und Bollinger Bands, um falsche Signale zu vermeiden.

  2. Optimieren Sie Perioden von Drehpunkten und ATR, um die besten Parameterkombinationen zu finden.

  3. Setzen Sie eine Pufferzone um die mittlere Linie, um häufige Auslöser zu vermeiden.

  4. Fügen Sie entsprechende Trendfilter hinzu, um sicherzustellen, dass Sie mit den wichtigsten Trends arbeiten.

Schlussfolgerung

Im Allgemeinen ist dies eine sehr praktische Trend-Tracking-Strategie. Sie löst die häufigen Stop-Loss-Schwierigkeiten von Trendsystemen und erzielt einen risikokontrollierbaren Trendhandel. Es ist eine sehr empfehlenswerte Strategie. Mit entsprechenden Optimierungen und Verbesserungen kann ihre Leistung weiter verbessert werden.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © LonesomeTheBlue

//@version=4
strategy("Pivot Point SuperTrend [Backtest]", overlay = true)
prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50)
Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1)
Pd=input(defval = 10, title = "ATR Period", minval=1)
usecenter = input(defval = false, title="Use Center Line to Close Entry for 50%")
showpivot = input(defval = false, title="Show Pivot Points")
showcl = input(defval = false, title="Show PP Center Line")


float ph = na
float pl = na
ph := pivothigh(prd, prd)
pl := pivotlow(prd, prd)

plotshape(ph and showpivot, text="H",  style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd)
plotshape(pl and showpivot, text="L",  style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd)

float center = na
center := center[1]
float lastpp = ph ? ph : pl ? pl : na
if lastpp
    if na(center)
        center := lastpp
    else
        center := (center * 2 + lastpp) / 3

Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))

float TUp = na
float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown

linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor ,  linewidth = 2, title = "PP SuperTrend")

plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na, transp = 0)

bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1

if bsignal
    strategy.entry("Buy", true, 2, comment = "Buy")
if ssignal
    strategy.entry("Sell", false, 2, comment = "Sell")

if strategy.position_size == 2 and center > hl2 and usecenter
    strategy.close("Buy", qty_percent = 50, comment = "close buy entry for 50%")
if strategy.position_size == -2 and center < hl2 and usecenter
    strategy.close("Sell", qty_percent = 50, comment = "close sell entry for 50%")
    
if change(Trend)
    strategy.close_all()

Mehr