VWAP-basierte Trendfolgestrategie


Erstellungsdatum: 2024-02-29 15:26:56 zuletzt geändert: 2024-02-29 15:26:56
Kopie: 0 Klicks: 944
1
konzentrieren Sie sich auf
1617
Anhänger

VWAP-basierte Trendfolgestrategie

Überblick

Die Strategie basiert auf VWAP und EMA als Indikatoren, um die Richtung des Trends zu bestimmen, wobei VWAP den typischen Preis und EMA200 den mittleren langen Trend darstellt. Händler, die über VWAP und EMA200 handeln, sind im Trend, wenn der Preis über VWAP und EMA200 liegt.

Strategieprinzip

Die Kernlogik der Strategie besteht darin, Preistrends anhand von VWAP und EMA zu bestimmen.

  • Der VWAP ist ein typischer Preis, der die durchschnittlichen Kosten der Marktteilnehmer widerspiegelt. Wenn der Preis höher als der VWAP ist, bedeutet dies, dass die Macht des Käufers erhöht ist. Wenn der Preis niedriger als der VWAP ist, bedeutet dies, dass die Macht des Verkäufers erhöht ist.
  • Die EMA200 steht für die Trendrichtung der mittleren Längenlinie des Preises. Die Preise oberhalb der EMA200 stehen für die Besserung der mittleren Längenlinie und sollten mehr getan werden; die Preise unterhalb der EMA200 stehen für die Abnahme der mittleren Längenlinie und sollten leer sein.

Die Strategie beginnt also damit, zu beurteilen, ob der Preis gleichzeitig über dem VWAP und dem EMA200 liegt, und wenn ja, dann mehr; wenn der Preis gleichzeitig unter dem VWAP und dem EMA200 liegt, dann nichts. Wie man sehen kann, stützt sich die Strategie hauptsächlich auf den VWAP und den EMA, um Kauf- und Verkaufsschlüsse zu treffen.

Darüber hinaus hat die Strategie auch einen Stop-Loss-Punkt festgelegt. Ein Stop-Loss nach dem Übertritt wurde auf 3,5% des Eintrittspreises gesetzt, ein Stop-Loss auf 1,4%; ein Stop-Loss nach dem Leerlauf wurde auf 2,5% des Eintrittspreises gesetzt, ein Stop-Loss auf 0,9% gesetzt. Dies verhindert übermäßige Verluste.

Strategische Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass Trends mit VWAP und EMA sehr zuverlässig beurteilt werden können.

  • VWAP ist ein sehr guter Indikator für Trends, da er die durchschnittlichen Kosten der Marktteilnehmer genau abbildet.
  • Die EMA 200 ist ein sehr guter Indikator für die langen und mittleren Trends und kann sehr genau und zuverlässig die Richtung der großen Trends bestimmen.

Daher ist die Kombination von VWAP und EMA sehr zuverlässig, um Trends zu beurteilen. Wenn die beiden Trends übereinstimmen, ist die Erfolgsrate der Operation hoch.

Darüber hinaus können Sie durch die Einrichtung eines Stop-Loss-Punktes zu hohe Einzelschäden vermeiden.

Strategisches Risiko

Das Hauptrisiko dieser Strategie besteht darin, dass VWAP und EMA falsche Signale abgeben könnten.

  • Bei starken Marktschwankungen kann der Preis kurzfristig von VWAP abweichen, was ein falsches Signal aussendet.
  • Die EMA kann die Preisveränderungen hinter sich lassen, wenn ein neuer Trend erst anfängt, so dass die Strategie den besten Einstiegsmoment verpasst.

Darüber hinaus kann die Stop-Loss-Einstellung unzureichend sein, und es besteht das Risiko, dass ein einzelner Verlust zu groß ist.

Um die oben genannten Probleme zu lösen, können wir die Parameter-Einstellungen von VWAP und EMA optimieren, so dass sie besser den Beginn eines neuen Trends erkennen können. Zudem können wir einen adaptiven Stop-Loss einstellen, der den Stop-Loss an die Preisschwankungen anpasst.

Richtung der Strategieoptimierung

Die Strategie kann vor allem in folgenden Bereichen optimiert werden:

  • Optimierung der VWAP-Parameter, um eine Kombination von VWAP-Parametern zu finden, die eine stabilere Tendenz beurteilt.
  • Optimierung der EMA-Zyklen, um EMA-Parameter zu finden, die Trends besser bestimmen.
  • Hinzufügen von Indikatoren für andere Beurteilungs-Trends, wie Brinband, KDJ, in Kombination mit VWAP und EMA, um die Beurteilungsgenauigkeit zu verbessern.
  • Setzen Sie die Stop-Loss-Anpassung. Die Stop-Loss-Ebene wird nach bestimmten Regeln an die Preisschwankungen angepasst, um zu verhindern, dass die Stop-Loss-Ebene über der Steigung liegt.
  • In Kombination mit der Positionsverwaltung. Die Positionsgröße wird anhand von Rücknahmen und Verlusten angepasst, um das Gesamtrisiko der Strategie zu kontrollieren.

Zusammenfassen

Die Strategie insgesamt ist eine sehr zuverlässige Trend-Follow-Strategie. Sie nutzt VWAP und EMA, um die Richtung der Tendenz zu bestimmen. Die Idee ist klar und einfach, und die Erfolgswahrscheinlichkeit des Eintritts ist hoch, wenn beide einheitliche Signale senden.

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

//26m Binance BTCUSDTPERP
//@version=4
strategy("VWAP Trend Follower", initial_capital=100, overlay=true, commission_type=strategy.commission.percent, commission_value=0.04, default_qty_type = strategy.percent_of_equity, default_qty_value = 90, currency = currency.USD )

/// INITIALISE STRATEGY ///
price=close[1]
vprice=vwap(price)
trend=ema(price, 200)

/// RISK MANAGEMENT ///
long_tp_inp = input(3.5, title='Long Take Profit %',step=0.1)/100
long_sl_inp = input(1.4, title='Long Stop Loss %',step=0.1)/100
short_tp_inp = input(2.5, title='Short Take Profit %',step=0.1)/100
short_sl_inp = input(0.9, title='Short Stop Loss %',step=0.1)/100
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
short_take_level = strategy.position_avg_price * (1 - short_tp_inp)
short_stop_level = strategy.position_avg_price * (1 + short_sl_inp)
//long_trailing = input(5, title='Trailing Stop Long',step=0.1) / 100
//short_trailing = input(5, title='Trailing Stop short',step=0.1) / 100

/// STRATEGY CONDITIONS ///
aLong= price > trend and price > vprice
entry_long = aLong and aLong[2] and aLong[1]
aShort= price < trend and price < vprice 
entry_short = aShort and aShort[2] and aShort[1]
//exit_long = 
//exit_short =
//entry_price_long=valuewhen(entry_long,close,0)
//entry_price_short=valuewhen(entry_short,close,0)

/// PLOTTING ///
plot(vprice,                color=#5875E1, linewidth=2)
plot(trend,                 color=#D965E1, linewidth=1)
plotshape(series=aLong,     color=#71E181,style=shape.labelup)
plotshape(series=aShort,    color=#E18BA5,style=shape.labeldown)
//plot(long_take_level,     color=#00E676, linewidth=2)
//plot(long_stop_level,     color=#FF5252, linewidth=1)
//plot(short_take_level,    color=#4CAF50, linewidth=2)
//plot(short_stop_level,    color=#FF5252, linewidth=1)

/// PERIOD ///
testStartYear   = input(2019, "Backtest Start Year")
testStartMonth  = input(1, "Backtest Start Month")
testStartDay    = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear    = input(2020, "Backtest Stop Year")
testStopMonth   = input(12, "Backtest Stop Month")
testStopDay     = input(31, "Backtest Stop Day")
testPeriodStop  = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true

//// STRATEGY EXECUTION ////

if testPeriod()
    if strategy.position_size == 0 or strategy.position_size > 0
        strategy.entry(id="Long", long=true, when=entry_long, comment="Long")
        strategy.exit("Take Profit/ Stop Loss","Long", limit=long_take_level, stop=long_stop_level,comment="Exit Long")//,trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
//        strategy.close(id="Long", when=exit_long, comment = "Exit Long")

    if strategy.position_size == 0 or strategy.position_size < 0
        strategy.entry(id="Short", long=false, when=entry_short, comment = "Short")
        strategy.exit("Take Profit/ Stop Loss","Short", limit=short_take_level , stop=short_stop_level,comment = "Exit Short")//, trail_points=entry_price_short * short_trailing / syminfo.mintick, trail_offset=entry_price_short * short_trailing / syminfo.mintick)
//        strategy.close(id="Short", when=exit_short, comment = "Exit Short")