
Die Strategie nutzt hauptsächlich die Beziehung zwischen kurzfristigen (20-Zyklus) und langfristigen (200-Zyklus) einfachen Moving Averages (SMA), kombiniert mit Preisdynamik, Volatilität und Fallform, um in den engen Bandbereichen nach brechenden Handelsmöglichkeiten mit hoher Wahrscheinlichkeit zu suchen. Die Kernmerkmale der Strategie sind die Identifizierung von “Großen Pfeilern” und Farbsignalen mit starker Richtung innerhalb der engen Bandbereiche, in denen die Moving Averages eng miteinander verbunden sind, und die Nutzung von Stop-Loss- und Stop-Loss-Levels zur Verwaltung des erwarteten Risikobetrags.
Die Kernprinzipien der Strategie basieren auf der Synergie folgender Schlüsselfaktoren:
Doppelte Moving AverageStrategie: Das System sucht nach potenziellen Handelssignalen, wenn die beiden Durchschnittslinien relativ klein voneinander entfernt sind (englische Bandbreite, Differenz kleiner als 1,5%).
Durchschnittliche Schräglage-PrüfungStrategie: Sicherstellen, dass der Markt ausreichend Dynamik hat, indem er den Winkel des 20-Zyklus-SMA berechnet wird (mit der Berechnung der inversen Schnittfunktion) und den Eintritt nur dann berücksichtigt, wenn der Winkel größer als 30 Grad ist.
Typ der Eingangssignale:
Risikomanagement-Rahmen:
Beurteilung der MarktlageStrategie: Die relative Entfernung zwischen den beiden Gleichungen wird berechnet, um die Marktlage zu beurteilen:
Mehrköpfige Einstiegsvoraussetzungen: Enge Band-Zustand + Effektive Schräglage + Abschlusskurs höher als SMA20 + SMA20 höher als SMA200 + Elefantenpfeiler-Form. Die Eintrittsvoraussetzungen sind: Schmalband-Zustand + Effektive Schräglage + Abschlusskurs niedriger als SMA20 + SMA20 niedriger als SMA200 + Elefantenpfostenform.
Durch die tiefgreifende Analyse des Codes hat diese Strategie folgende deutliche Vorteile:
MehrfachbestätigungDie Strategie kombiniert mehrdimensionale Bestätigungsfaktoren wie Gleichgewichtsbeziehungen, Gleichgewichtsschwankungen, Preispositionen und spezielle Fallformationen, um minderwertige Signale effektiv zu filtern und die Qualität der Transaktionen zu verbessern.
Anpassung an die MarktlageDurch die Unterscheidung zwischen Eng- und Breitband-Zuständen ist es möglich, nach Möglichkeiten zu suchen, die sich unter den am besten geeigneten Marktbedingungen befinden, um zu vermeiden, dass ein Trend, der sich bereits ausgeweitet hat, die Höhen und Tiefen verfolgt.
Dynamische RisikomanagementDie Verwendung des ATR als Instrument zur Messung der Volatilität, um sicherzustellen, dass die Stop-Loss- und Gewinnziele an die momentane Dynamik der Marktvolatilität angepasst werden können, anstatt eine feste Punktzahl zu verwenden.
Strategie zur Verdichtung von GewinnEs gibt zwei Phasen der Strategie: Teilgewinn und Endgewinn, um einen Teil des Gewinns in günstigen Zeiten zu sichern und den Trend nicht zu früh zu beenden und zu verlieren.
Intelligente Anlage: Positionserhöhung durch Farbänderungssignale, die maximal zwei zusätzliche Positionen in einem Trend ermöglichen und die Effizienz der Kapitalnutzung optimieren.
Mobilisierter SchadensschutzDer Stop-Loss wird automatisch an die Gewinn-Verlust-Balance-Punkt, um “zero-Risiko” Handel zu realisieren und zu schützen, dass die Gewinne erzielt werden, wenn der Preis das erste Gewinnziel erreicht.
Visuelle UnterstützungStrategie: Die Strategie bietet klare visuelle Anweisungen und Dashboards, die den Händlern helfen, Signale und Marktzustände intuitiv zu erkennen und den Entscheidungsprozess zu vereinfachen.
Integration von Preisverhalten und technischen IndikatorenDas ist die Idee von Oliver Velez, der die Preisverhaltensphilosophie mit traditionellen technischen Indikatoren kombiniert, um ein stabileres Handelssystem zu schaffen.
Obwohl die Strategie so gut konzipiert ist, bestehen folgende potenzielle Risiken und Herausforderungen:
ParameterempfindlichkeitStrategie-Performance hängt in hohem Maße von der Einstellung von Schlüsselparametern wie SMA-Zyklen, ATR-Längen und RRR ab. Unterschiedliche Märkte und Zeitrahmen können unterschiedliche Kombinationen von Parametern benötigen, die eine ausreichende historische Rückvergleiche und Optimierung erfordern.
Falsche DurchbruchgefahrBreakouts in schmalen Bandbereichen sind manchmal False Breakouts, insbesondere in einer Umgebung mit geringer Marktvolatilität. Obwohl die Strategie zur Verringerung von False Breakouts durch den Einsatz der “Elephant Pillar” gefordert ist, kann dies nicht vollständig vermieden werden.
Ausrutschpunkte und AusführungsrisikenEs kann zu Schlupfpunkten kommen, die dazu führen, dass der tatsächliche Einstiegspreis nicht mit dem idealen Preis übereinstimmt, was die Gesamtrisikorendite beeinflusst.
Die Herausforderung des GeldmanagementsDie Verwendung von 10% des Kapitals und die Zulassung von zwei Zuschlägen können zu einem übermäßigen Risiko bei fortlaufenden Verlusten oder starken Marktschwankungen führen.
Übermäßige Abhängigkeit von der DurchschnittslinieDie Strategie hängt hauptsächlich von den SMAs ab, die die Richtung der Tendenz bestimmen, aber in einem zwischenstaatlich schwankenden Markt können sich die Mittellinien häufig kreuzen und zu viele falsche Signale erzeugen.
Mangelnde Filterung der MarktumgebungDie Strategie ist nicht an unterschiedliche Makro-Marktumgebungen angepasst (wie z. B. hoch- oder niedrige Volatilität, Bullen- oder Bärenmärkte) und kann in bestimmten Marktphasen schlecht abschneiden.
Rückzug der KapitalkurveDie Strategie erlaubt die Gewinne zu erhöhen, was zu einem größeren Rückzug der Konten führen kann, wenn sich der Trend plötzlich umkehrt, insbesondere wenn sich der Markt nach zwei Gewinne umkehrt.
Die Lösungsansätze umfassen: das Hinzufügen von zusätzlichen Marktumfeldfiltern, die Anpassung der Kapitalverwaltungsquote, die dynamische Anpassung der Parameter an unterschiedliche Marktbedingungen und die Berücksichtigung des Hinzufügens weiterer technischer Indikatoren zur Bestätigung von Signalen.
Die Strategie kann auf der Grundlage von Code-Analysen in folgende Richtungen optimiert werden:
Dynamische SchmalbandschwellenDerzeitige Strategien verwenden festgelegte 1,5% und 2% als Beurteilungs- und Breitband-Thresholds. Es kann in Erwägung gezogen werden, diese Thresholds an die historische Volatilitätsdynamik anzupassen, um die Strategie besser an unterschiedliche Marktumstände anzupassen. Optimierungsgründe: Bei unterschiedlichen Märkten und Zeitrahmen mit unterschiedlichen Volatilitätsmerkmalen können feste Thresholds nicht flexibel genug sein.
Erweiterung des GleichschaltsystemsEs kann in Erwägung gezogen werden, eine mittlere Durchschnittslinie (z. B. ein 50-Zyklus-SMA) zu einem Drei-Mittelsystem hinzuzufügen, oder es kann versucht werden, einen Index-Moving-Average (EMA) als Ersatz für den SMA zu verwenden, um die Sensibilität für Preisänderungen zu erhöhen.
Verbesserte SchräglageDerzeit ist die Berechnung der Schräglage relativ einfach. Es kann in Erwägung gezogen werden, eine lineare Regressionsschräglage oder eine Veränderung der mehrperiodischen Schräglage zu verwenden, um eine stabilere Richtungsanzeige zu erhalten. Gründe für die Optimierung: Die Berechnung der Einpunktsschräglage ist anfällig für kurzfristige Schwankungen und verbessert die Stabilität der Richtungsurteile.
Hinzufügen der TransaktionsbestätigungOptimierungsgrund: Die Transaktionsmenge ist ein wichtiger Bestätigungsfaktor für die Wirksamkeit von Preisänderungen und kann falsche Durchbrüche erheblich reduzieren.
Dynamische Risiko-Rendite-VerhältnisOptimierungsgrund: Die Ertragspotential variiert in unterschiedlichen volatilen Umgebungen, und die dynamische Anpassung optimiert die erwarteten Erträge pro Handel.
Optimierung der AnlagebedingungenOptimierungsgrund: Strengere Aufnahmebedingungen erhöhen die Erfolgsrate von zusätzlichen Positionen und verringern das Gesamtrisiko.
Marktumfeld-FilterDer Grund für die Optimierung: Die Strategie in verschiedenen Marktphasen unterscheidet sich stark und die Umgebungsfilter verhindern den Handel unter ungünstigen Bedingungen.
AnpassungsstrategienOptimierungsgrund: Die Stop-Loss-Strategie mit einem festen ATR-Multiplikator passt manchmal nicht gut zur Marktstruktur, so dass die Anpassungsmethode besser auf die tatsächliche Preisbewegung abgestimmt ist.
Die Dynamic Slip Binary Moving Average Narrowband Breakthrough Quantitative Trading Strategie ist ein umfassendes Handelssystem, das mehrere Elemente der technischen Analyse kombiniert, um den Händlern eine strukturierte Art der Marktbeteiligung durch genau definierte Einstiegsbedingungen, mehrere Ebenen der Bestätigungsmechanismen und ein gutes Risiko-Management-Framework zu bieten. Die Strategie basiert auf grundlegenden Konzepten der technischen Analyse wie SMA, ATR und Preisverhalten, aber integriert diese Elemente in ein klares Handelssystem durch die Methodik von Oliver Velez.
Die Kernstärke der Strategie liegt in der Fähigkeit, hochprobable Durchbruchsmöglichkeiten in den engen Bereichen des Moving Averages zu identifizieren und die Wirksamkeit von Signalen durch bestimmte Preismodelle wie “Elephant Pillar” und “Color Shift” zu bestätigen. Die ausgefeilte Risikomanagementstruktur gewährleistet gleichzeitig die Sicherheit der Mittel und die Gewinnschutz.
Die Strategie ist jedoch auch mit Parameter-Sensitivität, False Breakthrough-Risiken und Herausforderungen der Kapitalverwaltung konfrontiert. Die Strategie kann durch die Optimierung der Engbänder-Drehwerte, die Erweiterung des Mittelliniensystems, die Verbesserung der Schräglageberechnung, die Einbeziehung von Transaktionsbestätigung, die Implementierung eines dynamischen Risiko-Rendite-Verhältnisses, die Optimierung der Aufnahmebedingungen, die Hinzufügung von Marktumfeldfilterungen und die Entwicklung von Anpassungsstrategien zur Verlustbewältigung weiter verbessert werden.
Insgesamt handelt es sich um eine quantitative Handelsstrategie, die für Investoren mit einer gewissen Handelserfahrung, insbesondere für diejenigen, die eine technische Analyse und eine systematisierte Handelsmethode bevorzugen, konzipiert ist. Mit geeigneter Parameteroptimierung und Risikomanagement hat die Strategie das Potenzial, eine stabile Handelsperformance in verschiedenen Marktumgebungen zu erzielen.
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Oliver Velez Advanced Strategy v2", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=2, calc_on_order_fills=true, calc_on_every_tick=true)
// === INPUTS ===
smaLen1 = input.int(20, title="SMA Short")
smaLen2 = input.int(200, title="SMA Long")
atrLen = input.int(14, title="ATR Length")
rr1 = input.float(2.5, title="RR for Partial Profit", step=0.1)
rr2 = input.float(4.0, title="RR for Final Profit", step=0.1)
// === INDICATORS ===
sma20 = ta.sma(close, smaLen1)
sma200 = ta.sma(close, smaLen2)
atr = ta.atr(atrLen)
angle = math.atan(sma20 - sma20[1]) * 180 / math.pi
// === STATES ===
isNarrow = math.abs(sma20 - sma200) / sma200 < 0.015
isWide = math.abs(sma20 - sma200) / sma200 >= 0.02
validSlope = angle > 30
// === CANDLE PATTERNS ===
elephant_long = close > open and (close - open) > 1.5 * atr and high > high[1]
elephant_short = close < open and (open - close) > 1.5 * atr and low < low[1]
color_change_long = close > open and close[1] < open[1]
color_change_short = close < open and close[1] > open[1]
// === LONG ENTRY ===
long_primary = isNarrow and validSlope and close > sma20 and sma20 > sma200 and elephant_long
long_add = isNarrow and color_change_long and close > sma20
long_entry_price = close
long_stop = math.min(low, close - 2 * atr)
long_risk = long_entry_price - long_stop
long_tp1 = long_entry_price + rr1 * long_risk
long_tp2 = long_entry_price + rr2 * long_risk
// === SHORT ENTRY ===
short_primary = isNarrow and validSlope and close < sma20 and sma20 < sma200 and elephant_short
short_add = isNarrow and color_change_short and close < sma20
short_entry_price = close
short_stop = math.max(high, close + 2 * atr)
short_risk = short_stop - short_entry_price
short_tp1 = short_entry_price - rr1 * short_risk
short_tp2 = short_entry_price - rr2 * short_risk
// === LONG EXECUTION ===
if (long_primary)
strategy.entry("Long Entry", strategy.long, comment="Elephant Bar Long")
strategy.exit("Long TP1", from_entry="Long Entry", limit=long_tp1, stop=long_stop)
strategy.exit("Long TP2", from_entry="Long Entry", qty_percent=50, limit=long_tp2)
if (long_add)
strategy.entry("Long Add", strategy.long, comment="Color Change Long")
strategy.exit("Add TP1", from_entry="Long Add", limit=long_tp1, stop=long_stop)
strategy.exit("Add TP2", from_entry="Long Add", qty_percent=50, limit=long_tp2)
// === SHORT EXECUTION ===
if (short_primary)
strategy.entry("Short Entry", strategy.short, comment="Elephant Bar Short")
strategy.exit("Short TP1", from_entry="Short Entry", limit=short_tp1, stop=short_stop)
strategy.exit("Short TP2", from_entry="Short Entry", qty_percent=50, limit=short_tp2)
if (short_add)
strategy.entry("Short Add", strategy.short, comment="Color Change Short")
strategy.exit("Short TP1 Add", from_entry="Short Add", limit=short_tp1, stop=short_stop)
strategy.exit("Short TP2 Add", from_entry="Short Add", qty_percent=50, limit=short_tp2)
// === BREAKEVEN CHECK ===
var float breakeven_price = na
long_breakeven_trigger = high >= long_tp1
short_breakeven_trigger = low <= short_tp1
breakeven_price := long_breakeven_trigger or short_breakeven_trigger ? close : breakeven_price
// === ALERTS ===
alertcondition(long_primary, title="Long Elephant", message="Elephant Bar Long Entry Triggered!")
alertcondition(long_add, title="Color Change Long", message="Color Change Long Entry Triggered!")
alertcondition(long_breakeven_trigger, title="Long Breakeven", message="Move SL to Breakeven for Long")
alertcondition(short_primary, title="Short Elephant", message="Elephant Bar Short Entry Triggered!")
alertcondition(short_add, title="Color Change Short", message="Color Change Short Entry Triggered!")
alertcondition(short_breakeven_trigger, title="Short Breakeven", message="Move SL to Breakeven for Short")
// === PLOTTING ===
plot(sma20, color=color.orange, title="SMA 20")
plot(sma200, color=color.blue, title="SMA 200")
bgcolor(isNarrow ? color.new(color.green, 85) : na)
plotshape(long_primary, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="E")
plotshape(long_add, style=shape.circle, location=location.belowbar, color=color.lime, size=size.tiny, text="A")
plotshape(short_primary, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="E")
plotshape(short_add, style=shape.circle, location=location.abovebar, color=color.maroon, size=size.tiny, text="A")
// === DASHBOARD ===
var label dash = na
label.delete(dash)
dash := label.new(x=bar_index, y=high, text=
"Oliver Velez Strategy\n" +
"SMA 20 Slope: " + str.tostring(angle, "#.##") + "°\n" +
"State: " + (isNarrow ? "NARROW" : "WIDE") + "\n" +
"Last Entry: " + (long_primary ? "Long E-Bar" : long_add ? "Long Add" : short_primary ? "Short E-Bar" : short_add ? "Short Add" : "None") + "\n" +
"Breakeven: " + (breakeven_price != na ? str.tostring(breakeven_price, "#.##") : "No"), style=label.style_label_left, color=color.new(color.black, 85), textcolor=color.white)