Abweichungsbasierte Trendverfolgungsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-22 11:51:28
Tags:

img

Übersicht

Diese Strategie identifiziert und verfolgt Trends auf der Grundlage von Preis-Abweichungsindikatoren in Kombination mit Fibonacci-Retracement-Bereichen.

Strategie Logik

Die Strategie verwendet VWAP als Mittelpunktlinie des Preises. Anschließend werden die oberen und unteren Bands von 1.618 und 2.618 Standardabweichung der Preisschwankungen berechnet. Ein langes Signal wird erzeugt, wenn der Preis durch das untere Band nach oben bricht. Ein kurzes Signal wird erzeugt, wenn der Preis durch das obere Band nach unten bricht.

Die Stop-Loss-EXIT-Signale nach Eröffnung von Long- oder Short-Positionen sind: Die Stop-Loss-Linie für Long-Positionen ist das untere Band und für Short-Positionen das obere Band.

Sie umfasst insbesondere folgende Schritte:

  1. Berechnen Sie den VWAP als Mittelpunkt des Preises

  2. Berechnung der Standardabweichung sd des Preises als Indikator für die Preisvolatilität

  3. Berechnen Sie die oberen und unteren Bands basierend auf sd. Die oberen Bands sind VWAP + 1.618sd und VWAP + 2.618sd. Die unteren Bands sind VWAP - 1,618sd und VWAP - 2.618s.

  4. Ein langes Signal wird erzeugt, wenn der Preis das untere Band von 1,618 nach oben durchbricht. Ein kurzes Signal wird erzeugt, wenn der Preis das obere Band von 1,618 nach unten durchbricht.

  5. Langer Stop-Loss-EXIT: Preisbrüche durch das untere Band von 2,618; Kurzer Stop-Loss-EXIT: Preisbrüche durch das obere Band von 2,618.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Die Indikatoren für Preisabweichungen können die Preisentwicklung wirksam bestimmen und nachverfolgen.

  2. Fibonacci-Retracement-Bereiche machen Ein- und Stop-Loss-Ausgänge klarer

  3. VWAP als Mittelweg des Preises erhöht auch den Referenzwert des Indikators

  4. Die Parameter können an unterschiedliche Produkte und Zeitrahmen angepasst werden

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Es kann bei Trendumkehrungen größere Verluste entstehen

  2. Fehlende Parameter-Einstellungen können sich auch auf die Strategieleistung auswirken

  3. Bei starken Kursschwankungen besteht ein höheres Stop-Loss-Risiko

Gegenmaßnahmen:

  1. angemessene Verkürzung der Haltedauer und rechtzeitige Verlustbehebung

  2. Optimieren von Parametern, um die beste Parameterkombination zu finden

  3. Steigerung der Positionsgrößenverwaltung zur Kontrolle einzelner Verluste

Optimierungsrichtlinien

Die Strategie kann auch in folgenden Bereichen optimiert werden:

  1. Einbeziehung von Trendindikatoren zur Vermeidung des Gegentrendhandels

  2. Hinzufügen von Positionsgrößenmanagementmechanismen

  3. Optimierung der Parameter-Einstellungen

  4. Backtest und Optimierung über mehrere Zeitrahmen

Zusammenfassung

Diese Strategie identifiziert und verfolgt Trends basierend auf dem Preis-Abweichungskonzept in Kombination mit VWAP und Fibonacci-Standard-Abweichungsbändern. Im Vergleich zu einzelnen Indikatoren wie gleitenden Durchschnitten hat diese Strategie klarere Urteile und Risikokontrolle. Durch Parameteranpassung und -optimierung kann die Strategie an verschiedene Produkte und Zeitrahmen angepasst werden, um eine bessere Leistung zu erzielen.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
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/
// © Mysteriown

//@version=4
strategy(title="VWAP + Fibo Dev Extensions Strategy", overlay=true, pyramiding=5, commission_value=0.08)

// -------------------------------------
// ------- Inputs Fibos Values ---------
// -------------------------------------

fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
reso = input(title="Resolution VWAP", type=input.resolution, defval="W")
dev = input(title="Deviation value min.", type=input.integer, defval=150)


// -------------------------------------
// -------- VWAP Calculations ----------
// -------------------------------------

t = time(reso)
debut = na(t[1]) or t > t[1]

addsource = hlc3 * volume
addvol = volume
addsource := debut ? addsource : addsource + addsource[1]
addvol := debut ? addvol : addvol + addvol[1]
VWAP = addsource / addvol

sn = 0.0
sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
sd = sqrt(sn / addvol)

Fibp2 = VWAP + fib2 * sd
Fibp1 = VWAP + fib1 * sd
Fibm1 = VWAP - fib1 * sd
Fibm2 = VWAP - fib2 * sd


// -------------------------------------
// -------------- Plots ----------------
// -------------------------------------

plot(VWAP, title="VWAP", color=color.orange)
pFibp2 = plot(Fibp2, color=color.red)
pFibp1 = plot(Fibp1, color=color.red)
pFibm1 = plot(Fibm1, color=color.lime)
pFibm2 = plot(Fibm2, color=color.lime)

fill(pFibp2,pFibp1, color.red)
fill(pFibm2,pFibm1, color.lime)


// -------------------------------------
// ------------ Positions --------------
// -------------------------------------

bull = crossunder(low[1],Fibm1[1]) and low[1]>=Fibm2[1] and low>Fibm2 and low<Fibm1 and sd>dev
bear = crossover(high[1],Fibp1[1]) and high[1]<=Fibp2[1] and high<Fibp2 and high>Fibp1 and sd>dev

//plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
//plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)


// -------------------------------------
// --------- Strategy Orders -----------
// -------------------------------------

strategy.entry("Long", true, when = bull)
strategy.close("Long", when = crossover(high,VWAP) or crossunder(low,Fibm2))

strategy.entry("Short", false, when = bear)
strategy.close("Short", when = crossunder(low,VWAP) or crossover(high,Fibp2))

Mehr