Umkehrverfolgungsstrategie basierend auf dem Volatilitätsbandoszillator


Erstellungsdatum: 2023-11-23 13:42:03 zuletzt geändert: 2023-11-23 13:42:03
Kopie: 0 Klicks: 670
1
konzentrieren Sie sich auf
1617
Anhänger

Umkehrverfolgungsstrategie basierend auf dem Volatilitätsbandoszillator

Überblick

Diese Strategie basiert auf dem CCT Bollinger Band Oscillator, der von Steve Karnish entwickelt wurde und umgekehrten Handel durch die Identifizierung von Breakouts und Rücktritts ermöglicht.

Strategieprinzip

Die Strategie verwendet hohe Preise als Quelldaten und berechnet dann die Werte der CCT-Schwanzbandschwingung. Die Schwingungswerte schwanken zwischen 200 und 200, wobei 0 den Durchschnittspreis minus das 2-fache der Standardabweichung darstellt und 100 den Durchschnittspreis plus das 2-fache der Standardabweichung. Die Strategie erzeugt ein Handelssignal, wenn die Schwingung ihren EMA-Gehalt überschreitet oder unterhalb der EMA-Gehaltlinie durchbricht.

Analyse der Stärken

  • Die Verwendung von CCT-Streifenvibratoren mit Marktwirkung kann falsche Signale reduzieren
  • Kombination von EMA-Meanline- und Randbedingungen-Filtersignalen, um zu viele ungültige Trades während der Erschütterung zu vermeiden
  • Verlustbewältigungsmechanismen, die eine zeitnahe Verlustbewältigung bei übermäßigen Verlusten ermöglichen

Risikoanalyse

  • Der CCT-Schwanz erzeugt selbst eine gewisse Verzögerung und verpasst somit den optimalen Zeitpunkt für eine Preisumkehr
  • Übergroße Margin- und kurze EMA-Zyklen erhöhen die Handelsfrequenz und das Risiko
  • Die Rücknahme einer zu lockeren Stop-Loss-Einstellung erhöht die Gefahr von Verlusten.

Risikokontrollmethoden:

  • Anpassung der EMA-Durchschnittsphase mit einem Filter mit längerer Periode
  • Angemessene Anpassung der Margen zur Abwägung von Risiken und Erträgen
  • Verringerung des Positionsanteils zur Kontrolle von Einzelschäden
  • Reduzieren Sie den Umfang der Rücknahme und beschleunigen Sie die Stop-Loss-Rate

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Ersetzen Sie andere Volatilitätsindikatoren, wie die Bollinger Bands, die Keltner Kanäle usw., um den Kauf- und Verkaufspunkt zu bestimmen.
  2. Zusätzliche Filterindikatoren wie MACD, RSI usw. werden hinzugefügt, um die Zuverlässigkeit der Handelssignale zu gewährleisten
  3. Automatische Optimierung von Parametern wie EMA-Perioden, Grenzwerte usw. mit Hilfe von Machine Learning-Algorithmen
  4. Erhöhung der Positionsmanagement-Mechanismen, wie z. B. Fixed-Ratio-Positions, Martingale, etc., um das Trading-Risiko zu kontrollieren
  5. Optimierung der Rücknahme-Stoppmechanismen, unter Verwendung von Schwankungs-Stopp oder ATR-Stopp

Zusammenfassen

Diese Strategie ist insgesamt eine quantitative Handelsstrategie, die auf der Grundlage von CCT-Schwankbandindikatoren für die Preisumkehr entscheidet. Sie hat einige Vorteile, aber es gibt auch Raum für Verbesserungen. Die Stabilität und Profitabilität der Strategie können durch Parameteroptimierung, Erhöhung der Filterindikatoren, Verwendung von Feature Engineering und Einführung von Machine Learning weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-17 11:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// This strategy is based on the CCT Bollinger Band Oscillator (CCTBO) 
// developed by Steve Karnish of Cedar Creek Trading and coded by LazyBear.
// Indicator is available here https://www.tradingview.com/v/iA4XGCJW/

strategy("Strategy CCTBBO v2 | Fadior", shorttitle="Strategy CCTBBO v2", pyramiding=0, precision=2, calc_on_order_fills=false, initial_capital=1000, default_qty_type=strategy.percent_of_equity, currency="USD", default_qty_value=100, overlay=false)

length_stddev=input(title="Stddev loopback period",defval=20)
length_ema=input(title="EMA period", defval=2)
margin=input(title="Margin", defval=0, type=float, step=0.1)
price = input(title="Source", defval=high)
digits= input(title="Number of digits",defval=2,step=1,minval=2,maxval=6)
offset = input(title="Trailing offset (0.01 = 1%) :", defval=0.013, type=float, step=0.01)
pips= input(title="Offset in ticks ?",defval=false,type=bool)

src=request.security(syminfo.tickerid, "1440", price)

cctbbo=100 * ( src + 2*stdev( src, length_stddev) - sma( src, length_stddev ) ) / ( 4 * stdev( src, length_stddev ) )

ul=hline(150, color=gray, editable=true)
ll=hline(-50, color=gray)
hline(50, color=gray)
fill(ul,ll, color=green, transp=90)
plot(style=line, series=cctbbo, color=blue, linewidth=2)
plot(ema(cctbbo, length_ema), color=red)

d = digits == 2 ? 100 : digits == 3 ? 1000 : digits == 4 ? 10000 : digits == 5 ? 100000 : digits == 6 ? 1000000 : na

TS = 1
TO = pips ? offset : close*offset*d
CQ = 100
TSP = TS
TOP = (TO > 0) ? TO : na

longCondition = crossover(cctbbo, ema(cctbbo, length_ema)) and cctbbo - ema(cctbbo, length_ema) > margin
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Close Long", "Long", qty_percent=CQ, trail_points=TSP, trail_offset=TOP)


shortCondition = crossunder(cctbbo, ema(cctbbo, length_ema)) and cctbbo - ema(cctbbo, length_ema) < -margin
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Close Short", "Short", qty_percent=CQ, trail_points=TSP, trail_offset=TOP)