Handelsstrategie auf Basis von Peak-to-Peak-Muster

Schriftsteller:ChaoZhang, Datum: 2024-02-20 15:40:58
Tags:

img

Übersicht

Die Strategie heißt Peak-to-Peak-Pattern Based Trading Strategy. Sie verwendet hauptsächlich das Peak-to-Peak-Muster in Kerzenkarten, um Ein- und Ausgänge zu bestimmen.

Strategieprinzip

Die Strategie definiert steigende Spitzen (upFractal) und fallende Spitzen (downFractal), um das Spitzen-zu-Spitzen-Muster in Kerzenkarten zu identifizieren.

Insbesondere ist die Urteilslogik für steigende Spitzen: Das Hoch der aktuellen Kerzen ist das höchste der jüngsten n Kerzen, und das Hoch der nachfolgenden Kerzen übersteigt nicht das aktuelle.

Die Urteilslogik für den fallenden Spitzenwert lautet: Der Tiefpunkt der aktuellen Kerze ist der niedrigste der jüngsten n Kerzen, und der Tiefpunkt der nachfolgenden Kerzen fällt nicht unter den aktuellen.

Boole-Variablen und Schleifen werden hier verwendet, um die Beziehung zwischen vorherigen n und späteren n Kerzenhölzern hoch/niedrig und der aktuellen zu bestimmen und schließlich steigende und fallende Spitzen zu identifizieren.

Die Kernlogik dieser Strategie ist daher folgende:

  1. Identifizieren von steigenden und fallenden Spitzen
  2. Lang auf steigenden Gipfeln und kurz auf fallenden Gipfeln

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Spitzen-zu-Spitzen-Muster ist leicht zu erkennen, einfach zu bedienen
  2. Auf Basis eines technischen Musters, nicht von Fundamentaldaten beeinflusst
  3. Mögliche geringere Abzüge

Risikoanalyse

Diese Strategie birgt auch einige Risiken:

  1. Ungenaues Peak-to-Peak-Muster-Urteil, kann den besten Einstiegszeitpunkt verpassen
  2. Schwierig, einen Stop-Loss festzulegen, wenn sich der Markt heftig bewegt
  3. Verlässt sich nur auf Muster, ignoriert andere Faktoren

Gegenmaßnahmen:

  1. Anpassung der Parameter des Peak-to-Peak-Musters zur Optimierung der Logik
  2. Kombination mit anderen Indikatoren zur Bestimmung der Stop-Loss-Position
  3. Verwendung zusammen mit Fundamentalanalysen oder anderen Analysen

Optimierungsrichtlinien

Einige Richtungen zur Optimierung der Strategie:

  1. Erhöhen Sie die Optionen für die Einstellung von Parametern, um Peak-to-Peak-Muster besser zu identifizieren
  2. Hinzufügen von Stop Loss Logik
  3. Berücksichtigen Sie Handelsvolumen, Volatilität und andere Indikatoren
  4. Kombination verschiedener Zeitrahmanalysen

Zusammenfassung

Diese Strategie ist einfach zu bedienen, mit möglicherweise kleineren Drawdowns basierend auf dem Peak-to-Peak-Musterprinzip. Aber sie birgt immer noch einige Risiken und muss mit anderen Analysemethoden kombiniert werden, um ihre Leistung zu maximieren.


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

//@version=5
strategy("sanju parmar", shorttitle="sanju trading empire", overlay=true)

// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Periods", defval=2, minval=2)

// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true

for i = 1 to n
    upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
    upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
    upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
    upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
    upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
    upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4

upFractal = (upflagDownFrontier and flagUpFrontier)


// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true

for i = 1 to n
    downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
    downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
    downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
    downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
    downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
    downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4

downFractal = (downflagDownFrontier and flagDownFrontier)

plotshape(downFractal, style=shape.triangleup, location=location.belowbar, offset=-n, color=#18f523, size = size.small)
plotshape(upFractal, style=shape.triangledown, location=location.abovebar, offset=-n, color=#cf3d11, size = size.small)

// Strategy Conditions
longCondition = upFractal
shortCondition = downFractal

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
if (shortCondition)
    strategy.entry("Sell", strategy.short)


Mehr