English 日本語
preview
Von Python zu MQL5: Eine Reise in quanteninspirierte Handelssysteme

Von Python zu MQL5: Eine Reise in quanteninspirierte Handelssysteme

MetaTrader 5Handel | 20 März 2025, 09:35
134 0
Javier Santiago Gaston De Iriarte Cabrera
Javier Santiago Gaston De Iriarte Cabrera

Einführung

In dieser gründlichen Untersuchung von quanteninspirierten Handelssystemen werden wir uns auf eine Reise begeben, die theoretische Ideen des Quantencomputings mit realen Handelsanwendungen verbindet. Dieses Tutorial beginnt mit grundlegenden Ideen zum Quantencomputing und endet mit einer realen MQL5-Implementierung. Es soll Sie durch den gesamten Entwicklungsprozess führen. Wir werden erörtern, wie der Handel von der Verwendung von Quantenkonzepten profitieren kann, unseren Entwicklungsansatz vom Python-Prototyp bis zur Integration von MQL5 beschreiben und reale Leistungsdaten und Code-Implementierungen vorstellen.

Dieser Artikel untersucht die Anwendung von durch Quanten inspirierten Konzepten in Handelssystemen und schlägt eine Brücke zwischen theoretischem Quantencomputing und der praktischen Umsetzung in MQL5. Wir führen Sie in die wesentlichen Quantum-Prinzipien ein und leiten Sie vom Python-Prototyping bis zur MQL5-Integration an, mit realen Leistungsdaten.

Im Gegensatz zum traditionellen Handel, der sich auf binäre Entscheidungen stützt, machen sich quanteninspirierte Handelsmodelle das Marktverhalten zunutze, das Quantenphänomenen ähnelt - mehrere gleichzeitige Zustände, Verbindungen und abrupte Zustandswechsel. Durch den Einsatz von Quantensimulatoren wie Qiskit können wir von Quanten inspirierte Algorithmen auf klassischen Computern anwenden, um mit Marktunsicherheiten umzugehen und vorausschauende Erkenntnisse zu gewinnen.

Cirquits

Für Händler und Entwickler, die quanteninspirierte Systeme einsetzen wollen, ist es wichtig, diese Unterschiede zu verstehen.

In unserer Python-Implementierung simuliert Qiskit Quantenschaltungen. Die Marktdaten werden mit Hilfe von RY-Gattern (Rotationsgattern) in Quantenzustände kodiert, die Marktmerkmale als Quantenüberlagerungen darstellen. CNOT-Gates ermöglichen die Verschränkung, die Erfassung komplexer Marktkorrelationen, und Messungen liefern Prognosen, die eine Genauigkeit von 54 % erreichen.

Die MQL5-Version nähert sich aufgrund ihrer klassischen Architektur dem Quantenverhalten an. Wir verwenden Merkmalsextraktion und klassische Mathematik, um Quantenzustände und Verschränkung zu simulieren. Die MQL5-Implementierung ist zwar weniger genau (52 %), unterstützt aber den Echtzeithandel und die direkte Anbindung an den Markt.

Jeder Ansatz verarbeitet Daten anders: Python kodiert Daten direkt in Quantenzustände, während MQL5 ein Feature Engineering erfordert. Qiskit von Python bietet echte Quantengatter, während MQL5 auf klassischen Näherungen beruht, was die Komplexität, aber auch die Flexibilität erhöht. Bei der Simulation der Verschränkung erzeugen die CNOT-Gatter von Python echte Quantenverbindungen, während MQL5 klassische Korrelationen verwendet.

Diese Unterscheidungen zeigen die Stärken und Grenzen der einzelnen Ansätze auf. Python stellt einen starken Prototyp dar, während MQL5 eine praktische, handelbare Lösung bietet, die quanteninspirierte Berechnungen an klassische Handelsbeschränkungen anpasst.


Der Python-Prototyp: Eine Grundlage für Innovation

Wir begannen mit Python aufgrund seiner robusten wissenschaftlichen Bibliotheken - NumPy, Pandas und vor allem Qiskit - die sich ideal für die Erstellung von Prototypen für unser von Quanten inspiriertes Handelssystem eigneten. Die einfache Syntax und die Ressourcen von Python ermöglichten effiziente Experimente und die Entwicklung erster Algorithmen.

Der Python-Prototyp erzielte unter verschiedenen Marktbedingungen eine konstante Erfolgsquote von 54 % - ein bescheidener, aber bedeutender Vorteil bei einem soliden Risikomanagement.

Mit Qiskit haben wir eine Drei-Qubit-Architektur entwickelt und getestet, die die gleichzeitige Analyse von acht Marktzuständen ermöglicht. Die Flexibilität von Python ermöglichte schnelle Schaltkreisanpassungen, Parameterabstimmung und schnelle Ergebnisse, was unseren Entwicklungsprozess erleichterte.

Hier ist ein vereinfachtes Beispiel für die Implementierung unserer Quantenschaltung in Python:

class HourlyQuantumForex:
    def __init__(self):
        self.n_qubits = 3
        self.simulator = BasicAer.get_backend('qasm_simulator')
        self.min_confidence = 0.15

    def create_circuit(self, input_data):
        qc = QuantumCircuit(self.n_qubits, self.n_qubits)
        # Input encoding
        for i in range(self.n_qubits):
            feature_idx = i % len(input_data)
            angle = np.clip(np.pi * input_data[feature_idx], -2*np.pi, 2*np.pi)
            qc.ry(angle, i)
        
        # Entanglement operations
        for i in range(self.n_qubits - 1):
            qc.cx(i, i + 1)
        
        return qc


Umstellung auf MQL5: Praktische Umsetzung

Praktische Faktoren haben uns dazu bewogen, unser quanteninspiriertes System auf MQL5 zu übertragen. MQL5 bietet direkte Interaktion mit Handelsplattformen, Echtzeit-Zugriff auf Marktdaten und schnelle Ausführungsmöglichkeiten, obwohl Python beim Prototyping und Testen überlegen war. Die Schwierigkeit bestand darin, die Prinzipien des Quantencomputings in den konventionellen Rechenrahmen von MQL5 zu integrieren und gleichzeitig die Vorhersagekraft des Systems zu erhalten.

Die Schwierigkeiten bei der Analyse von Echtzeit-Marktdaten und die Unterschiede in der Implementierung zwischen dem Quantensimulator von Python und der konventionellen Rechenumgebung von MQL5 sind die Gründe für diesen geringen Rückgang der Genauigkeit (54 gegenüber 51-52 %).

Hier ist ein Blick auf unsere von Quanten inspirierte MQL5-Implementierung:

class CQuantumForex {
private:
    int m_lookback_bars;
    double m_features[];
    
public:
    double PredictNextMove(string symbol) {
        GetFeatures(symbol, m_features);
        return SimulateQuantumCircuit(m_features);
    }
    
    double SimulateQuantumCircuit(double &features[]) {
        // Quantum-inspired calculations
        double state_probs[];
        ArrayResize(state_probs, (int)MathPow(2.0, (double)NUM_QUBITS));
        
        // Circuit simulation logic
        for(int shot = 0; shot < SHOTS; shot++) {
            // Quantum state manipulation
        }
        
        return GetWeightedVote(state_probs);
    }
};


Praktische Anwendung und Ergebnisse

Die praktische Anwendung unseres quanteninspirierten Systems zeigte eine Reihe faszinierender Trends bei der Marktprognose. In Zeiten erheblicher Marktvolatilität, in denen die konventionelle technische Analyse häufig versagt, hat dieser Ansatz seine außergewöhnliche Stärke bewiesen. Dieser Vorteil ergibt sich aus der Fähigkeit der quanteninspirierten Methode, mehrere Marktzustände gleichzeitig zu verarbeiten.

Die folgenden Ergebnisse stammen aus unseren Tests unter verschiedenen Marktbedingungen:

  • Beim Live-Handel zeigt sich die Verlässlichkeit des Modells in der Praxis, da es unter verschiedenen Marktbedingungen konstant gute Ergebnisse erzielte.

  • Darüber hinaus konnten wir feststellen, dass die Genauigkeit des Modells während bestimmter Marktzeiten erheblich zunahm. Indem wir uns auf diese Zeiten konzentrieren, können wir die Vorteile einer größeren Vorhersehbarkeit nutzen und die Gesamteffizienz unseres Handelsansatzes verbessern.

  • In Zeiten extremer Volatilität verbesserte sich die Leistung des Modells merklich. Die potenzielle Rentabilität des Modells hat sich erhöht, da wir in der Lage sind, uns in einem volatilen Umfeld anzupassen und besser abzuschneiden, sodass wir von stärkeren Preisschwankungen profitieren können.

  • Um schließlich Transaktionen mit geringer Wahrscheinlichkeit effizient auszuschließen, haben wir Konfidenzniveaus verwendet. Indem wir uns auf Signale mit hohem Vertrauen konzentrierten, half uns diese selektive Strategie, unnötige Risiken zu verringern, was die Handelsergebnisse noch weiter verbesserte.
Auch wenn die Trefferquoten auf den ersten Blick niedrig erscheinen mögen, bestätigt die Stabilität und Beständigkeit des Systems, die diese Ergebnisse in verschiedenen Marktsituationen aufrechterhalten, die von Quanten inspirierte Methode.


Leistungsmetriken und Analyse

Eine gründliche Untersuchung des Leistungsunterschieds zwischen unserem Python-Prototyp und der MQL5-Implementierung ist gerechtfertigt. Dieser Unterschied spiegelt die Schwierigkeiten beim Übergang von einer kontrollierten Testumgebung zu Echtzeit-Marktbedingungen wider und ist nicht nur eine Einschränkung der MQL5-Plattform. Die MQL5-Lösung bewältigt die Feinheiten der Echtzeit-Marktdynamik und die Einschränkungen bei der Datenverarbeitung, während der Python-Prototyp mit historischen Daten arbeitete und über vollständige Kenntnisse der Marktbedingungen verfügte.
Resultados para EURUSD=X:
Precisión global: 54.23%


Total predicciones: 11544

Python-Ergebnisse

Die MQL5-Implementierung hat eine Reihe von nützlichen Vorteilen, die sie für reale Handelsanwendungen lohnenswert machen, selbst mit diesem kleinen Genauigkeitsverlust. Mit dem Python-Prototyp allein wären die Händler nicht in der Lage, aus der Echtzeitverarbeitung der Marktdaten und den sofortigen Handelssignalen des Systems verwertbare Erkenntnisse zu gewinnen.


Die Integration von MQH: Eine nützliche Methode

Unsere quanteninspirierte Handelslogik ist leicht in aktuelle Expert Advisors integrierbar, da sie in einer MQL5-Header-Datei (MQH) enthalten ist. Dank dieses modularen Ansatzes können Händler quanteninspirierte Prognosen in ihre Handelsmethoden einbeziehen, ohne ihr Handelssystem komplett neu gestalten zu müssen. Die MQH-Datei enthält umfassende Funktionen für die Analyse des Marktzustands, Vertrauenskriterien und eine detaillierte Leistungsverfolgung.

Die MQH-Datei kann auf folgende Weise in einen bereits bestehenden EA eingebunden werden:
#include <Trade\Trade.mqh>
#include <Quantum\QuantumForex.mqh>

class CTradeAnalyzer {
private:
    CQuantumForex* m_quantum;
    double m_min_confidence;

public:
    CTradeAnalyzer(double min_confidence = 0.15) {
        m_quantum = new CQuantumForex();
        m_min_confidence = min_confidence;
    }

    bool AnalyzeMarket(string symbol) {
        double prediction = m_quantum.PredictNextMove(symbol);
        return MathAbs(prediction) >= m_min_confidence;
    }
};


Optimierung und Feinabstimmung

Eine Reihe entscheidender Elemente des quanteninspirierten Handelssystems kann an bestimmte Handelsbedingungen und -instrumente angepasst werden. Die Anzahl der in den Simulationen verwendeten Qubits, die Parameter für das Feature-Engineering, die Konfidenzschwellen für das Filtern von Handelsgeschäfte und die Anzahl der Quantenschaltungssimulationen sind allesamt wichtige konfigurierbare Optionen. Auch wenn unsere erste Konfiguration zu konsistenten Ergebnissen geführt hat, gibt es noch viel Raum für Verbesserungen durch sorgfältige Parameteroptimierung. Da die idealen Einstellungen je nach persönlichen Handelspräferenzen und Marktbedingungen unterschiedlich sind, überlassen wir es den Lesern, diese auszuprobieren. Zukünftige Wege und Fortschritte

Dieser Ansatz ist nur der erste Schritt zu Handelsanwendungen, die von der Quantenmechanik inspiriert sind. In den nächsten Beiträgen werden wir uns mit komplexeren Ideen der Quanteninformatik und ihren möglichen Anwendungen im Handel befassen. Höherdimensionale Quantenschaltkreise für eine gründlichere Marktanalyse, die Einbeziehung von Optimierungsalgorithmen, die von der Quantentheorie inspiriert sind, ein ausgeklügeltes, auf der Quantentheorie basierendes Feature-Engineering und die Schaffung hybrider klassisch-quantischer Handelssysteme sind einige Bereiche, die weiterer Forschung bedürfen. Ein Leitfaden für die praktische Umsetzung

Wir raten Händlern, die an der Anwendung dieser Methode interessiert sind, einen methodischen Ansatz zu wählen. Beginnen Sie mit dem Python-Prototyp, um die Anwendbarkeit des Systems auf Ihrem Zielmarkt zu bewerten und sich mit den grundlegenden Quantenideen vertraut zu machen. Danach stellen Sie schrittweise auf die MQL5-Implementierung um und beginnen mit dem Papierhandel, um zu prüfen, wie gut sie funktioniert. Wenn Sie sich sicher fühlen, passen Sie die Einstellungen des Systems an Ihre eigenen Handelsbedürfnisse und Ihre Risikobereitschaft an. Im Laufe der Zeit wird die Zuverlässigkeit durch regelmäßige Überwachung der Leistungskennzahlen verbessert.

// Constants
#define NUM_QUBITS 3

Wenn Sie die Anzahl der Qubits (NUM_QUBITS) ändern, ändert sich die Anzahl der möglichen Ausgangszustände exponentiell. Dies ist eine grundlegende Eigenschaft von Quantensystemen und hat erhebliche Auswirkungen auf die Simulation.

Im aktuellen Code ist NUM_QUBITS auf 3 gesetzt, was zu 8 (2³) möglichen Zuständen führt. Aus diesem Grund wird das Zustandsarray mit der Größe 8 initialisiert und in Schleifen durch 8 mögliche Zustände iteriert. Jedes Qubit existiert in einer Überlagerung von 0 und 1, und wenn es mit anderen Qubits kombiniert wird, vervielfacht sich die Zahl der möglichen Zustände.

Wenn man zum Beispiel die Anzahl der Qubits ändert, erhält man eine unterschiedliche Anzahl möglicher Zustände: 1 Qubit ergibt 2 Zustände (|0⟩ und |1⟩), 2 Qubits ergeben 4 Zustände (|00⟩, |01⟩, |10⟩, |11⟩), 3 Qubits ergeben 8 Zustände, 4 Qubits ergeben 16 Zustände, und so weiter. Das Muster folgt 2^n, wobei n die Anzahl der Qubits ist.

Diese exponentielle Beziehung betrifft mehrere Teile des Codes. Die Größe der Zustandsarrays muss entsprechend angepasst werden, die Quantenschaltungssimulationsschleifen müssen mehr Zustände verarbeiten, und der Speicherbedarf steigt erheblich. Wenn Sie z. B. NUM_QUBITS von 3 auf 4 erhöhen, müssen Sie die Array-Größen und Schleifengrenzen von 8 auf 16 ändern.

Die Erhöhung der Anzahl der Qubits bietet zwar eine größere Rechenkapazität und potenziell ausgefeiltere Analysemöglichkeiten, ist aber mit Kompromissen verbunden. Die Simulation wird rechenintensiver, benötigt mehr Speicherplatz und braucht länger für die Verarbeitung. Dies kann die Leistung des Expert Advisors beeinträchtigen, insbesondere wenn er auf weniger leistungsfähiger Hardware läuft oder wenn eine schnelle Ausführung für den Echtzeithandel erforderlich ist.

Im Zusammenhang mit diesem Handelsalgorithmus könnten mehr Qubits eine komplexere Merkmalskodierung und möglicherweise nuanciertere Vorhersagen von Kursbewegungen ermöglichen. Sie müssen jedoch diesen potenziellen Vorteil gegen den erhöhten Rechenaufwand abwägen und sicherstellen, dass das System für reale Handelsanwendungen praktikabel bleibt.

#define SHOTS 2000

Shots (im Code als SHOTS = 2000 definiert) stellen die Anzahl der Simulationen des Quantenschaltkreises dar, um das Quantenverhalten zu approximieren. Bei jedem „shot“ (Schnappschuss) wird der gesamte Quantenschaltkreis durchlaufen und eine Messung durchgeführt, wobei eine statistische Verteilung der Ergebnisse erstellt wird.

Das Konzept ist vergleichbar mit dem mehrfachen Würfeln eines Würfels, um seine Wahrscheinlichkeitsverteilung zu verstehen. In der Quanteninformatik:

// Simulation loop in the code
for(int shot = 0; shot < SHOTS; shot++)
{
    // Initialize quantum state
    double state[8];  
    ArrayInitialize(state, 0.0);
    state[0] = 1.0;  // Start in |000⟩ state
    
    // Run quantum circuit operations...
    
    // Measure and accumulate results
    const double rand = MathRand() / 32768.0;
    double cumsum = 0.0;
    for(int i = 0; i < 8; i++)
    {
        cumsum += state[i] * state[i];
        if(rand < cumsum)
        {
            state_probs[i] += 1.0 / SHOTS;
            break;
        }
    }
}

Bei der Wahl der optimalen Anzahl von Schnappschüssen für Ihr Quantenhandelssystem müssen mehrere Schlüsselfaktoren abgewogen werden. Der wichtigste Kompromiss besteht zwischen Genauigkeit und Ausführungsgeschwindigkeit. Wenn Sie eine höhere Anzahl von Schnappschüssen (in der Regel 5000 oder mehr) einstellen, erhalten Sie eine genauere Wahrscheinlichkeitsverteilung der Quantenzustände, was jedoch mit einer langsameren Ausführungszeit einhergeht. Umgekehrt führt die Verwendung von weniger Schnappschüssen, etwa 500-1000, zu einer schnelleren Ausführung, aber zu weniger genauen Ergebnissen. Die derzeitige Standardeinstellung von 2000 Schnappschüssen stellt einen sorgfältig gewählten Mittelweg dar, der darauf abzielt, diese konkurrierenden Anforderungen auszugleichen.

Bei der Betrachtung der spezifischen Anforderungen des Handels kommen mehrere Faktoren ins Spiel. Der Zeitrahmen des Marktes, in dem Sie handeln, ist entscheidend - schnellere Zeitrahmen erfordern möglicherweise weniger Schnappschüsse, um die Reaktionsfähigkeit aufrechtzuerhalten, während längere Zeitrahmen mehr Schnappschüsse zulassen können, um die Genauigkeit zu erhöhen. Die verfügbare Rechenleistung ist ein weiterer wichtiger Faktor, da mehr Schnappschüsse mehr Rechenleistung erfordern. Darüber hinaus sollte der für Ihre Handelsstrategie erforderliche Präzisionsgrad Ihre Wahl beeinflussen - Strategien, die eine höhere Präzision erfordern, profitieren von mehr Schnappschüssen.

Für die praktische Umsetzung empfiehlt es sich, in der ersten Testphase mit 1000-2000 Schnappschüssen zu beginnen. Dies ist eine vernünftige Grundlage für die Bewertung der Leistung des Systems. Von dort aus sollten Sie sowohl die Ausführungszeit als auch die Genauigkeitskennzahlen aktiv überwachen. Wenn Sie feststellen, dass die Ergebnisse zu verrauscht oder uneinheitlich sind, erhöhen Sie schrittweise die Anzahl der Aufnahmen. Umgekehrt sollten Sie die Anzahl der Schnappschüsse reduzieren, wenn der Expert Advisor für Ihre Handelsanforderungen zu langsam ist. Dieser iterative Ansatz ermöglicht es Ihnen, die optimale Balance für Ihre spezifischen Handelsbedingungen und Anforderungen zu finden.

# Example of how different shot counts might affect probabilities
# With 100 shots:
State |000⟩: 0.31000.0460)
State |001⟩: 0.18000.0384)

# With 2000 shots:
State |000⟩: 0.30250.0103)
State |001⟩: 0.17500.0085)

# With 10000 shots:
State |000⟩: 0.30020.0046)
State |001⟩: 0.17520.0038)
#define FEATURES_COUNT 7

Legt die Anzahl der Eingangsmerkmale fest, die von der Quantenschaltung für die Marktanalyse verwendet werden. Schauen wir uns diese 7 Funktionen im Detail an:

// 1. Normalized price range
features[0] = ((rates[0].high - rates[0].low) / rates[0].close) * 2 - 1;

// 2. Normalized volatility
features[1] = (CalculateVolatility(m_returns, MathMin(12, m_lookback_bars)) / 0.01) * 2 - 1;

// 3. Momentum
features[2] = MathMax(MathMin(CalculateMomentum(m_returns, MathMin(24, m_lookback_bars)) * 100, 1), -1);

// 4-5. Time components (hour of day encoded in circular form)
features[3] = MathSin(2 * M_PI * dt.hour / 24.0);
features[4] = MathCos(2 * M_PI * dt.hour / 24.0);

// 6. Price deviation from SMA
features[5] = MathMax(MathMin((rates[0].close - sma) / sma, 1), -1);

// 7. Latest return
features[6] = MathMax(MathMin(m_returns[0] * 100, 1), -1);

Alle Merkmale sind auf den Bereich [-1, 1] normiert, um eine einheitliche Skalierung für den Quantenschaltkreis zu gewährleisten. Sie können dies durch Hinzufügen oder Entfernen von Merkmalen ändern.


Technische Überlegungen und Beschränkungen

Dieses von der Quantenphysik inspirierte System zeigt zwar ein vielversprechendes Potenzial, doch muss man sich auch über gewisse Einschränkungen im Klaren sein. Dabei handelt es sich allerdings um einen simulierten Quantenprozess und nicht um eine tatsächliche Quantenberechnung. Die Anforderungen an die Echtzeitverarbeitung können die Leistung beeinträchtigen, und wechselnde Marktbedingungen können die Genauigkeit der Vorhersagen beeinflussen. Um diese Faktoren abzumildern, ist es entscheidend, solide Risikomanagementmaßnahmen in den Handelsrahmen zu integrieren.

#define HOUR_LOOKBACK 24

Legt das Standardzeitfenster für die Analyse historischer Daten fest, das auf 24 Stunden eingestellt ist. Dieser Parameter spielt eine entscheidende Rolle dabei, wie das Handelssystem die Marktmuster analysiert und verschiedene Indikatoren berechnet.

Der Rückblickzeitraum wirkt sich auf mehrere wichtige Berechnungen im System aus. Bei der Analyse der Volatilität verwendet der Code bis zu 12 Balken (die Hälfte des Rückblicks) zur Berechnung der Standardabweichung der Renditen. Bei den Momentum-Berechnungen werden alle 24 Balken zur Berechnung der durchschnittlichen Kursbewegungen herangezogen. Dadurch wird ein Gleichgewicht zwischen dem jüngsten Marktverhalten und den längerfristigen Trends hergestellt.

Der 24-Stunden-Rückblick wurde wahrscheinlich gewählt, um volle tägliche Marktzyklen zu erfassen. Dies ist sinnvoll, da die Devisenmärkte aufgrund der Eröffnung und Schließung der wichtigsten Handelssitzungen (asiatische, europäische und amerikanische Sitzungen) häufig zyklische 24-Stunden-Muster aufweisen. Jede Sitzung kann unterschiedliche Handelsvolumina und Preisverhaltensmuster mit sich bringen.

Sie können diesen Wert je nach Ihren Handelsanforderungen ändern. Ein kürzerer Rückblick (z. B. 12 Stunden) würde das System reaktionsschneller auf die jüngsten Marktveränderungen machen, aber möglicherweise auch anfälliger für Störungen. Ein längerer Rückblick (z. B. 48 Stunden) würde stabilere Signale liefern, aber möglicherweise langsamer auf Marktveränderungen reagieren. Denken Sie daran, dass eine Änderung von HOUR_LOOKBACK den Speicherverbrauch und die Verarbeitungszeit beeinflusst, da mehr historische Daten gespeichert und analysiert werden müssen.

// Input parameters
input int      InpPredictBars   = 2;         // Predict Bars (1-5)
input double   InpMinMove       = 0.00001;     // Minimum Move
input double   InpMinConfidence = 0.15;       // Minimum Confidence
input int      InpLogInterval   = 1;         // Log Interval
input int      InpLookbackBars  = 200;        // Lookback Bars for Analysis

InpPredictBars = 2 gibt an, wie viele Balken in der Zukunft das System versucht, vorherzusagen. Bei einem Wert von 2 macht das System Vorhersagen für die Kursbewegungen der nächsten 2 Balken. Die Spanne ist auf 1-5 Balken begrenzt, da die Vorhersagen über längere Zeiträume tendenziell ungenauer werden. Ein kleinerer Wert (z. B. 1) ermöglicht unmittelbarere Vorhersagen, könnte aber größere Bewegungen verpassen, während größere Werte (z. B. 4-5) versuchen, längere Trends zu erfassen, aber möglicherweise mit geringerer Genauigkeit.

InpMinMove = 0,00001 legt die Mindestkursbewegung fest, die erforderlich ist, um eine Vorhersage als erfolgreich zu betrachten. Bei Devisenpaaren wird dieser Wert normalerweise auf 1 Pip (0,00001 bei 5-stelligen Brokern) festgelegt. Dadurch wird verhindert, dass das System sehr kleine Kursbewegungen zählt, bei denen es sich lediglich um Marktstörungen handeln könnte. Je nach Ihrer Strategie können Sie diesen Wert für einen konservativeren Handel erhöhen oder für einen aggressiveren Handel verringern.

InpMinConfidence = 0,15 (15%) ist die Vertrauensschwelle, die erforderlich ist, um eine Vorhersage ernst zu nehmen. Das Quantensystem liefert Vorhersagen mit einem Vertrauensniveau zwischen 0 und 1. Jede Vorhersage mit einer Konfidenz von weniger als 0,15 wird als „neutral“ betrachtet und ignoriert. Höhere Werte (wie 0,25) würden das System selektiver machen, aber weniger Signale erzeugen, während niedrigere Werte mehr Signale erzeugen würden, aber möglicherweise mit geringerer Qualität.

InpLogInterval = 1 bestimmt, wie oft (in Zeitabschnitten) das System seine Leistungskennzahlen protokolliert. Ein Wert von 1 bedeutet, dass jeder Balken protokolliert wird. Dies ist nützlich für die Überwachung der Systemleistung, aber eine zu häufige Protokollierung kann die Leistung beeinträchtigen. Sie können diesen Wert im Live-Handel erhöhen.

InpLookbackBars = 200 legt fest, wie viele historische Balken das System für seine Analyse verwendet. Mit 200 Balken verfügt das System über eine gute Menge an historischen Daten, um Merkmale und Muster zu berechnen. Mehr Balken (z. B. 500) würden den historischen Kontext vergrößern, aber mehr Rechenleistung erfordern, während weniger Balken besser auf aktuelle Marktveränderungen reagieren, aber möglicherweise längerfristige Muster übersehen könnte.

Diese Parameter können in der MetaTrader-Plattform angepasst werden, bevor der EA ausgeführt wird. Um die richtige Kombination zu finden, sind oft Tests mit historischen Daten und die Überwachung der Live-Performance erforderlich.


Blick in die Zukunft

Wir gehen davon aus, dass mit der Weiterentwicklung der Quantencomputertechnologie komplexere Anwendungen im Handel entstehen werden. Auch wenn das derzeitige System Algorithmen verwendet, die von der Quantenmechanik beeinflusst sind, ist dies erst der Anfang dessen, was bald möglich sein könnte. In unserem nächsten Beitrag werden wir uns eingehender mit dem Einsatz von Quantencomputern im Handel befassen und weitere komplizierte und anspruchsvolle Anwendungen vorstellen.


EA-Beispiel

Dieser Multi-Session Forex Expert Advisor verwendet von Quanten inspirierte Algorithmen, um über europäische, amerikanische und asiatische Sessions hinweg zu handeln, wobei er für jeden Zeitrahmen spezifische Parameter und Analysemethoden verwendet.

Die Stärke des Systems liegt in seinem mehrschichtigen Risikomanagement, das dynamische Positionsgrößen, Anti-Martingale-Progression und aktienbasierte Absicherung kombiniert. Es analysiert mehrere Marktmerkmale wie ATR, Momentum und verschiedene technische Indikatoren durch sein von Quanten inspiriertes Analysesystem, um zuverlässige Handelssignale zu generieren.

Eine wichtige Innovation ist das adaptive Trailing-Stop-System und die Multi-Timeframe-Analysekomponente, die sicherstellt, dass die Handelsgeschäfte sowohl auf kurzfristige (H1) als auch auf langfristige (H4) Trends abgestimmt sind. Darüber hinaus optimiert der Maximum Favorable Excursion (MFE)-Analysator kontinuierlich die Ausstiegspunkte auf der Grundlage des historischen Kursverhaltens und hilft so, das Gewinnpotenzial zu maximieren.

Dies ist ein einfaches Beispiel dafür, was man mit einer Vorhersage, bei der man fast eine Münze wirft, mit der Auswahl von Sitzungen und Stunden, MFE-Kontrolle und Risikomanagement erreichen kann.

Dieses Setup nimmt den Gewinn aus dem MFE mit und nutzt nur die Vorhersagen, um zu kaufen oder verkaufen. Dieser EA hat eine große Anzahl von Optionen und Konfigurationen, ich würde nicht empfehlen, eine große Optimierung zu tun.

Einstellungen

Grafik

Backtest

Setup #2

Gleiche Einstellungen, andere Eingänge. Ich kann keine MQL5 Cloud Network Optimization machen, weil man das von Spanien aus nicht machen kann (Politik ... ), und eine lokale würde zu viel Zeit in Anspruch nehmen, aber dieser EA hat viele Optionen, bitte nutzen Sie sie und stellen Sie den EA fertig. Wenn Sie Zeit und Ressourcen haben, sollten Sie eine umfassende Optimierung vornehmen, um herauszufinden, was am besten passt.

Grafik #2

Anmerkung: Die Funktionen wurden geändert, die Strategie ist nicht vollständig ausgefeilt, aber sie kann als Beispiel dienen, und man kann sie weiterverfolgen und fertigstellen. Die Losgrößenbestimmung und das Risikomanagement müssen aktualisiert und vieles mehr muss erledigt werden. Dies ist nur ein Beispiel, Sie müssen auf eigene Verantwortung handeln, aber dies ist ein guter Ausgangspunkt für Ihren eigenen EA. Da die Imputs zu zahlreich sind, werde ich eines der Eingebe-Einstelllungen hochladen, die ich (ohne Optimierung) für EURUSD und dem Zeitrahmen 1-Stunde verwendet habe. Außerdem habe ich die mqh für dieses Beispiel geändert, Sie könnten dies auch für sich selbst tun.

Wie Sie mit diesem EA vorgehen müssen, müssen Sie zunächst diesen Artikel verstehen, und danach müssen Sie die wichtigen Eingaben durchgehen und sehen, wohin sie gehen, und wohin diese Funktion geht usw... Die wichtige Funktion ist OnTick(), versuchen Sie einfach zu sehen, woher die Funktionen von OnTick kommen, und fangen Sie an, von dort aus Änderungen vorzunehmen, die Lernkurve wird einfach sein, wenn Sie so anfangen.


Schlussfolgerung

In dieser Studie wurde untersucht, wie die Prinzipien des Quantencomputings in der Handelsbranche genutzt werden können. Wir haben ein Handelssystem mit einem Quantenthema entwickelt, das von einem Python-Prototyp zu einer MQL5-Implementierung überging. Die Ergebnisse sind ermutigend: Die Trefferquoten sind sowohl in simulierten als auch in realen Handelssituationen konstant. Der Ansatz war besonders in Situationen mit hoher Volatilität erfolgreich, in denen herkömmliche Modelle häufig versagen. Es ist wichtig, daran zu denken, dass es sich um eine Quantensimulation handelt, und dass Variablen wie Marktbedingungen und Datenqualität einen Einfluss auf die Leistung haben können.

Zusammenfassend lässt sich sagen, dass diese Untersuchung von quanteninspirierten Handelssystemen einen Blick in die Zukunft des algorithmischen Handels ermöglicht, indem die Prinzipien der Quanteninformatik genutzt werden, um die Komplexität der Finanzmärkte zu bewältigen. Während die Integration von Quantenkonzepten in MQL5 einen bedeutenden Schritt in Richtung praktischer Anwendung darstellt, unterstreicht sie auch die Notwendigkeit einer sorgfältigen Abwägung zwischen rechnerischer Raffinesse und praktischer Anwendbarkeit.

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/16300

Beigefügte Dateien |
EA.zip (49.81 KB)
setup_2.set (8.94 KB)
Der Client im Connexus (Teil 7): Hinzufügen der Client-Schicht Der Client im Connexus (Teil 7): Hinzufügen der Client-Schicht
In diesem Artikel setzen wir die Entwicklung der Bibliothek Connexus fort. In diesem Kapitel erstellen wir die Klasse CHttpClient, die für das Senden einer Anfrage und den Empfang eines Auftrags verantwortlich ist. Wir behandeln auch das Konzept von „Mocks“, wodurch die Bibliothek von der WebRequest-Funktion entkoppelt wird, was den Nutzern mehr Flexibilität bietet.
Erstellen von einem Trading Administrator Panel in MQL5 (Teil VI): Schnittstelle für mehrere Funktionen (I) Erstellen von einem Trading Administrator Panel in MQL5 (Teil VI): Schnittstelle für mehrere Funktionen (I)
Die Rolle des Handelsadministrators geht über die reine Telegram-Kommunikation hinaus; er kann auch verschiedene Kontrolltätigkeiten ausüben, einschließlich Auftragsmanagement, Positionsverfolgung und Schnittstellenanpassung. In diesem Artikel geben wir praktische Einblicke in die Erweiterung unseres Programms zur Unterstützung mehrerer Funktionalitäten in MQL5. Dieses Update zielt darauf ab, die Beschränkung des aktuellen Admin Panels zu überwinden, das sich in erster Linie auf die Kommunikation konzentriert, und ermöglicht es, ein breiteres Spektrum von Aufgaben zu bewältigen.
Feature Engineering mit Python und MQL5 (Teil II): Winkel des Preises Feature Engineering mit Python und MQL5 (Teil II): Winkel des Preises
Im MQL5-Forum gibt es viele Beiträge, in denen um Hilfe bei der Berechnung der Steigung von Preisänderungen gebeten wird. In diesem Artikel wird eine Möglichkeit zur Berechnung des Winkels aufgezeigt, der sich aus den Kursveränderungen eines beliebigen Marktes ergibt, mit dem Sie handeln möchten. Außerdem werden wir die Frage beantworten, ob die Entwicklung dieser neuen Funktion den zusätzlichen Aufwand und die investierte Zeit wert ist. Wir werden untersuchen, ob die Steigung des Kurses die Genauigkeit unseres KI-Modells bei der Vorhersage des USDZAR-Paares auf dem M1 verbessern kann.
Generative Adversarial Networks (GANs) für synthetische Daten in der Finanzmodellierung (Teil 1): Einführung in GANs und synthetische Daten für die Finanzmodellierung Generative Adversarial Networks (GANs) für synthetische Daten in der Finanzmodellierung (Teil 1): Einführung in GANs und synthetische Daten für die Finanzmodellierung
Dieser Artikel stellt Händlern Generative Adversarial Networks (GANs) zur Generierung von synthetischen Finanzdaten vor und geht dabei auf die Datenbeschränkungen beim Modelltraining ein. Es behandelt GAN-Grundlagen, Python und MQL5-Code-Implementierungen und praktische Anwendungen im Finanzwesen, die es Händlern ermöglichen, die Modellgenauigkeit und -robustheit durch synthetische Daten zu verbessern.