
Die quantitative Strategie “Multi-Indicator-Fusion POMDP-Enlightened Trading System” ist eine Handelsmethode, die auf der technischen Analyse und teilweise beobachtbaren Markov-Entscheidungsprozessen (POMDP) basiert. Die Strategie kombiniert geschickt zufällige, relativ starke Indikatoren (Stochastic RSI), Geldflussindikatoren (MFI), Bollinger Bands (Bollinger Bands) und Moving Average Convergence Spread Indicator (MACD) zur Erzeugung von Kauf- und Verkaufssignalen.
Die Kernprinzipien der Strategie basieren auf der Idee des teilweise beobachtbaren Markov-Entscheidungsprozesses (POMDP), der den Markt als ein System betrachtet, dessen Zustand teilweise sichtbar ist. Der Marktzustand wird durch folgende wichtige technische Indikatoren beobachtet:
Bollinger-BänderDer Standard Differenzfaktor ist 2,0 und bildet eine Auf- und Abwärtsbahn, die zur Identifizierung von Preisschwankungen verwendet wird.
Der Stochastic RSI (RSI) ist ein relativ schwacher Indikator.Der K-Wert wird als überkauft angesehen, wenn er unter 30 liegt, und als überkauft, wenn er über 70 liegt.
Kapitalflussindikatoren (MFI)MFI unter 40 wird als Überverkaufssignal und über 60 als Überkaufssignal angesehen.
MACD-IndikatorenDie MACD-Linie wird mit der 12/26/9-Parameter-Einstellung in Beziehung zur Signallinie verwendet, um die Trendrichtung zu bestätigen.
Die Entscheidungsregeln der Strategie lauten wie folgt:
Die Strategie implementiert auch eine zeitbasierte automatische Ausstiegsmechanik, die automatisch nach fünf Haltungszyklen platziert, um das Risiko der Haltungszeit effektiv zu kontrollieren.
Mehrdimensionale SignalbestätigungDurch die Kombination mehrerer technischer Indikatoren (Stochastic RSI, MFI, MACD) kann die Strategie die Marktsituation aus verschiedenen Blickwinkeln betrachten und verringert das Risiko von irreführenden Signalen, die ein einzelner Indikator verursachen kann.
Anpassungsfähigkeit des POMDP-RahmensDie Einführung des POMDP-Gedankens ermöglicht es der Strategie, relativ optimierte Entscheidungen unter Unsicherheit und teilweise beobachtbaren Bedingungen zu treffen, die besser an die tatsächlichen Marktbedingungen angepasst sind.
Klare RisikokontrollenDie Strategie ermöglicht eine Risikokontrolle in der Zeitdimension, indem sie einen festen Ausstiegszyklus (fünf Zyklen) festlegt und verhindert, dass die Verluste durch eine langfristige nachteilige Entwicklung ausbreiten.
Komplementarität der technischen IndikatorenDer Stochastic RSI spiegelt hauptsächlich Preisbewegungen wider, MFI kombiniert Informationen über Preise und Handelsvolumen, der MACD fängt Trendänderungen auf, die Brin-Band definiert die Bandbreite der Schwankungen. Diese Indikatoren ergänzen sich gegenseitig und erhöhen die Zuverlässigkeit des Signals.
Robustheit der Code-ImplementierungDie Strategie verwendet math.sum anstelle von ta.sum, um mögliche Berechnungsfehler zu korrigieren und die Stabilität der Strategie zu verbessern.
Automatisierte DurchführbarkeitDie Implementierung von Pine Script auf Basis von TradingView ermöglicht die automatische Generierung und Ausführung von Handelssignalen, wodurch menschliche Einmischung und emotionale Auswirkungen reduziert werden.
Die Grenzen des ÜberkaufsStrategie: Die Verwendung von festen Überkauf-Überverkauf-Termins (Stochastic RSI: 30⁄70 und MFI: 40⁄60), die in verschiedenen Marktumgebungen und für verschiedene Produkte nicht immer optimal sind und zu einer Verringerung der Signalqualität führen können.
Das zweischneidige Schwert des Zeit-Aus-MechanismusDer festen 5-Zyklen-Ausstiegsmechanismus, der zwar das Risiko kontrolliert, aber auch vorzeitig aus einem günstigen Trend aussteigen kann, begrenzt die potenziellen Gewinne.
MehrschätzungsrisikoObwohl mehrere Indikatoren eine mehrdimensionale Bestätigung bieten, kann es zu einer gewissen Korrelation und Überschneidung zwischen den Indikatoren kommen, die unter bestimmten Marktbedingungen zu Signalstärkungsschwankungen führen kann.
Unzureichende Anpassungsfähigkeit des TrendmarktsDie Strategie basiert hauptsächlich auf Überkauf- und Umkehrsignalen, die in starken Trendmärkten zu viele falsche Signale erzeugen können, was zu häufigen Transaktionen und unnötigen Kosten führt.
Optimierung der ParameterabhängigkeitStrategieeffektivität hängt stark von den Einstellungen der einzelnen Kennzahlenparameter ab. Unterschiedliche Marktbedingungen können unterschiedliche Kombinationen von Parametern erfordern, was die Komplexität der Strategiepflege und -anpassung erhöht.
Fehlende Anpassungsmechanismen für VolatilitätDie Strategie hat keine Anpassungsmechanismen für die Veränderung der Marktfluktuation und kann in einem Umfeld mit hoher Volatilität mehr falsche Signale erzeugen.
Dynamische Parameter-AnpassungsmechanismenEinführung von Anpassungsmechanismen für Parameter, die auf Marktbedingungen basieren, z. B. Anpassung der Standarddifferenz der Brin-Band an die Volatilität oder Anpassung der Überkauf-Überverkauf-Schwelle an die Stärke der Markttrends, um die Anpassungsfähigkeit der Strategie in verschiedenen Marktumgebungen zu verbessern.
Perfekter Stop-Loss-MechanismusZusätzlich zu den Exit-Mechanismen in der Zeitdimension wurden die Stop-Loss-Stopp-Mechanismen auf Basis von Preisänderungen hinzugefügt, z. B. die Einstellung von Stop-Loss-Punkten auf Basis von ATR, um die Allgemeingültigkeit des Risikomanagements zu verbessern.
Marktumgebungsfilter: Hinzufügen von Modulen zur Identifizierung von Marktumständen, wie z. B. Trendstärke- oder Volatilitätsindikatoren, Verringerung oder Aussetzung von Geschäften in nicht strategisch geeigneten Marktumständen und Vermeidung von übermäßigen Geschäften unter ungünstigen Bedingungen.
SignalqualitätsbewertungEntwicklung eines Signalqualitäts-Rating-Mechanismus, der Signale anhand von mehreren Kennzahlen wie Konsistenz, Marktumfeld und historischen Signalerfolg bewertet. Nur hochwertige Signale werden ausgeführt, um die Effektivität der Strategie zu verbessern.
Maschinelles Lernen verstärktDas POMDP-Framework wird mit einer Methode des maschinellen Lernens kombiniert, um die Entscheidungsstrategie durch das Training historischer Daten zu optimieren, so dass die Systeme aus den Transaktionen der Vergangenheit lernen und verbessern können.
Optimierung der GeldmanagementstrategieDie Einführung eines dynamischen Positionsmanagementsystems, das die Handelsgröße an die Signalstärke, die Marktlage und das Konto-Risiko anpasst, um eine wissenschaftlichere Geldverwaltung zu ermöglichen.
“Multi-Indicator-Fusion POMDP-Enlightened Trading System” ist eine quantitative Trading-Strategie, die mehrere technische Indikatoren und die POMDP-Entscheidungsrahmen kombiniert. Die Strategie löst die Probleme der Teil-Markt-Observabilität zu einem gewissen Grad durch die Synergie von Indikatoren wie Stochastic RSI, MFI, MACD und Brin-Band und bietet eine mehrdimensionale Signalbestätigung für Handelsentscheidungen.
Die wichtigsten Vorteile der Strategie liegen in ihrer Fähigkeit, den Markt aus verschiedenen Perspektiven zu beobachten und eine klare Risikokontrolle zu gewährleisten, aber sie steht auch vor der Herausforderung, die Parameter-Optimierungs-Abhängigkeit und die unzureichende Anpassungsfähigkeit an bestimmte Marktumgebungen zu verbessern. Die Strategie hat das Potenzial, ihre Robustheit und Anpassungsfähigkeit weiter zu verbessern, indem sie Optimierungen wie die Einführung von dynamischen Parameteranpassungen, die Verbesserung von Stop-Loss-Mechanismen und die Erhöhung der Filter für die Marktumgebung einführt.
Insgesamt handelt es sich um ein quantitatives Trading-System, das vernünftig und logisch konzipiert ist. Es ist besonders für Trader geeignet, die eine gewisse Vorhersagekraft für den Markt haben, aber Risiken kontrollieren möchten. Durch die kontinuierliche Optimierung und Anpassung an verschiedene Marktumgebungen kann die Strategie zu einem wirksamen Werkzeug in der Toolkit des Traders werden.
/*backtest
start: 2024-07-22 00:00:00
end: 2025-07-20 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":2000000}]
*/
//@version=6
strategy("Debit Spread POMDP‑Inspired Strategy", overlay=true, margin_long=100, margin_short=100)
// ——— Constants
const int K_OVERSOLD = 30
const int K_OVERBOUGHT = 70
const int MFI_OVERSOLD = 40
const int MFI_OVERBOUGHT = 60
const int EXIT_BARS = 5
// ——— User inputs
stochLength = input.int(14, "Stochastic RSI length")
stochSmooth = input.int(3, "Stochastic smoothing")
mfiLength = input.int(14, "MFI length")
bbLength = input.int(20, "Bollinger length")
bbStdDev = input.float(2.0, "Bollinger std dev")
macdFast = input.int(12, "MACD fast length")
macdSlow = input.int(26, "MACD slow length")
macdSignal = input.int(9, "MACD signal length")
// ——— Bar index tracking for exits
var int callEntryBar = na
var int putEntryBar = na
// ——— Bollinger Bands
basis = ta.sma(close, bbLength)
upper = basis + bbStdDev * ta.stdev(close, bbLength)
lower = basis - bbStdDev * ta.stdev(close, bbLength)
// ——— Stochastic RSI
rsi = ta.rsi(close, stochLength)
k = ta.sma(ta.stoch(rsi, rsi, rsi, stochLength), stochSmooth)
d = ta.sma(k, stochSmooth)
// ——— Manual MFI calculation (FIXED: using math.sum)
tp = (high + low + close) / 3.0
rawMF = tp * volume
posFlow = (tp > tp[1] ? rawMF : 0.0)
negFlow = (tp < tp[1] ? rawMF : 0.0)
posMF = math.sum(posFlow, mfiLength) // FIXED: math.sum instead of ta.sum
negMF = math.sum(negFlow, mfiLength) // FIXED: math.sum instead of ta.sum
moneyRatio = negMF != 0 ? posMF / negMF : 0.0
mfi = negMF != 0 ? 100 - 100 / (1 + moneyRatio) : 0.0
// ——— Manual MACD calculation
fastMA = ta.ema(close, macdFast)
slowMA = ta.ema(close, macdSlow)
macdLine = fastMA - slowMA
signalLine = ta.ema(macdLine, macdSignal)
// ——— POMDP‑inspired decision rules
bullCondition = ((k < K_OVERSOLD) or (mfi < MFI_OVERSOLD)) and (macdLine > signalLine)
bearCondition = ((k > K_OVERBOUGHT) or (mfi > MFI_OVERBOUGHT)) and (macdLine < signalLine)
if bullCondition
strategy.entry("CallDebit", strategy.long)
callEntryBar := bar_index // Track entry bar
if bearCondition
strategy.entry("PutDebit", strategy.short)
putEntryBar := bar_index // Track entry bar
// FIXED: Manual time-based exits using bar_index
if not na(callEntryBar) and bar_index >= callEntryBar + EXIT_BARS
strategy.close("CallDebit")
callEntryBar := na
if not na(putEntryBar) and bar_index >= putEntryBar + EXIT_BARS
strategy.close("PutDebit")
putEntryBar := na
// ——— Plots
plot(basis, color=color.gray, linewidth=1, title="BB Basis")
plot(upper, color=color.orange, linewidth=1, title="BB Upper")
plot(lower, color=color.orange, linewidth=1, title="BB Lower")
plot(k, title="%K", color=color.blue)
plot(d, title="%D", color=color.purple)
plot(mfi, title="MFI", color=color.green)
plot(macdLine - signalLine, title="MACD Histogram", color=color.red, style=plot.style_columns)