Die Ressourcen sind geladen. Beförderung...

VWAP-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-04-29 14:20:39
Tags:EMAVWAP

img

Übersicht

Diese Strategie ist eine Handelsstrategie, die auf EMA, VWAP und Volumen basiert. Die Hauptidee besteht darin, Öffnungssignale zu generieren, wenn der Schlusskurs durch VWAP und EMA bricht und das Handelsvolumen innerhalb einer bestimmten Handelszeit größer ist als das vorherige Candles Volumen. Es setzt auch Stop Loss und Take Profit sowie Bedingungen für das Schließen von Positionen innerhalb einer bestimmten Zeitspanne fest.

Strategieprinzip

  1. Berechnung der Indikatoren EMA und VWAP.
  2. Bestimmen Sie, ob es innerhalb der angegebenen Handelszeit erfolgt.
  3. Long-Eintrittsbedingung: Schlusskurs größer als VWAP und EMA, Volumen größer als vorherige Kerze und Schlusskurs größer als Eröffnungskurs.
  4. Kurze Einstiegsbedingung: Schlusskurs kleiner als VWAP und EMA, Volumen größer als die vorherige Kerze und Eröffnungskurs größer als Schlusskurs.
  5. Long-Exit-Bedingung: der Schlusskurs fällt unter den VWAP- oder EMA-Wert, erreicht Stop-Loss- oder Take-Profit-Niveaus oder erreicht den angegebenen Exitzeitpunkt.
  6. Kurze Ausgangszustand: Schlusskurs überschreitet den VWAP oder die EMA, erreicht Stop-Loss- oder Take-Profit-Niveaus oder erreicht den angegebenen Ausgangszeitraum.

Strategische Vorteile

  1. Es berücksichtigt gleichzeitig die Preisentwicklung (EMA), den Marktwert (VWAP) und das Handelsvolumen, wodurch die Eröffnungsbedingungen strenger werden, was dazu beiträgt, die Gewinnrate der Strategie zu verbessern.
  2. Es setzt Stop-Loss und Take-Profit, um das Risiko zu kontrollieren und Gewinne zu erzielen.
  3. Es beschränkt die Handelszeit und die Ausgangszeiten, um Risiken außerhalb der Handelszeiten und der Übernachtung zu vermeiden.

Strategische Risiken

  1. Die Strategie kann in einem volatilen Markt nicht gut funktionieren, da häufige Durchbrüche und Rückgänge zu mehreren Eröffnungen und Schließungen führen können, was zu erhöhten Transaktionskosten und Verschiebungen führt.
  2. Der Stop-Loss-Level ist festgesetzt, der bei starken Marktschwankungen vorzeitig ausgelöst werden kann, wodurch die Strategie erhebliche Verluste erleidet.
  3. Die Strategie berücksichtigt nicht die tatsächliche Markttiefe und den Auftragsstatus, die bei realen Handelsgeschäften mit Problemen wie Ausrutschen und Eröffnungsfehlern konfrontiert sein können.

Strategieoptimierung

  1. Es sollten weitere Filterbedingungen wie ATR- und RSI-Indikatoren hinzugefügt werden, um die Stärke des Trends und der Dynamik weiter zu bestätigen.
  2. Die Stop-Loss- und Take-Profit-Levels können dynamisch festgelegt werden, z. B. nach ATR oder Prozentsatz-Stop-Loss, um sich an die unterschiedlichen Marktvolatilitäten anzupassen.
  3. Optimierung von Parametern wie EMA-Länge, VWAP-Quelle, Stop-Loss- und Take-Profit-Niveaus usw., um die Stabilität und Rentabilität der Strategie zu verbessern.
  4. Um das Gesamtrisiko zu kontrollieren, sollten Positionsmanagement wie die Anpassung des Eröffnungsvolumens an die Volatilität oder die Kapitalquote in Betracht gezogen werden.

Zusammenfassung

Durch die umfassende Berücksichtigung von Preistrends, Marktwert und Handelsvolumen handelt diese Strategie innerhalb einer bestimmten Handelszeit. Obwohl Stop-Loss, Take-Profit und begrenzte Handelszeit festgelegt sind, muss sie dennoch auf Risiken wie volatile Märkte und Rutsch bei der tatsächlichen Anwendung achten. In Zukunft können die Robustheit und Rentabilität der Strategie verbessert werden, indem mehr Filterbedingungen hinzugefügt werden, Parameter optimiert und Positionen verwaltet werden.


/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true)

// Inputs
emaLength = input.int(21, title="EMA Length")
vwapSource = input.source(defval=hlc3, title='VWAP Source')
stopLossPoints = input.float(100, title="Stop Loss (points)")
targetPoints = input.float(200, title="Target (points)")
session = input("0950-1430", title='Only take entry during')
exit = input(defval='1515-1525', title='Exit Trade')

tradein = not na(time(timeframe.period, session))
exit_time = not na(time(timeframe.period, exit))

// Calculate indicators
ema = ta.ema(close, emaLength)
vwapValue = ta.vwap(vwapSource)

// Entry Conditions
longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein
shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein

// Exit Conditions
longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time
shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time

// Plotting
plot(vwapValue, color=color.blue, title="VWAP")
plot(ema, color=color.green, title="EMA")

// Strategy
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if longExitCondition
    strategy.close('Long', immediately=true)

if shortExitCondition
    strategy.close("Short", immediately=true)


Verwandt

Mehr