Strategie zur Umkehrung bedeutender Pivotpoints

Schriftsteller:ChaoZhang, Datum: 2024-01-29 14:58:15
Tags:

img

Übersicht

Diese Strategie optimiert die traditionelle Umkehrstrategie der Drehpunkte, indem sie den ATR berechnet und die ATR-Filter so einstellt, dass unbedeutende Drehpunkte beseitigt und nur wirklich signifikante gehandelt werden.

Strategie Logik

Die Kernlogik besteht darin, signifikante Spitzen- und Tiefpunktpunkte zu identifizieren.

  1. Berechnen Sie ATR und setzen Sie den ATR-Filterfaktor atr_mult.
  2. Überqueren Sie eine bestimmte Anzahl von Balken auf der linken Seite (von leftBars eingestellt), wenn der Spitzenpivot höher ist als jeder hohe + ATR*atr_mult auf der linken Seite, ist der Pivot ungültig.
  3. Überqueren Sie eine bestimmte Anzahl von Balken auf der rechten Seite (eingestellt durch rightBars), wenn der Spitzenpivot höher ist als jeder hohe + ATR*atr_mult auf der rechten Seite, ist der Pivot ungültig.
  4. Wird der Spitzenpivot nach den vorstehenden Prüfungen weiterhin gültig, so wird er als wichtiger Spitzenpivot zurückgegeben.

Die Logik für die Berechnung der signifikanten Trough-Pivots ist ähnlich.

Nach Erhalt der signifikanten Pivots, gehen Sie kurz, wenn der Preis einen wichtigen Spitzenpivot bricht, und gehen Sie lang, wenn er einen wichtigen Tiefpivot bricht.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Der ATR- und atr_mult-Filter kann unbedeutende Schwankungen beseitigen und nur wirklich bedeutende Pivots handeln und unnötige Trades vermeiden.
  2. Der dynamische ATR-Parameter kann die Handelsspanne in volatilen Märkten automatisch anpassen und so einen Überhandel verhindern.
  3. Die Pivot-Point-Umkehrung selbst hat eine relativ hohe Gewinnrate und Rentabilität.

Risikoanalyse

Die wichtigsten Risiken sind:

  1. Bei unzulänglichen ATR-Parametern können zu viele gültige Trades ausgefiltert werden. Wenn der ATR zu hoch ist, können gültige Pivots eliminiert werden.
  2. Das Risiko, eingeschlossen zu werden, besteht immer noch. Es muss ein Stop-Loss gesetzt werden, um das Risiko zu kontrollieren.
  3. Umkehrstrategien sind auf die Transaktionskosten angepaßt, daher sollten angemessene Stop-Loss- und Take-Profit-Strategie festgelegt werden.

Um die oben genannten Risiken zu kontrollieren, sollten folgende Aspekte optimiert werden:

  1. Optimierung der ATR-Parameter, um ausreichende Handelsmöglichkeiten zu gewährleisten.
  2. Stellen Sie angemessene Stop-Loss- und Take-Profit-Raten fest.
  3. Anpassung der Positionsgröße zur Verringerung der Auswirkungen auf die Transaktionskosten.

Optimierungsrichtlinien

Weitere Optimierungsrichtungen sind:

  1. Kombination mit anderen Indikatoren zur Bestimmung des Marktregimes, um Handelsumkehrungen in Trendmärkten zu vermeiden.

  2. Methoden wie genetische Algorithmen, zufälliger Wald können verwendet werden, um optimale Parametermengen zu finden.

  3. Training-Modelle, die quantitative Daten verwenden, um den optimalen ATR-Bereich zu finden.

  4. Überlegen Sie, ob Sie mit anderen Strategien kombinieren können, indem Sie die Stärken verschiedener Strategientypen nutzen.

Schlussfolgerung

Diese signifikante Pivot-Umkehrstrategie filtert bedeutungslose kleine Schwankungen durch die Berechnung von ATR und das Einstellen von Filtern aus. Nur Handelsumkehrungen bei signifikanten Pivots können die Rentabilität der Strategie effektiv verbessern. In der Zwischenzeit erhöht sie auch die Schwierigkeit der Optimierung von Parametern. Die optimalen Parameter müssen durch umfassende Berücksichtigung von ATR-Bereich, Stop-Loss-/Take-Profit-Verhältnissen usw. gefunden werden. Wenn sie gründlich optimiert wird, kann sie zu einer hoch effizienten und stabilen kurzfristigen Handelsstrategie 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"}]
*/

//@version=4
strategy("QuantNomad - Significant Pivot Reversal Strategy", shorttitle = "SPPS", overlay=true)

// Inputs 
leftBars   = input(4,   title = 'PP Left Bars')
rightBars  = input(2,   title = 'PP Right Bars')
atr_length = input(14,  title = 'ATR Length')
atr_mult   = input(0.1, title = 'ATR Mult')

// Pivot High Significant Function
pivotHighSig(left, right) =>
    pp_ok = true
    atr   = atr(atr_length)
    
    for i = 1 to left
        if (high[right] < high[right+i] + atr * atr_mult)
            pp_ok := false
    for i = 0 to right-1
        if (high[right] < high[i] + atr * atr_mult)
            pp_ok := false
    
    pp_ok ? high[right] : na

// Pivot Low Significant Function
pivotLowSig(left, right) =>
    pp_ok = true
    atr   = atr(atr_length)
    
    for i = 1 to left
        if (low[right] > low[right+i] - atr * atr_mult)
            pp_ok := false
    for i = 0 to right-1
        if (low[right] > low[i] - atr * atr_mult)
            pp_ok := false
    
    pp_ok ? low[right] : na


swh = pivotHighSig(leftBars, rightBars)
swl = pivotLowSig (leftBars, rightBars)

swh_cond = not na(swh)

hprice = 0.0
hprice := swh_cond ? swh : hprice[1]

le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])

if (le)
    strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick)

swl_cond = not na(swl)

lprice = 0.0
lprice := swl_cond ? swl : lprice[1]


se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])

if (se)
    strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)

Mehr