Jocimar Lopes
Jocimar Lopes
developer in free worker
Jocimar Lopes
Hat den Artikel Low-Frequency Quantitative Strategies in Metatrader 5: (Part 2) Backtesting a Lead/Lag Analysis in SQL and in Metatrader 5 veröffentlicht
Low-Frequency Quantitative Strategies in Metatrader 5: (Part 2) Backtesting a Lead/Lag Analysis in SQL and in Metatrader 5

The article describes a complete pipeline that uses data analysis for finding low-frequency lead/lag trading opportunities. It goes into building a cross-correlation-based Lead/Lag analyser step-by-step, with special attention to the most common errors beginners may commit while developing cross-asset diffusion queries. After screening dozens of cointegrated and correlated pairs, a trading candidate pair is chosen, and its tradeability is evaluated in a pure SQL backtest. Once it is qualified, the strategy is backtested on the MetaTester for parameter optimization. The Expert Advisor with respective backtest settings and optimization inputs is provided, along with Python and SQL scripts.

Jocimar Lopes
Hat den Artikel Low-Frequency Quantitative Strategies in Metatrader 5: (Part 1) Setting Up An OLAP-Friendly Data Store veröffentlicht
Low-Frequency Quantitative Strategies in Metatrader 5: (Part 1) Setting Up An OLAP-Friendly Data Store

The article outlines a practical data pipeline for quantitative analysis based on Parquet storage, Hive-style partitions, and DuckDB. It details migrating selected SQLite tables to Parquet, structuring market data by source, symbol, timeframe, and date, and querying it with SQL window functions. A Golden Cross example illustrates cross‑symbol evaluation of forward returns. Accompanying Python scripts handle data download, conversion, and execution.

Jocimar Lopes
Hat den Artikel Statistical Arbitrage Through Cointegrated Stocks (Final): Data Analysis with Specialized Database veröffentlicht
Statistical Arbitrage Through Cointegrated Stocks (Final): Data Analysis with Specialized Database

The article shows how to pair SQLite (OLTP) with DuckDB (OLAP) for statistical arbitrage data processing. DuckDB’s columnar engine, ASOF JOIN, and array functions accelerate core tasks such as quote–trade alignment and RWEC, with measured speedups from 2x to 23x versus SQLite on larger inputs. You get simpler queries and faster analytics while keeping trade execution in SQLite.

1
Jocimar Lopes
Hat den Artikel Statistical Arbitrage Through Cointegrated Stocks (Part 10): Detecting Structural Breaks veröffentlicht
Statistical Arbitrage Through Cointegrated Stocks (Part 10): Detecting Structural Breaks

This article presents the Chow test for detecting structural breaks in pair relationships and the application of the Cumulative Sum of Squares - CUSUM - for structural breaks monitoring and early detection. The article uses the Nvidia/Intel partnership announcement and the US Gov foreign trade tariff announcement as examples of slope inversion and intercept shift, respectively. Python scripts for all the tests are provided.

1
Jocimar Lopes
Hat den Artikel Statistical Arbitrage Through Cointegrated Stocks (Part 9): Backtesting Portfolio Weights Updates veröffentlicht
Statistical Arbitrage Through Cointegrated Stocks (Part 9): Backtesting Portfolio Weights Updates

This article describes the use of CSV files for backtesting portfolio weights updates in a mean-reversion-based strategy that uses statistical arbitrage through cointegrated stocks. It goes from feeding the database with the results of a Rolling Windows Eigenvector Comparison (RWEC) to comparing the backtest reports. In the meantime, the article details the role of each RWEC parameter and its impact in the overall backtest result, showing how the comparison of the relative drawdown can help us to further improve those parameters.

Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch kointegrierte Aktien (Teil 8): Rolling-Windows-Eigenvektor-Vergleich für Portfolio-Rebalancing veröffentlicht
Statistische Arbitrage durch kointegrierte Aktien (Teil 8): Rolling-Windows-Eigenvektor-Vergleich für Portfolio-Rebalancing

In diesem Artikel wird die Verwendung des Rolling-Windows-Eigenvektor-Vergleichs für die frühzeitige Diagnose von Ungleichgewichten und das Rebalancing des Portfolios in einer statistischen Arbitragestrategie der Rückkehr zum Mittelwert (Mean-Reversion) auf der Grundlage kointegrierter Aktien vorgeschlagen. Sie stellt diese Technik der traditionellen In-Sample/Out-of-Sample-ADF-Validierung gegenüber und zeigt, dass Eigenvektorverschiebungen die Notwendigkeit einer Neugewichtung signalisieren können, selbst wenn die IS/OOS-ADF immer noch eine stationäre Streuung anzeigt. Obwohl die Methode hauptsächlich für die Überwachung des Live-Handels gedacht ist, kommt der Artikel zu dem Schluss, dass der Eigenvektorvergleich auch in das Scoring-System integriert werden könnte – obwohl sein tatsächlicher Beitrag zur Leistung noch getestet werden muss.

Chacha Ian Maroa
Chacha Ian Maroa 2025.12.05
Great article
Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch kointegrierte Aktien (Teil 7): Punktesystem 2 veröffentlicht
Statistische Arbitrage durch kointegrierte Aktien (Teil 7): Punktesystem 2

In diesem Artikel werden zwei zusätzliche Bewertungskriterien für die Auswahl von Aktienkörben beschrieben, die im Rahmen der Strategien von der Rückkehr zum Mittelwert gehandelt werden sollen, genauer gesagt im Rahmen der kointegrationsbasierten statistischen Arbitrage. Er ergänzt einen früheren Artikel, in dem die Liquidität und die Stärke der Kointegrationsvektoren sowie die strategischen Kriterien des Zeitrahmens und des Rückblickzeitraums vorgestellt wurden, durch die Einbeziehung der Stabilität der Kointegrationsvektoren und der Zeit bis zur Rückkehr zum Mittelwert (Halbwertszeit). Der Artikel enthält die kommentierten Ergebnisse eines Backtests, bei dem die neuen Filter angewandt wurden, und die für die Reproduktion erforderlichen Dateien werden ebenfalls bereitgestellt.

Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch kointegrierte Aktien (Teil 6): Bewertungssystem veröffentlicht
Statistische Arbitrage durch kointegrierte Aktien (Teil 6): Bewertungssystem

In diesem Artikel schlagen wir ein Bewertungssystem für die Strategien der Rückkehr zum Mittelwert vor, das auf der statistischen Arbitrage von kointegrierten Aktien basiert. In dem Artikel werden Kriterien vorgeschlagen, die von der Liquidität und den Transaktionskosten bis zur Anzahl der Kointegrationsränge und der Zeit bis zur Umkehrung des Mittelwerts reichen, wobei die strategischen Kriterien der Datenhäufigkeit (Zeitrahmen) und des Rückblickzeitraums für die Kointegrationstests berücksichtigt werden, die vor der Bewertung der Rangfolge richtig bewertet werden. Die für die Reproduktion des Backtests erforderlichen Dateien werden zur Verfügung gestellt, und ihre Ergebnisse werden ebenfalls kommentiert.

Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch kointegrierte Aktien (Teil 5): Screening veröffentlicht
Statistische Arbitrage durch kointegrierte Aktien (Teil 5): Screening

In diesem Artikel wird ein Verfahren zum Screening von Vermögenswerten für eine statistische Arbitragestrategie durch kointegrierte Aktien vorgeschlagen. Das System beginnt mit der regulären Filterung nach wirtschaftlichen Faktoren, wie z. B. Vermögensbereich und Branche, und endet mit einer Liste von Kriterien für ein Scoring-System. Für jeden statistischen Test, der beim Screening verwendet wurde, wurde eine entsprechende Python-Klasse entwickelt: Pearson-Korrelation, Engle-Granger-Kointegration, Johansen-Kointegration und ADF/KPSS-Stationarität. Diese Python-Klassen werden zusammen mit einer persönlichen Anmerkung des Autors über den Einsatz von KI-Assistenten für die Softwareentwicklung bereitgestellt.

Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch kointegrierte Aktien (Teil 4): Modellaktualisierung in Echtzeit veröffentlicht
Statistische Arbitrage durch kointegrierte Aktien (Teil 4): Modellaktualisierung in Echtzeit

Dieser Artikel beschreibt eine einfache, aber umfassende statistische Arbitrage-Pipeline für den Handel mit einem Korb von kointegrierten Aktien. Es enthält ein voll funktionsfähiges Python-Skript zum Herunterladen und Speichern von Daten, Korrelations-, Kointegrations- und Stationaritätstests sowie eine Beispielimplementierung des Metatrader 5 Service zur Aktualisierung der Datenbank und des entsprechenden Expert Advisors. Einige Designentscheidungen werden hier zu Referenzzwecken und als Hilfe bei der Reproduktion des Experiments dokumentiert.

Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch kointegrierte Aktien (Teil 3): Datenbank-Einrichtung veröffentlicht
Statistische Arbitrage durch kointegrierte Aktien (Teil 3): Datenbank-Einrichtung

In diesem Artikel wird ein Beispiel für die Implementierung eines MQL5-Dienstes zur Aktualisierung einer neu erstellten Datenbank vorgestellt, die als Quelle für die Datenanalyse und für den Handel mit einem Korb kointegrierter Aktien dient. Der Grundgedanke des Datenbankentwurfs wird ausführlich erläutert und das Datenwörterbuch wird als Referenz dokumentiert. MQL5- und Python-Skripte werden für die Erstellung der Datenbank, die Initialisierung des Schemas und die Eingabe der Marktdaten bereitgestellt.

Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch kointegrierte Aktien (Teil 2): Expert Advisor, Backtests und Optimierung veröffentlicht
Statistische Arbitrage durch kointegrierte Aktien (Teil 2): Expert Advisor, Backtests und Optimierung

In diesem Artikel wird eine Beispielimplementierung eines Expert Advisors für den Handel mit einem Korb von vier Nasdaq-Aktien vorgestellt. Die Aktien wurden zunächst anhand von Pearson-Korrelationstests gefiltert. Die gefilterte Gruppe wurde dann mit Johansen-Tests auf Kointegration geprüft. Schließlich wurde der kointegrierte Spread mit dem ADF- und dem KPSS-Test auf Stationarität geprüft. Hier sehen wir einige Anmerkungen zu diesem Prozess und die Ergebnisse der Backtests nach einer kleinen Optimierung.

Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch kointegrierte Aktien (Teil 1): Engle-Granger- und Johansen-Kointegrationstests veröffentlicht
Statistische Arbitrage durch kointegrierte Aktien (Teil 1): Engle-Granger- und Johansen-Kointegrationstests

Dieser Artikel soll eine handelsfreundliche, sanfte Einführung in die gebräuchlichsten Kointegrationstests bieten, zusammen mit einem einfachen Leitfaden zum Verständnis ihrer Ergebnisse. Die Engle-Granger- und Johansen-Kointegrationstests können statistisch signifikante Paare oder Gruppen von Vermögenswerten aufzeigen, die eine gemeinsame langfristige Dynamik aufweisen. Der Johansen-Test ist besonders nützlich für Portfolios mit drei oder mehr Vermögenswerten, da er die Stärke der kointegrierenden Vektoren auf einmal berechnet.

Jocimar Lopes
Hat den Artikel Statistische Arbitrage durch Mean Reversion im Paarhandel: Den Markt mit Mathematik schlagen veröffentlicht
Statistische Arbitrage durch Mean Reversion im Paarhandel: Den Markt mit Mathematik schlagen

Dieser Artikel beschreibt die Grundlagen der statistischen Arbitrage auf Portfolioebene. Sein Ziel ist es, das Verständnis der Prinzipien der statistischen Arbitrage für Leser ohne tiefgreifende mathematische Kenntnisse zu erleichtern und einen konzeptionellen Rahmen für den Ausgangspunkt vorzuschlagen. Der Artikel enthält einen funktionierenden Expert Advisor, einige Anmerkungen zu seinem einjährigen Backtest und die entsprechenden Backtest-Konfigurationseinstellungen (.ini-Datei) für die Reproduktion des Experiments.

Ishtiaq Ahmad
Ishtiaq Ahmad 2025.04.11
Mystery solved. 😊😊😊
Jocimar Lopes
Hat den Artikel Entwicklung eines MQTT-Clients für MetaTrader 5: ein TDD-Ansatz — Finale veröffentlicht
Entwicklung eines MQTT-Clients für MetaTrader 5: ein TDD-Ansatz — Finale

Dieser Artikel ist der letzte Teil einer Serie, die unsere Entwicklungsschritte für einen nativen MQL5-Client für das MQTT 5.0-Protokoll beschreibt. Obwohl die Bibliothek noch nicht produktionsreif ist, werden wir in diesem Teil unseren Client verwenden, um ein nutzerdefiniertes Symbol mit Ticks (oder Kursen) zu aktualisieren, die von einem anderen Broker stammen. Am Ende dieses Artikels finden Sie weitere Informationen über den aktuellen Status der Bibliothek, was ihr noch fehlt, um vollständig mit dem MQTT 5.0-Protokoll kompatibel zu sein, eine mögliche Roadmap und wie Sie die Entwicklung verfolgen und zu ihr beitragen können.

Jocimar Lopes
Hat den Artikel Entwicklung eines MQTT-Clients für Metatrader 5: ein TDD-Ansatz — Teil 6 veröffentlicht
Entwicklung eines MQTT-Clients für Metatrader 5: ein TDD-Ansatz — Teil 6

Dieser Artikel ist der sechste Teil einer Serie, die unsere Entwicklungsschritte für einen nativen MQL5-Client für das MQTT 5.0-Protokoll beschreibt. In diesem Teil erläutern wir die wichtigsten Änderungen unserer ersten Überarbeitung, wie wir zu einem brauchbaren Entwurf für unsere paketbildenden Klassen gekommen sind, wie wir PUBLISH- und PUBACK-Pakete bilden und die Semantik hinter den PUBACK-Reason-Codes (Begründungscode).

Jocimar Lopes
Hat den Artikel Entwicklung eines MQTT-Clients für Metatrader 5: ein TDD-Ansatz - Teil 5 veröffentlicht
Entwicklung eines MQTT-Clients für Metatrader 5: ein TDD-Ansatz - Teil 5

Dieser Artikel ist der fünfte Teil einer Serie, die unsere Entwicklungsschritte für einen nativen MQL5-Client für das MQTT 5.0-Protokoll beschreibt. In diesem Teil beschreiben wir die Struktur von PUBLISH-Paketen, wie wir ihre Publish Flags setzen, Topic Name(s) Strings kodieren und Packet Identifier(s) setzen, falls erforderlich.

Jocimar Lopes
Hat den Artikel Entwicklung eines MQTT-Clients für Metatrader 5: ein TDD-Ansatz — Teil 4 veröffentlicht
Entwicklung eines MQTT-Clients für Metatrader 5: ein TDD-Ansatz — Teil 4

Dieser Artikel ist der vierte Teil einer Serie, die unsere Entwicklungsschritte für einen nativen MQL5-Client für das MQTT-Protokoll beschreibt. In diesem Teil beschreiben wir, was MQTT v5.0 Properties sind, ihre Semantik, wie wir einige von ihnen lesen, und geben ein kurzes Beispiel, wie die Eigenschaften (Properties) zur Erweiterung des Protokolls verwendet werden können.

Jocimar Lopes
Hat den Artikel Entwicklung eines MQTT-Clients für MetaTrader 5: ein TDD-Ansatz — Teil 3 veröffentlicht
Entwicklung eines MQTT-Clients für MetaTrader 5: ein TDD-Ansatz — Teil 3

Dieser Artikel ist der dritte Teil einer Serie, die unsere Entwicklungsschritte für einen nativen MQL5-Client für das MQTT-Protokoll beschreibt. In diesem Teil wird detailliert beschrieben, wie wir die testgetriebene Entwicklung nutzen, um den Teil des Betriebsverhaltens des CONNECT/CONNACK-Paketaustauschs zu implementieren. Am Ende dieses Schritts MUSS unser Client in der Lage sein, sich angemessen zu verhalten, wenn er mit einem der möglichen Ergebnisse eines Verbindungsversuchs auf dem Server konfrontiert wird.

Jocimar Lopes
Hat den Artikel Entwicklung eines MQTT-Clients für MetaTrader 5: ein TDD-Ansatz - Teil 2 veröffentlicht
Entwicklung eines MQTT-Clients für MetaTrader 5: ein TDD-Ansatz - Teil 2

Dieser Artikel ist Teil einer Serie, die unsere Entwicklungsschritte für einen nativen MQL5-Client für das MQTT-Protokoll beschreibt. In diesem Teil beschreiben wir unsere Code-Organisation, die ersten Header-Dateien und Klassen, und wie wir unsere Tests schreiben. Dieser Artikel enthält auch kurze Hinweise auf die Praxis der testgetriebenen Entwicklung und wie wir sie in diesem Projekt anwenden.

12