En kapitalmarknadsaktör specialiserad på kvantitativa strategier ville automatisera en handelsstrategi baserad på orderflödesanalys. Vi byggde ett system som processar tusentals börshändelser per sekund, identifierar statistiska anomalier i realtid och genomför affärer automatiskt med mycket låg latens – helt utan mänsklig inblandning.
Bakgrund
Uppdragsgivaren hade under flera år utvecklat och utvärderat en handelsstrategi baserad på återkommande mönster i börsens orderflöden. Analysmodellen var väldokumenterad och statistiskt verifierad, men stora delar av arbetet utfördes fortfarande manuellt. Det begränsade både hur snabbt signalerna kunde identifieras och hur konsekvent strategin kunde tillämpas.
På en marknad där automatiserade aktörer reagerar inom bråkdelar av en sekund innebär varje manuell bedömning ett strukturellt underläge. Signalerna fanns redan. Det som saknades var en teknisk plattform som kunde identifiera dem, värdera dem och agera i realtid.
Uppdraget var att omvandla en etablerad analys- och handelsmodell till ett deterministiskt, automatiserat system. Strategins regler behövde formaliseras, datakällorna integreras och hela beslutsflödet byggas för kontinuerlig drift utan löpande mänsklig handpåläggning.
Signallogik – live-flöde
Arkitektur
Utmaning
Den tekniska kärnutmaningen var inte att skriva kod som kunde lägga en order. Det var att bygga ett system som fattade samma beslut på samma underlag, även när marknadsaktiviteten ökade kraftigt. En strategi som fungerar väl i historiska tester kan snabbt förlora sin fördel om data behandlas för sent, signaler beräknas inkonsekvent eller ovanliga marknadshändelser hanteras fel.
Under aktiva perioder behöver systemet hantera tusentals orderboksförändringar per sekund. Samtidigt ska det rekonstruera och hålla korrekta orderböcker för flera instrument, uppdatera analysmodellen och bedöma nya handelssignaler utan att köer växer eller händelser går förlorade.
Vi byggde kärnan med Python och asyncio och separerade nätverkskommunikation, signalberäkning och lagring i tydliga, oberoende flöden. Den aktuella orderboken hålls i minnet, medan Redis används för snabb åtkomst till kortlivad systemstatus. Latenstester visar en stabil behandlingstid på millisekundnivå från mottagen marknadshändelse till färdigt handelsbeslut.
Positioner och riskstyrning
Systemet arbetar med positioner som normalt hålls från några minuter upp till delar av en handelsdag. Hålltiden är inte förutbestämd utan styrs av marknadens fortsatta utveckling, motsatta signaler och definierade risknivåer. Det gör att strategin kan anpassa sig efter rådande marknadsläge, med kortare positioner under snabba rörelser och längre innehav när signalen består.
Riskstyrningen är integrerad i hela beslutsflödet. Positionsstorlek, stoppnivå och tillåten exponering beräknas utifrån aktuell volatilitet, likviditet och marknadsrisk. Exponeringen begränsas både per instrument och för portföljen som helhet. Om dagens förlust överstiger ett definierat gränsvärde stoppas all ny handel automatiskt och systemet kräver ett manuellt godkännande innan det återaktiveras.
Marknadsdata, signaler, riskbeslut, order och exekveringar loggas med högupplösta tidsstämplar. Det gör det möjligt att i efterhand rekonstruera beslutsförloppet, analysera avvikelser och utvärdera hur modellen fungerade under olika marknadsförhållanden.
Gränssnitt
Handelsmotorn arbetar automatiskt i bakgrunden, medan det tillhörande övervakningsgränssnittet ger full insyn i marknadsdata, signaler, positioner, exekveringar och systemstatus i realtid.
Vi bygger realtidssystem, datadriven automation och skräddarsydda tekniska lösningar för komplexa domäner. Berätta om ditt projekt.