Dynamische Long- und Short-Stop-Profit- und Stop-Loss-Strategie basierend auf VWAP und periodenübergreifenden Signalen


Erstellungsdatum: 2024-03-08 17:37:21 zuletzt geändert: 2024-03-08 17:37:21
Kopie: 7 Klicks: 693
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Long- und Short-Stop-Profit- und Stop-Loss-Strategie basierend auf VWAP und periodenübergreifenden Signalen

Überblick

Die Strategie nutzt den VWAP der Tageslinie als Signal für Ein- und Ausgänge. Wenn der Schlusskurs den VWAP durchschreitet, wird ein Plus ausgelöst, der Stop-Loss wird auf das vorherige K-Line-Tief unter dem VWAP gesetzt, und der Zielpreis wird 3 Punkte über dem Eröffnungspreis gesetzt. Wenn der Schlusskurs den VWAP durchschreitet, wird ein Minus ausgelöst, der Stop-Loss wird auf das vorherige K-Line-Hoch über dem VWAP gesetzt, und der Zielpreis wird 3 Punkte unter dem Eröffnungspreis gesetzt.

Strategieprinzip

  1. Die VWAP-Daten der Tageszeiten dienen als Grundlage für Trendbeurteilungen und Handelssignale.
  2. Beurteilen Sie, ob der aktuelle Schlusskurs die VWAP über- oder überschreitet, als Auslöser für Über- bzw. Überschreitung.
  3. Wenn der letzte K-Line-Low unter VWAP liegt, wird er als Stop-Loss verwendet, ansonsten wird der VWAP direkt als Stop-Loss verwendet; der Default ist umgekehrt.
  4. Nach dem Aufschlag werden jeweils drei feste Stopps eingestellt.
  5. Die Strategie läuft so lange, bis ein Rückwärtssignal ausgelöst wird, um die Position zu platzieren und eine neue Position zu eröffnen.

Durch die Beurteilung von Trends durch VWAP-Daten über einen Zeitraum hinweg und die Nutzung von dynamischen Stopps und Fixed-Point-Stopps kann die Trendentwicklung effektiv erfasst, das Rücknahmerisiko kontrolliert und die Gewinne rechtzeitig gesperrt werden.

Analyse der Stärken

  1. Einfach und effektiv: Die Strategie ist klar, nur mit einem Indikator von VWAP können Trends beurteilt und Signale ausgelöst werden, einfach zu implementieren und zu optimieren.
  2. Dynamische Stop-Loss: Die Stop-Loss-Einstellung basiert auf den Höhen und Tiefen der vorherigen K-Linie, um besser an Marktschwankungen anzupassen und das Risiko zu verringern.
  3. Fixed-Point-Stopp: Setzen Sie den Zielpreis auf eine feste Punktzahl, um die Gewinne rechtzeitig zu sperren und die Gewinnwiedergabe zu vermeiden.
  4. Pünktliche Stop-Loss-Strategie: Die Strategie wird sofort platziert, wenn ein Rückschlagsignal ausgelöst wird, ohne zusätzliche Verluste für bereits profitable Positionen zu verursachen, und eröffnet neue Positionen, um neue Trends zu erfassen.

Risikoanalyse

  1. Parameteroptimierung: Die Strategie verwendet die festen 3 Punkte als Stopps, die in der Praxis optimiert werden müssen, um die besten Parameter für verschiedene Kennzahlen und Marktmerkmale zu wählen.
  2. Schwankungen: Häufige Ein- und Ausgänge können zu höheren Transaktionskosten führen, die sich auf die Erträge auswirken.
  3. Trendbeständigkeit: Die Strategie hängt von der Trendsituation ab. Wenn sich der Markt in einer Zone befindet, in der es zu Schwankungen kommt, oder wenn die Trendbeständigkeit schlechter ist, kann es zu mehr Handelssignalen kommen, was zu einem höheren Risiko führt.

Optimierungsrichtung

  1. Trendfilter: Zusätzliche Trendindikatoren wie beispielsweise Moving Averages und MACDs werden verwendet, um Trends zweimal zu bestätigen und die Signalsicherheit zu erhöhen.
  2. Dynamische Stopps: Die Anzahl der Stopps wird dynamisch angepasst, um den Markt besser anzupassen.
  3. Positionsverwaltung: Die Positionsgröße für jeden Handel wird dynamisch angepasst, abhängig von Faktoren wie dem Kontovermögen und den Risikopräferenzen.
  4. Die Wahl des Handelszeitraums: Die Wahl des optimalen Handelszeitraums basierend auf den Merkmalen des Signals und der Handelsaktivität erhöht die Effizienz der Strategie.

Zusammenfassen

Die Strategie nutzt die VWAP-Daten über den Zeitraum, um Trends zu beurteilen und Signale auszulösen. Die Strategie ist eine einfache und effektive Quantitative Trading-Strategie, um Risiken zu kontrollieren und Gewinne zu sichern. Durch die Optimierung von Trendfilterung, Dynamischen Stop, Positionsmanagement und Handelszeitoptimierung können die Stabilität und die Ertragspotenziale der Strategie weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2024-03-06 00:00:00
end: 2024-03-07 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=1000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)
// fastEMA = ta.ema(close, 24)
// slowEMA = ta.ema(close, 200)
// Higher Time Frame
float sl = na
float tgt = na
posSize = 1
vwap_1d = request.security(syminfo.tickerid, "1D", ta.vwap(close))
// plot(vwap_1d)

// To avoid differences on historical and realtime bars, you can use this technique, which only returns a value from the higher timeframe on the bar after it completes:
// indexHighTF = barstate.isrealtime ? 1 : 0
// indexCurrTF = barstate.isrealtime ? 0 : 1
// nonRepaintingVWAP = request.security(syminfo.tickerid, "1D", close[indexHighTF])[indexCurrTF]
// plot(nonRepaintingVWAP, "Non-repainting VWAP")

enterLong = ta.crossover(close, vwap_1d)
exitLong  = ta.crossunder(close, vwap_1d)

enterShort = ta.crossunder(close, vwap_1d)
exitShort  = ta.crossover(close, vwap_1d)

if enterLong
    sl := low[1]>vwap_1d ?low[1]:vwap_1d
    tgt:=close+3
    strategy.entry("EL", strategy.long, qty=posSize)
    strategy.exit('exitEL', 'EL', stop=sl, limit=tgt)
if enterShort
    sl := high[1]<vwap_1d ?high[1]:vwap_1d
    tgt := close-3
    strategy.entry("ES", strategy.short, qty=posSize)
    strategy.exit('exitES', 'ES', stop=sl, limit=tgt)

// if exitLong
//     strategy.close("EL")
// if exitShort
//     strategy.close("ES")





// goLongCondition1 = ta.crossover(close, vwap_1d)
// timePeriod = time >= timestamp(syminfo.timezone, 2021, 01, 01, 0, 0)
// notInTrade = strategy.position_size <= 0
// if goLongCondition1 and timePeriod and notInTrade
//     stopLoss = low[1]
//     takeProfit = close+3
//     strategy.entry('long', strategy.long)
//     strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)
plot(close, color=color.new(#00c510, 0))
plot(vwap_1d, color=color.new(#f05619, 0))
plot(sl, color=color.new(#fbff00, 0))
plot(tgt, color=color.new(#00e1ff, 0))