Dynamische Pivotpoint-Backtest-Strategie

Schriftsteller:ChaoZhang, Datum: 29.12.2023 15:50:57
Tags:

img

Übersicht

Diese Strategie macht Long- oder Short-Positionen basierend auf den Unterstützungs- und Widerstandsniveaus, die aus den höchsten, niedrigsten und Schlusskurs des vorherigen Handelstages berechnet werden.

Strategieprinzip

  1. Berechnen Sie die Unterstützungsstufe S1, die Widerstandsstufe R1 und den Drehpunkt vPP des laufenden Tages anhand des höchsten Preises xHigh, des niedrigsten Preises xLow und des Schlusskurses xClose des vorhergehenden Handelstages.

    vPP = (xHigh+xLow+xClose) / 3

    VR1 = vPP+(vPP-xLow)

    vS1 = vPP-(xHigh - vPP)

  2. Bestimmen Sie, ob der Preis durch vR1 oder vS1 bricht.

    Pos = iff(nahe > vR1, 1, Wenn es sich um ein VS1 handelt, ist das VS1 in der Nähe des VS1 zu finden.

  3. Possig zeichnet die tatsächliche Handelsrichtung auf. Ist der Umkehrhandel mit reverse=true aktiviert, wird das Handelssignal umgekehrt.

  4. Gehen Sie lang, wenn vR1 kaputt ist, und kurz, wenn vS1 kaputt ist, entsprechend dem Possig-Signal.

Strategische Vorteile

  1. Die Strategie nutzt dynamische Unterstützungs- und Widerstandsniveaus, um Trendbewegungen zu erfassen.
  2. Die Unterstützungs- und Widerstandsniveaus werden täglich aktualisiert und sind somit dynamisch.
  3. Sowohl lange als auch kurze Trades können an unterschiedliche Marktumgebungen angepasst werden.
  4. Die Strategielogik ist einfach und klar, sodass sie leicht verständlich und umsetzbar ist.
  5. Visualisierungen von Unterstützungs- und Widerstandsniveaus ermöglichen eine intuitive Erkennung von Trendänderungen.

Risikoanalyse

  1. Unnötige Kauf- und Verkaufssignale können ausgelöst werden, wenn der Markt im Bereich liegt.
  2. Bei extremen Trendbewegungen kann sich die durchbrochene Unterstützung/Widerstandslinie kontinuierlich ausdehnen und zu Verlusten führen.
  3. Der Drehpunkt und die Berechnung von Stützungs-/Widerstandsberechnungen sind einfach und müssen weiter optimiert werden.

Risikomanagement:

  1. Anpassung der Positionsgröße, um Einzelverluste zu begrenzen.
  2. Einstellen von Stop-Loss, um zu verhindern, dass Verluste den maximal zulässigen Betrag übersteigen.
  3. Hinzufügen von Filtern, die auf anderen Indikatoren basieren, um zu vermeiden, dass auf verschiedenen Märkten zu viel gehandelt wird.

Möglichkeiten zur Verbesserung

  1. Optimierung der Unterstützung und Widerstandsberechnung zur Verbesserung der Vorhersagbarkeit.
  2. Verwenden Sie Trend- und Dynamikindikatoren, um unnötige Trades zu vermeiden.
  3. Hinzufügen einer Stop-Loss-Strategie, um Einzel- und Maximalverluste zu kontrollieren.
  4. Nutzen Sie maschinelles Lernen zur dynamischen Optimierung von Unterstützungs-/Widerstandsniveaus.

Zusammenfassung

Diese Strategie erlaubt lange oder kurze Trades basierend auf den dynamischen Unterstützungs- und Widerstandsniveaus des Preisbruchs. Die Logik ist einfach zu verstehen und zu implementieren, während sie Trendenumkehrungen effektiv identifizieren kann. Allerdings bestehen Risiken und weitere Optimierungen mit zusätzlichen Indikatoren sind erforderlich, um zuverlässigere Handelssignale zu generieren. Insgesamt dient die Strategie als unterstützender Indikator oder grundlegender Baustein in quantitativen Handelssystemen.


//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/06/2018
// This Pivot points is calculated on the current day.
// Pivot points simply took the high, low, and closing price from the previous period and 
// divided by 3 to find the pivot. From this pivot, traders would then base their 
// calculations for three support, and three resistance levels. The calculation for the most 
// basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and 
// resistance levels.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Dynamic Pivot Point Backtest", shorttitle="Dynamic Pivot Point", overlay = true)
reverse = input(false, title="Trade reverse")
xHigh  = request.security(syminfo.tickerid,"D", high[1])
xLow   = request.security(syminfo.tickerid,"D", low[1])
xClose = request.security(syminfo.tickerid,"D", close[1])
vPP = (xHigh+xLow+xClose) / 3
vR1 = vPP+(vPP-xLow)
vS1 = vPP-(xHigh - vPP)
pos = iff(close > vR1, 1,
       iff(close < vS1, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(vS1, color=#ff0000, title="S1", style = circles, linewidth = 1)
plot(vR1, color=#009600, title="R1", style = circles, linewidth = 1)

Mehr