Quantitative Strategien basierend auf Pivot Point-Umkehrungen


Erstellungsdatum: 2024-02-20 14:22:13 zuletzt geändert: 2024-02-20 14:22:13
Kopie: 0 Klicks: 327
1
konzentrieren Sie sich auf
1166
Anhänger

Quantitative Strategien basierend auf Pivot Point-Umkehrungen

Überblick

Die Kernidee dieser Strategie ist es, mit den Pivot Points zu handeln. Es sucht nach wichtigen Pivot-Höhen und -Tiefs und handelt umgekehrt, wenn der Preis diese Punkte überschreitet.

Strategieprinzip

Die Strategie definiert zunächst die PivotHighSig () und die PivotLowSig () -Funktionen, die die Pivot-Hoch- und die Pivot-Low-Punkte finden. Beide Funktionen suchen nach den entsprechenden Pivot-Punkten auf der linken und rechten Seite.

Konkret sucht es für die Pivotal-Höhe nach mehreren aufeinanderfolgenden höheren Höhen auf der linken Seite und nach mehreren aufeinanderfolgenden niedrigeren Höhen auf der rechten Seite. So befindet sich der Pivotal-Höhepunkt in einer relativ höheren Position. Im Gegensatz dazu sucht es für die Pivotal-Tiefe nach höheren und niedrigeren Tiefen auf beiden Seiten.

Nachdem die Pivot-High-Low-Punkte gefunden wurden, wählt die Strategie die Pivot-High-Low-Punkte der Pivot weiter aus, d. h. die wichtigen Punkte in den Pivot-Punkten. Dies wird durch die Definition mehrerer historischer Variablen wie ph1, ph2 und mehrerer historischer Variablen für Pivot-High-Low-Punkte erreicht.

Schließlich wird ein Umkehrhandel durchgeführt, wenn der Preis den Mittelpunkt der Achse durchbricht.

Strategische Vorteile

Die Quantifizierungsstrategie basiert auf den Pivot Points und hat folgende Vorteile:

  1. Nutzung von Unterstützungs- und Widerstandsbereichen des Marktes, die oft als Chancenpunkte für eine Preisumkehr dienen
  2. Es ist wichtig, dass wir uns mit den wichtigsten Highs und Lows befassen, um mehrere bilaterale Transaktionen zu realisieren.
  3. Die Axialpunkte sind extremumpunkte, die deutlich hervorstechen, und die Signalstärke ist stärker, wenn sie durchbrechen.
  4. Nutzung der Achsen-Achsenpunkte, um ein zuverlässiges Signal zu erzeugen

Risiken und Lösungen

Die Strategie birgt auch einige Risiken:

  1. Die Lösung besteht darin, die Parameter für den rechten und rechten Bereich anzupassen, um eine genauere Identifizierung der Achsen zu gewährleisten.
  2. Durchbruch False Durchbruch. Die Lösung ist die Kombination von mehr Faktoren Filtersignale, wie die Kapazität, die Transmission und so weiter.

Optimierungsrichtung

Diese Strategie kann auch in folgenden Richtungen optimiert werden:

  1. Erhöhung der Stop-Loss-Strategie, um die Strategie stabiler zu machen
  2. Filterung von Signalen in Kombination mit weiteren Kennzahlen
  3. Entwicklung einer umgekehrten PRED-Strategie zur weiteren Optimierung der Hubspot-Vorhersage mit ML
  4. Hinzufügen von Parameter-Adaptionsfunktionen

Zusammenfassen

Die Strategie funktioniert insgesamt gut. Die Kernidee ist es, wichtige Eckpunkte zu finden und bei einem Durchbruch umzukehren. Durch weitere Optimierung kann die Strategie zu einem stabileren und zuverlässigeren Signal führen, was zu einem guten Ertrag führt.

Strategiequellcode
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Pivot of Pivot Reversal Strategy [QuantNomad]", shorttitle = "PoP Reversal Strategy [QN]", 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])

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])

// Pivots of pivots
ph1 = 0.0
ph2 = 0.0
ph3 = 0.0

pl1 = 0.0
pl2 = 0.0
pl3 = 0.0

pphprice = 0.0
pplprice = 0.0

ph3 := swh_cond ? nz(ph2[1]) : nz(ph3[1])
ph2 := swh_cond ? nz(ph1[1]) : nz(ph2[1])
ph1 := swh_cond ? hprice     : nz(ph1[1])

pl3 := swl_cond ? nz(pl2[1]) : nz(pl3[1])
pl2 := swl_cond ? nz(pl1[1]) : nz(pl2[1])
pl1 := swl_cond ? lprice     : nz(pl1[1])

pphprice := swh_cond and ph2 > ph1 and ph2 > ph3 ? ph2 : nz(pphprice[1])
pplprice := swl_cond and pl2 < pl1 and pl2 < pl3 ? pl2 : nz(pplprice[1])


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

if (se)
    strategy.entry("PP_RevSE", strategy.short, comment="PP_RevSE", stop=pplprice - syminfo.mintick)
    
// Plotting 
plot(lprice, color = color.red,   transp = 55)
plot(hprice, color = color.green, transp = 55)

plot(pplprice, color = color.red,   transp = 0, linewidth = 2)
plot(pphprice, color = color.green, transp = 0, linewidth = 2)