Kombinierte Handelsstrategie mit mehrperiodischer K-Linien-Mustererkennung

JSC CP TS
Erstellungsdatum: 2024-12-11 11:04:35 zuletzt geändert: 2024-12-11 11:04:35
Kopie: 0 Klicks: 82
1
konzentrieren Sie sich auf
1166
Anhänger

Kombinierte Handelsstrategie mit mehrperiodischer K-Linien-Mustererkennung

Überblick

Die Strategie ist ein automatisiertes Handelssystem, das auf K-Line-Formen basiert. Es integriert zehn klassische K-Line-Formen, darunter fünf bullish Formen (Hauchse-Linie, Multi-Head-Swallow, Penetration-Linie, Morgenstern und Drei-Weiß-Soldaten) und fünf bearish Formen (Hochse-Linie, Luft-Swallow, Wolkenbedeckung, Dämmerstern und Drei-Schwarz-Soldaten). Die Strategie bietet den Händlern potenzielle Marktumkehrsignale und Handelschancen durch die Echtzeit-Identifikation und Analyse dieser Formen.

Strategieprinzip

Das Kernstück der Strategie ist die Programmierung zur exakten Identifizierung verschiedener K-Linienformen. Jede Form hat ihre eigene mathematische Definition und ihre eigene Einschätzung:

  1. Für einzelne K-Linienformen (z. B. Hüft- und Hängelinie) wird hauptsächlich auf der Verhältnisbeziehung zwischen der Einheit und der Schattenlinie verstanden.
  2. Für zwei K-Linien-Formen (z. B. Absorptions- und Durchdringungslinien) wird die Position des Eröffnungs- und Schlusskurses von zwei benachbarten K-Linien verglichen.
  3. Für drei K-Linienformate (z. B. drei Weiße Soldaten, drei Schwarze Katzen) müssen die Bewegungsrichtung und die Positionsbeziehung von drei aufeinanderfolgenden K-Linien gleichzeitig erfüllt werden. Die Strategie erlaubt dem Benutzer, die Identifizierung bestimmter Formen zu aktivieren oder zu deaktivieren, indem er die Parameter flexibel einstellt.

Strategische Vorteile

  1. Allumfassend: Zehn der repräsentativsten K-Line-Formen, die verschiedene Arten von Marktumkehrsignalen erfassen können
  2. Flexibilität: Benutzer haben die Freiheit, die benötigte Formgebung zu wählen, je nach Marktumfeld und individuellen Handelsstilen
  3. Visualisierung: Intuitive Anzeige von Ort und Art der verschiedenen Formen durch ein klares Markierungssystem
  4. Automatisierung: vollständig programmierter Beurteilungsprozess, der die Subjektivität und Emotionalität menschlicher Beurteilungen vermeidet
  5. Praktikabilität: Strategie-Logik ist klar und kann in Kombination mit anderen technischen Indikatoren oder Handelssystemen verwendet werden

Strategisches Risiko

  1. Rückstandsrisiko: Bestätigung der K-Linie-Form erfordert die Wartezeit bis zum Abschluss der K-Linie, was zu einer geringfügigen Verzögerung der Eintrittszeit führen kann
  2. Falschsignalrisiko: In einem schwankenden Markt kann das bloße Vertrauen auf die K-Linie-Form mehr falsche Signale erzeugen
  3. Marktumgebungsabhängigkeit: Strategie, die in tendenziösen Märkten gut funktioniert, aber in horizontalen Märkten möglicherweise schlechter funktioniert
  4. Risiken bei der Einstellung der Parameter: Übermäßige Aktivierung der Formenerkennung kann zu einer zu starken Signaldichte führen, die die Urteilsfähigkeit beeinträchtigt
  5. Stop-Loss-Risiken: Die Strategie selbst enthält keine vollständigen Stop-Loss-Mechanismen und erfordert zusätzliche Risikokontrollmaßnahmen

Richtung der Strategieoptimierung

  1. Einführung von Trendfiltern: Filtern Sie Rückschlagsignale in Kombination mit Moving Averages oder Trendindikatoren
  2. Erhöhung der Bestätigung der Transaktionsmenge: Validierung der Form durch Transaktionsumstellung
  3. Verbesserte Risikokontrolle: Hinzufügung von dynamischen Stop-Loss- und Profit-Ziel-Einstellungen
  4. Optimierung der Formparameter: Anpassung der Parameterkriterien für die Formerkennung für verschiedene Märkte und Zeiträume
  5. Hinzufügen von Formgewichten: Setzen Sie unterschiedliche Signalgewichtssysteme für verschiedene Formen, je nach Zuverlässigkeit

Zusammenfassen

Es handelt sich hierbei um eine vernünftige, logisch klare K-Linien-Form-Erkennung-Handelsstrategie. Sie ermöglicht die Programmierung der K-Linien-Form-Erkenntnisse, die in der traditionellen technischen Analyse am häufigsten verwendet werden, und bietet den Händlern ein objektives, systematisches Handelsinstrument. Obwohl es einige inhärente Einschränkungen gibt, kann die Strategie durch geeignete Optimierung und Zusammenarbeit mit anderen technischen Tools wertvolle Referenzsignale für Handelsentscheidungen liefern.

Strategiequellcode
/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Author: Raymond Ngobeni
strategy('Candlestick Pattern Strategy [Ubaton]', 'Ubaton - Candlestick Pattern Strategy', overlay = true, max_labels_count = 500, max_lines_count = 500, max_boxes_count = 500)

// User Inputs: Enable/Disable Patterns
// Bullish Patterns
enableHammer = input.bool(true, "Show Hammer")
enableBullEngulfing = input.bool(true, "Show Bullish Engulfing")
enablePiercingLine = input.bool(true, "Show Piercing Line")
enableMorningStar = input.bool(true, "Show Morning Star")
enableThreeWhiteSoldiers = input.bool(true, "Show Three White Soldiers")

// Bearish Patterns
enableHangingMan = input.bool(true, "Show Hanging Man")
enableBearEngulfing = input.bool(true, "Show Bearish Engulfing")
enableDarkCloudCover = input.bool(true, "Show Dark Cloud Cover")
enableEveningStar = input.bool(true, "Show Evening Star")
enableThreeBlackCrows = input.bool(true, "Show Three Black Crows")

// Helper Functions
isHammer() =>
    bodySize = math.abs(open - close)
    shadowSize = low < math.min(open, close) ? math.min(open, close) - low : na
    shadowSize >= 2 * bodySize and high - math.max(open, close) <= bodySize

isBullishEngulfing() =>
    close[1] < open[1] and close > open and open <= close[1] and close >= open[1]

isPiercingLine() =>
    close[1] < open[1] and close > close[1] + (open[1] - close[1]) * 0.5 and close < open[1]

isMorningStar() =>
    close[2] < open[2] and math.abs(close[1] - open[1]) < (high[1] - low[1]) * 0.3 and close > open

isThreeWhiteSoldiers() =>
    close > open and close[1] > open[1] and close[2] > open[2] and open > close[1] and open[1] > close[2]

isHangingMan() =>
    bodySize = math.abs(open - close)
    shadowSize = low < math.min(open, close) ? math.min(open, close) - low : na
    shadowSize >= 2 * bodySize and high - math.max(open, close) <= bodySize and close < open

isBearishEngulfing() =>
    close[1] > open[1] and close < open and open >= close[1] and close <= open[1]

isDarkCloudCover() =>
    close[1] > open[1] and open > close[1] and close < open[1] and close < close[1] + (open[1] - close[1]) * 0.5

isEveningStar() =>
    close[2] > open[2] and math.abs(close[1] - open[1]) < (high[1] - low[1]) * 0.3 and close < open

isThreeBlackCrows() =>
    close < open and close[1] < open[1] and close[2] < open[2] and open < close[1] and open[1] < close[2]

// Detect Patterns
// Bullish
hammerDetected = enableHammer and isHammer()
bullEngulfDetected = enableBullEngulfing and isBullishEngulfing()
piercingDetected = enablePiercingLine and isPiercingLine()
morningStarDetected = enableMorningStar and isMorningStar()
threeWhiteDetected = enableThreeWhiteSoldiers and isThreeWhiteSoldiers()

// Bearish
hangingManDetected = enableHangingMan and isHangingMan()
bearEngulfDetected = enableBearEngulfing and isBearishEngulfing()
darkCloudDetected = enableDarkCloudCover and isDarkCloudCover()
eveningStarDetected = enableEveningStar and isEveningStar()
threeBlackDetected = enableThreeBlackCrows and isThreeBlackCrows()

// Plot Bullish Patterns
plotshape(enableHammer and hammerDetected, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer")
plotshape(enableBullEngulfing and bullEngulfDetected, title="Bullish Engulfing", location=location.belowbar, color=color.green, style=shape.labelup, text="Engulf")
plotshape(enablePiercingLine and piercingDetected, title="Piercing Line", location=location.belowbar, color=color.green, style=shape.labelup, text="Piercing")
plotshape(enableMorningStar and morningStarDetected, title="Morning Star", location=location.belowbar, color=color.green, style=shape.labelup, text="Morning")
plotshape(enableThreeWhiteSoldiers and threeWhiteDetected, title="Three White Soldiers", location=location.belowbar, color=color.green, style=shape.labelup, text="3 Soldiers")

// Plot Bearish Patterns
plotshape(enableHangingMan and hangingManDetected, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging")
plotshape(enableBearEngulfing and bearEngulfDetected, title="Bearish Engulfing", location=location.abovebar, color=color.red, style=shape.labeldown, text="Engulf")
plotshape(enableDarkCloudCover and darkCloudDetected, title="Dark Cloud Cover", location=location.abovebar, color=color.red, style=shape.labeldown, text="Dark Cloud")
plotshape(enableEveningStar and eveningStarDetected, title="Evening Star", location=location.abovebar, color=color.red, style=shape.labeldown, text="Evening")
plotshape(enableThreeBlackCrows and threeBlackDetected, title="Three Black Crows", location=location.abovebar, color=color.red, style=shape.labeldown, text="3 Crows")

// Strategy Execution
if hammerDetected or bullEngulfDetected or piercingDetected or morningStarDetected or threeWhiteDetected
    strategy.entry("Bullish Entry", strategy.long)

if hangingManDetected or bearEngulfDetected or darkCloudDetected or eveningStarDetected or threeBlackDetected
    strategy.entry("Bearish Entry", strategy.short)