Aggressive quantitative Bottom-Snipping-Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-18 16:25:33
Tags:

img

Übersicht

Diese Strategie identifiziert kurzfristige Tiefpunkte, indem sie bei einem Abwärtstrend ein ausstehendes Volumen erkennt und bei Überverkaufspositionen Longpositionen einnimmt.

Strategieprinzipien

Wenn das Volumen 2 Standardabweichungen über dem SMA-basierten Durchschnittsvolumen übersteigt, gilt es als ausstehendes Volumen. Währenddessen zeigt ein RSI unter 30 einen Überverkaufstatus an. Wenn beide Bedingungen erfüllt sind, wird es als kurzfristiger Boden beurteilt und eine Long-Position wird sofort aufgenommen. Die Position wird nach einer bestimmten Zeit (z. B. 10 Bars) geschlossen.

Die Logik dieser Strategie ist also einfach:

  1. Berechnung der 20-bar-SMA des Volumens als Benchmark
  2. Berechnen Sie 2 Standardabweichungen von 20 bar Volumen als Schwellenwert für das ausstehende Volumen
  3. Berechnung des 20-bar-RSI zur Beurteilung des Überverkaufsstatus
  4. Wenn das Volumen den Referenzwert + 2 Standardabweichung und den RSI < 30 überschreitet, gilt als kurzfristiger Tiefpunkt
  5. Nehmen Sie die lange Position direkt am Boden ein.
  6. Schließposition nach 10 Bar automatisch

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Einfache Logik, leicht zu verstehen und zu optimieren
  2. Verwenden Sie das ausstehende Volumen, um kurzfristige Wendepunkte zu erkennen
  3. Der RSI sorgt dafür, dass nur Longs in der Überverkaufszone getätigt werden, und vermeidet es, die Spitzen zu jagen.
  4. Automatischer Stop-Loss maximiert die Risikoabweichung am Boden

Zusammenfassend lässt sich sagen, dass diese Strategie die Vorteile von Volumen-Breakouts nutzt, um Trendumkehrungen zu erfassen und gleichzeitig Risiken streng zu kontrollieren.

Risikoanalyse

Zu den wichtigsten Risiken dieser Strategie gehören:

  1. Volumen und RSI können falsche Breakout-Signale erzeugen, was zu falschen Longs und Verlusten führt.
  2. Eine festgelegte Stop-Loss-Zeit kann bei einer erheblichen Marktumkehr den Stop-Loss nicht oder zu früh beenden.
  3. Eine suboptimale Parameter-Tuning kann zu zu wenig oder zu vielen Signalen führen.

Um diesen Risiken entgegenzuwirken, kann die Optimierung in folgenden Aspekten erfolgen:

  1. Hinzufügen anderer Indikatoren, um falsche Ausbruchssignale zu filtern.
  2. Anstelle einer festen Anzahl von Balken einen dynamischen Stop-Loss setzen.
  3. Umfassende Parameterprüfung und -einrichtung zur Gewährleistung der Robustheit.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Hinzufügen von ML-Modell zur Beurteilung der Zuverlässigkeit von Volumen-Breakouts, um falsche Signale zu vermeiden
  2. Hinzufügen eines anpassungsfähigen Stop-Loss-Mechanismus anstelle von festen Balken
  3. Multidimensionale Datensatzoptimierung für ausstehende Volumenparameter
  4. Erhöhung der Genauigkeit von überverkauften Signalen mittels ML-Screening
  5. Einbeziehung von Stimmungsanalysen zur Verbesserung von Alpha

Durch die Einführung fortgeschrittener Techniken können die Stabilität, das Alpha- und das Sharpe-Verhältnis erheblich verbessert werden.

Schlussfolgerung

Zusammenfassend ist dies eine sehr einfache, unkomplizierte und logische kurzfristige Breakout-Strategie. Durch die korrekte Nutzung von Volumen zur Erkennung von Trendumkehrungen und die strikte Kontrolle von Risiken kann eine solide Performance erzielt werden. Es gibt jedoch Risiken für falsche Signale und Parameterrobustheit. Diese können schrittweise durch die Einführung fortschrittlicher Techniken zur weiteren Verbesserung der Strategie behoben werden.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 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/
// © footlz

//@version=4
strategy("Bottom catch strategy", overlay=true)

v_len = input(20, title="Volume SMA Length")
mult = input(2)
rsi_len = input(20, title="RSI Length")
oversold = input(30, title="Oversold")
close_time = input(10, title="Close After")

v = volume
basis = sma(v, v_len)
dev = mult * stdev(v, v_len)
upper_volume = basis + dev

rsi = rsi(close, rsi_len)

long = v > upper_volume and rsi < oversold

strategy.entry("Long", true, when=long)

passed_time = 0.0
if strategy.position_size != 0
    passed_time := 1
else
    passed_time := 0

if strategy.position_size != 0 and strategy.position_size[1] != 0
    passed_time := passed_time[1] + 1

if passed_time >= close_time
    strategy.close_all()

// If want to enable plot, change overlay=false.
v_color = close >= close[1] ? color.new(#3eb370, 0) : color.new(#e9546b, 0)

// plot(v, title="volume", color=v_color, style=plot.style_columns)
// plot(upper_volume, title="Threshold", color=color.aqua)

Mehr