Mehrstufige, nicht neu zeichnende Renko-Simulations-Trendumkehr-Quantitative-Trading-Strategie

RENKO RSI SMA EMA VOL BRICK BACKTESTING REPAINTING
Erstellungsdatum: 2025-03-04 10:26:05 zuletzt geändert: 2025-03-04 10:26:05
Kopie: 0 Klicks: 547
2
konzentrieren Sie sich auf
319
Anhänger

Mehrstufige, nicht neu zeichnende Renko-Simulations-Trendumkehr-Quantitative-Trading-Strategie Mehrstufige, nicht neu zeichnende Renko-Simulations-Trendumkehr-Quantitative-Trading-Strategie

Strategieübersicht

Die Strategie ist ein auf Renko-Charts basierendes, simuliertes, nicht-übergezeichnetes, quantitatives Handelssystem, das das Problem der Übergezeichnetheit in der traditionellen Renko-Strategie löst, indem es das Verhalten der Renko-Blöcke auf einem Standardzeit-Chart simuliert. Die Strategie verwendet ein fester Preisblock, um Marktlärm zu filtern und sich nur auf bedeutende Preisänderungen zu konzentrieren, während sichergestellt wird, dass die historischen Signale unverändert bleiben. Die Strategie eignet sich insbesondere für Trend-Tracking und Trendwende-Trading, bei denen Handelsentscheidungen über mehrere Schritte getroffen werden, die die Richtungsänderungen der Blöcke vergleichen.

Hauptmerkmale:

  • Nicht-Renko-Effekt auf Zeitdiagramm
  • Trends umgekehrt mit Hilfe von Block-Wechseln
  • Mehrstufige Verifizierungsmechanismen verbessern die Signalqualität
  • Graphische Darstellung der Blockbildung
  • Stabile Rückmeldung und Übereinstimmung mit der Echtzeit-Transaktionsperformance

Strategieprinzip

Das Kernprinzip dieser Strategie ist, die Funktionalität von Renko-Blöcken auf einem Standardzeitdiagramm zu realisieren und gleichzeitig die Umrissprobleme in einem traditionellen Renko-Diagramm zu lösen. Die spezifischen Funktionsprinzipien lauten:

  1. Parameterkonfiguration und Initialisierung:

    • brickSizeDefinition der Blockgröße, die bestimmt, wie viel der Preis bewegen muss, um neue Blöcke zu bilden
    • renkoPriceDie letzten Renko-Blöcke wurden bei der Schließung der Börse gespeichert.
    • prevRenkoPriceDer Preis für den Renko-Block liegt auf dem Niveau des Vorjahres.
    • brickDirDie Richtung des Blocks wird folgendermaßen verfolgt:
    • newBrickDie Bulle zeigt an, ob neue Blöcke entstehen.
    • brickStart: Speichert den Index der Spalte, in der der aktuelle Block beginnt
  2. Identifizierung von Renko-Blöcken ohne Übermalung:

    • Das System führt die Berechnung nur auf der Bestätigungspalte aus und stellt sicher, dass die historischen Daten nicht neu berechnet werden
    • Berechnung der Differenz zwischen dem aktuellen Preis und dem vorherigen Renko-Block-Niveau
    • Wenn die Preisunterschiede die Größe der Blöcke erreichen oder überschreiten, werden neue Renko-Blöcke gebildet
    • Aktualisieren Sie die Blockpreise entsprechend der Anzahl der Bits, die eine Preisänderung aufnehmen kann
    • Aktualisieren Sie die Richtung ((brickDir) und setzen Sie die Kennzeichnung ((newBrick) auf, um die Bildung neuer Brücken anzuzeigen
  3. Renko-Visualisierung im Zeitplan:

    • Graphische Elemente zum Zeichnen von Renko-Stil-Blöcken auf Standarddiagrammen
    • Die grünen Quadrate sind für die Flächen.
    • Die roten Quadrate bedeuten die Beobachtungsblöcke.
    • Die gebildeten Blöcke werden niemals verändert oder verschwinden.
  4. Mehrstufige Trendwende:

    • Die Strategie überprüft nicht nur die Richtung des aktuellen Blocks, sondern vergleicht auch mehrere historische Blocks
    • Bestätigung einer echten Trendwende durch die Bestätigung von mehreren aufeinanderfolgenden Richtungsänderungen

Strategische Vorteile

Nach einer eingehenden Analyse des Codes zeigte sich, dass diese Strategie folgende wesentliche Vorteile aufweist:

  1. Die Lösung der Umrissfrage:

    • Traditionelle Renko-Strategie funktioniert gut in der Rückmessung, scheitert aber häufig im Live-Spiel, hauptsächlich aufgrund von Remissionsproblemen
    • Diese Strategie stellt sicher, dass sich das Verhalten von Renko nicht ändert, sobald ein Block entsteht, indem es das Verhalten von Renko auf einem Standardzeitdiagramm simuliert.
    • Das macht die Rückmeldungen zuverlässiger und ähnlicher wie auf dem Disco.
  2. Geräuschfilterung mit klaren Trends:

    • Die Renko-Charts selbst haben die Eigenschaft, kleine Schwankungen zu filtern und nur dann neue Blöcke zu bilden, wenn der Preis den voreingestellten Betrag bewegt.
    • Dies hilft bei der Identifizierung eindeutiger Preistrends und reduziert falsche Signale.
    • Passend für die Suche nach sinnvollen Preisbewegungen in einem stark volatilen Markt
  3. Mehrstufige Signalprüfung:

    • Die Strategie überprüft nicht nur die Veränderung einer einzelnen Richtung, sondern auch die Richtung mehrerer aufeinanderfolgender Blöcke
    • VergleichebrickDir[brickSize]GegenwärtigbrickDirund historische Preisniveaus
    • Mehrstufige Verifizierung reduziert Fehlsignale deutlich
  4. Basis für Transaktionen visualisieren:

    • Farbige Blöcke auf die Grafik gezeichnet, um die Preisstruktur zu visualisieren
    • Die grünen und roten Kisten kennzeichnen die Richtung des Marktes.
    • Visuelle Hilfsmittel, die Händlern helfen, Marktverhalten besser zu verstehen
  5. Flexibilität und Anpassbarkeit:

    • Die Blockgröße kann vom Benutzer angepasst werden, um eine Optimierung der Strategie für verschiedene Märkte und Zeitrahmen zu ermöglichen
    • Kleinere Blockgrößen erzeugen häufigere Handelssignale, geeignet für den kurzfristigen Handel
    • Größere Blockgrößen filtern mehr Geräusche, geeignet für mittelfristige Trendverfolgung

Strategisches Risiko

Obwohl die Strategie das Problem der Neuaufstellung gelöst hat, bestehen noch folgende Risikofaktoren:

  1. Gefahr von Signalverzögerungen:

    • Da die Strategie nur auf den Bestätigungsstufen berechnet, kann die Transaktionsdurchführung etwas später erfolgen als auf einem herkömmlichen Renko-Chart.
    • In einem schnelllebigen Markt könnten Einstiegspunkte bereits den besten Preis verpasst haben
    • Lösung: In Kombination mit anderen Bestätigungsindikatoren oder der Anpassung der Blockgröße kann eine Balance zwischen Pünktlichkeit und Genauigkeit hergestellt werden.
  2. Die Größe der Blöcke wählt die Risiken:

    • Zu kleine Blöcke erzeugen zu viele Handelssignale, erhöhen die Transaktionskosten und können zu Überhandelungen führen.
    • Zu große Blöcke könnten wichtige Marktwendepunkte verpassen
    • Lösung: Die Blockgröße sollte entsprechend der Volatilität des Zielvermögens und des Handelszeitrahmens optimiert werden
  3. Gefahr einer Trendumkehr:

    • Trotz der Verwendung von mehrstufiger Verifizierung können Falschbrüche in stark volatilen Märkten auftreten
    • Der Preis kann mehrere Male die Blockgrenze überschreiten, bevor ein echter Trend entsteht.
    • Lösung: Erwägen Sie zusätzliche Filter, wie z. B. die Bestätigung der Transaktionsmenge oder die Dynamometer.
  4. Rückzug Risiken:

    • Eine Trendwende kann zu anhaltenden Verlusten in einem stark trendigen Markt führen.
    • Die Umkehrsignale könnten zu früh ausgelöst werden, was zu einem negativen Handel führen könnte.
    • Lösung: Einführung geeigneter Stop-Loss-Mechanismen und Strategien zur Positionsverwaltung
  5. Berechnung der Ressourcenrisiken:

    • Das Abbilden einer großen Anzahl von Blöcken kann besonders auf langen Zeitrahmen und großen Datensätzen sehr ressourcenintensiv sein.
    • Der Code beschränkt die maximale Anzahl von Boxen auf 500, was in einigen Fällen nicht ausreicht
    • Lösung: Optimieren Sie die Code-Effizienz oder betrachten Sie nur die N-Neuesten-Blöcke

Richtung der Strategieoptimierung

Auf der Grundlage der Code-Analyse wurden folgende wichtige Optimierungsmöglichkeiten für die Strategie identifiziert:

  1. Optimierung der dynamischen Blockgröße:

    • Die aktuelle Strategie verwendet eine feste Blockgröße, die auf eine dynamische Blockgröße basierend auf Marktvolatilitäten optimiert werden kann
    • Kleine Blöcke bei niedrigen Schwankungen, größere bei hohen Schwankungen
    • Dies erhöht die Anpassungsfähigkeit der Strategie an unterschiedliche Marktbedingungen.
    • Umsetzungsmethode: Die Größe des Blocks kann dynamisch angepasst werden mithilfe von ATR (Actuality of Range)
  2. Hinzufügen von Transaktionsfiltern:

    • Kombination von Traffic oder anderen Dynamikindikatoren zur Bestätigung von Trendwende-Signalen
    • Vermeiden Sie den Handel bei geringer Liquidität oder extremer Volatilität
    • Umsetzungsmethode: Hinzufügen von zusätzlichen Bestätigungsbedingungen, basierend auf RSI, Durchbruch oder MACD
  3. Verbesserte Stop-Loss- und Gewinnmechanismen:

    • Die derzeitige Strategie kann nur bei einer Umkehrung der Richtung ausgeglichen werden, um den intelligenten Stop-Loss und die Zielgewinnung zu erhöhen.
    • Dynamische Stop-Loss-Einstellungen basierend auf der Größe des Blocks
    • Implementierung: Hinzufügenstrategy.exit()Befehl, den Stop-Loss auf Basis der ATR- oder Blockgröße einzustellen
  4. Optimierung der Mehrschritt-Verifizierung:

    • Die aktuelle Strategie verwendet FixedbrickSizeDie Multiplikatoren vergleichen historische Blöcke
    • Die Anzahl der Schritte, mit denen die optimale Historie untersucht werden kann
    • Rückblick auf verschiedene Märkte und Zeitrahmen, um die optimale Kombination von Parametern zu finden
    • Implementierungsmethode: Parametriert die Anzahl der Schritte und erlaubt dem Benutzer, die Validierungstiefe anzupassen
  5. Verbesserte Sichtbarkeit und Alarmierung:

    • Hinzufügen von Trendlinien und Kennzeichen für Schlüsselniveaus
    • Hinzufügen von Alarmfunktionen für Blockbildung und Handelssignale
    • Die Intensität und Dauer des aktuellen Trends
    • Implementierungsmethode:label.new()Undalert()Funktionen, die die Benutzererfahrung verbessern

Zusammenfassen

Die mehrstufige Renko-Simulation-Strategie löst erfolgreich das Problem der Übertragung in der traditionellen Renko-Strategie und ermöglicht es den Händlern, die Renko-Logik auf dem Standardzeit-Chart anzuwenden, während die Stabilität der historischen Signale erhalten wird. Die Strategie identifiziert Trendwechsel durch mehrstufige Verifizierungsmechanismen, verbessert die Signalqualität und zeigt die Marktstruktur visuell in einer grafischen Weise.

Die wichtigsten Vorteile der Strategie bestehen in der Lösung von Umrissen, der Filterung von Marktrauschen, der mehrschichtigen Signalprüfung und der intuitiven Grafikdarstellung. Es bestehen jedoch weiterhin Risiken wie Signalverzögerungen, Blockgrößen und Falschsignale. In Zukunft können weitere Optimierungen durch die Implementierung von dynamischen Blockgrößen, die Erhöhung der Handelsfilter, die Verbesserung der Stop-Loss-Mechanismen, die Optimierung der Verifizierungsschritte und die Erweiterung des Visualisierungssystems vorgenommen werden.

Diese Methode, die die Vorteile der Renko-Charts kombiniert und deren Nachteile vermeidet, eignet sich besonders für Trendfollowing- und Trendumkehr-Handelsstrategien und bietet Händlern ein zuverlässiges technisches Analyse-Tool, das eine stabile Real-Time-Performance bietet, während die Rückmessgenauigkeit beibehalten wird.

Strategiequellcode
//@version=5
strategy("Non-Repainting Renko Emulation Strategy [PineIndicators]", overlay=true, calc_on_every_tick=false, max_boxes_count = 500, max_labels_count = 500, max_lines_count = 500, initial_capital = 10000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.01, slippage = 2)

// Parameter: Brick-Größe (z.B. 10 Punkte)
brickSize = input.float(3.0, "Brick Size", step=0.1)

// Persistente Variablen
var float renkoPrice     = na    // Aktueller Renko-Level (Schlusswert des letzten Bricks)
var float prevRenkoPrice = na    // Vorheriger Renko-Level (für Box-Berechnung)
var int   brickDir       = 0     // 1 = Aufwärts, -1 = Abwärts
var bool  newBrick       = false // Signalisiert, dass ein neuer Brick abgeschlossen wurde
var int   brickStart     = bar_index  // Beginn des aktuellen Bricks (x-Achse)

// Berechnungen nur auf abgeschlossenen Candles
if barstate.isconfirmed
    newBrick := false
    // Initialisierung: Beim ersten Candle setzen wir den Renko-Level
    if na(renkoPrice)
        renkoPrice := close
        brickStart := bar_index
    // Berechne die Differenz zum letzten Renko-Level
    diff = close - renkoPrice
    // Prüfen, ob der Unterschied mindestens der Brick-Größe entspricht
    if math.abs(diff) >= brickSize
        // Anzahl kompletter Bricks (kann > 1 sein)
        numBricks = math.floor(math.abs(diff) / brickSize)
        prevRenkoPrice := renkoPrice
        // Aktualisieren des Renko-Levels
        renkoPrice := renkoPrice + numBricks * brickSize * math.sign(diff)
        // Brick-Richtung (konvertiere math.sign-Ergebnis in int)
        brickDir := int(math.sign(diff))
        newBrick := true

        // Bestimme die obere und untere Grenze des abgeschlossenen Bricks:
        lowLevel  = brickDir == 1 ? prevRenkoPrice : renkoPrice
        highLevel = brickDir == 1 ? renkoPrice     : prevRenkoPrice

        // Setze den Start für den nächsten Brick
        brickStart := bar_index


// Handelslogik: Einstieg/Ausstieg nur, wenn ein neuer Brick abgeschlossen wurde
if barstate.isconfirmed and newBrick
    // Bei Aufwärts-Brick: Long-Signal
    if brickDir[brickSize] < brickDir and renkoPrice[brickSize] < renkoPrice[brickSize*2] and renkoPrice < renkoPrice[brickSize] and renkoPrice[brickSize*2] < renkoPrice[brickSize*3] and strategy.position_size <= 0
        // Bestehende Short-Position schließen, falls vorhanden
        strategy.entry("Long", strategy.long)

    // Bei Abwärts-Brick: Short-Signal
    else if brickDir[brickSize] > brickDir and renkoPrice[brickSize] > renkoPrice[brickSize*2] and renkoPrice > renkoPrice[brickSize] and renkoPrice[brickSize*2] > renkoPrice[brickSize*3] and strategy.position_size >= 0
        // Bestehende Long-Position schließen, falls vorhanden
        strategy.entry("Short", strategy.short)

if barstate.isconfirmed and newBrick
    if brickDir[brickSize] < brickDir
        strategy.close("Short")

    else if brickDir[brickSize] > brickDir
        strategy.close("Long")