
Diese Strategie ist eine Trend-Tracking-Strategie, die auf dem Vitelot-Indikator Smeared Variable Channel Index (Smeared VCI) basiert. Die Strategie kombiniert die Trend-Ermittlung des Moving Averages mit der Überkauf-Überverkauf-Ermittlung des Variablen-Channel-Index, um die Haupttrend-Richtung des Preises zu erfassen.
Die Strategie verwendet die Smeared VCI-Anzeige vonvitelot, um die Richtung des Trends zu bestimmen. Die Smeared VCI-Anzeige wird auf der Grundlage des Variablenkanalindex (VCI) geschmiedet. Sie besteht aus drei Parametern: schnelle EMA, langsame EMA und Schwungperiode.
Die Strategie beinhaltet zwei Bedingungen:
Smeared VCI über Trigger-Leitung als Mehr-Signal; unter Trigger-Leitung als Leerzeichen
Nur innerhalb des Rücklaufzeitfensters handeln
Wenn beide Bedingungen gleichzeitig erfüllt sind, wird ein Plus- oder ein Minus-Operation durchgeführt. Ein Minus-Operation wird durchgeführt, wenn die Ausgleichsbedingung zum Verlust oder zur Umkehrung des Signals kommt.
Diese Strategie hat folgende Vorteile:
Trends werden mit Hilfe von Trend-Tracking-Indikatoren effektiv verfolgt.
Hinzu kommt eine glatte Verarbeitung, um falsche Signale zu reduzieren.
Zeitfenster-Retrospektive, mit der die Tests auf bestimmte Zeiträume bezogen werden können
Setzen Sie einen Stop-Loss, um Risiken zu kontrollieren
Mit Indikator-Parametern für die Mehrraum-Beurteilung, Regeln sind einfach und klar
Die Strategie birgt auch einige Risiken:
Trends können falsch beurteilt werden, was zu Verlusten führt.
Unzureichende Einstellungen der Kennzahlen können zu schlechten Erträgen führen
Eine zu kleine Stop-Loss-Einstellung kann zu einer kleinen Stop-Loss führen
Unzumutbare Rücklaufzeiten können zu einer Abweichung der Testergebnisse führen
Zu häufige Multi-Space-Schaltungen können zu Gebührendruck führen.
Diese Strategie kann optimiert werden durch:
Verschiedene Parameterkombinationen zu testen, um das Beste zu finden
Erhöhung der Genauigkeit durch die Nutzung anderer Indikatoren als Hilfsmittel
Optimierung von Stop-Loss-Algorithmen, um den Stop-Loss dynamisch zu verfolgen
Optimierung der Positionseröffnungsbedingungen und Vermeidung häufiger Transaktionen
Tests für eine längere Zeitfenster zur Überprüfung der Strategie-Stabilität
In Kombination mit anderen Faktoren wie dem Umsatz erhöht sich die Entscheidungsgenauigkeit
Diese Strategie ist insgesamt eine relativ einfache Trend-Tracking-Strategie. Sie nutzt die Smeared VCI-Indikatoren, um die Trendrichtung zu bestimmen und Positionen zu eröffnen, wenn der Indikator ein Handelssignal sendet. Das Risiko wird durch Stop-Loss kontrolliert.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Smeared VCI Backtest", overlay=false, shorttitle="SVCI Backtest", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5)
// Smeared Variability Channel Index
// a variation of the VCI indicator of the same author.
// The orange line over the lime line is bullish;
// The lime line over the orange one is bearish.
//
// vitelot/yanez/Vts
// Feb 2019
//
src = close
ep1 = input(5, minval=1, title="Fast EMA period")
ep2 = input(13, minval=2, title="Slow EMA period")
sm = input(34, minval=1, title="Smearing period")
tp = input(13, minval=1, title="Trigger line period")
fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=150)
trailTP = input(title="TP Trigger", defval=1)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2030, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
startTimeOk() => time >= start and time <= finish ? true : false // create function "within window of time" if statement true
atrP = 96
e1 = ema(src,ep1)
e2 = ema(src,ep2)
vci = (e1-e2)/atr(atrP)
svci = sma(vci,sm)
t = sma(svci,tp)
plot(svci, color=lime, linewidth=3, transp=0, title="Smeared VCI")
plot(t, color=orange, linewidth=3, transp=0, title="Trigger line")
hline(0, title="Reference line")
long = crossover(svci,t)
short = crossover(t,svci)
// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)