Case study § 06

Event-driven trading platform on European M&A regulation

Event-driven · finance · multi-jurisdiction parsing · Alembic

Detect and exploit M&A regulatory filings across three jurisdictions, DE, FR, IT regulators, in very different formats.

An event-driven system built on those filings, in a space where each jurisdiction publishes in its own format.

The constraint on the ground: no live market data on the test account.

One parser per jurisdiction feeds the chain, up to the decision logger that records the price at the moment of the event.

Diagram S5: event-driven M&A tradingRegulatory filings from three jurisdictions, Germany, France, Italy, each in a different format, are processed by a dedicated per-jurisdiction parser, then merged into a signal. An event logger records the price at the moment of the signal, since there is no live market data on the test account. The signal feeds the decision: if expectancy is zero or negative, the system stops.REGULATORY FILINGS3 JURISDICTIONSDEFRITPARSERSHETEROGENEOUS FORMATSDE PARSERFR PARSERIT PARSERSIGNALEVENT LOGGERNO LIVE MARKET DATA FEEDTEST ACCOUNTDECISIONEXPECTANCY ≤ 0STOPDiagram S5: event-driven M&A tradingRegulatory filings from three jurisdictions, Germany, France, Italy, each in a different format, are processed by a dedicated per-jurisdiction parser, then merged into a signal. An event logger records the price at the moment of the signal, since there is no live market data on the test account. The signal feeds the decision: if expectancy is zero or negative, the system stops.REGULATORY FILINGS3 JURISDICTIONSDEFRITPARSERSHETEROGENEOUS FORMATSDEPARSERFRPARSERITPARSERSIGNALEVENT LOGGERNO LIVE MARKET DATA FEEDTEST ACCOUNTDECISIONEXPECTANCY ≤ 0STOP
DIAGRAMRegulatory filing → per-jurisdiction parser → decision logger → expectancy ≤ 0 → stop.

Alembic migrations stay clean throughout the chain, from filing ingestion to the decision logger.

Key decision

One parser per jurisdiction. An offer-price bug was breaking about 40% of German deals, fixed.

The fix made ingestion reliable.

Trade-off

No live market data on the test account. Rather than heavy infrastructure, a logger that records the price at the moment of the event.

That unblocks the test phase cleanly.

Stable ingestion, clean Alembic migrations, test phase unblocked.

Modeling a complex domain, spotting the blocking constraint, and working around it with a sober decision.