Sunday, 12 November 2017

Högfrekvent handel system arkitektur


Högfrekvent handelssystemdesign och processhantering Högfrekvent handelssystemdesign och processhantering Rådgivare: Roy E. Welsch. Avdelning: Systemdesign och Management Program. Utgivare: Massachusetts Institute of Technology 2009 Utgivningsdatum: 2009 Handelsföretag är i hög grad beroende av data mining, datormodellering och mjukvaruutveckling. Finansanalytiker utför många liknande uppgifter till dem inom mjukvaru - och tillverkningsindustrin. Finansbranschen har emellertid ännu inte fullt ut antagit standardiserade systemtekniska ramverk och processhanteringsmetoder som har lyckats inom mjukvaru - och tillverkningsindustrin. Många av de traditionella metoderna för produktdesign, kvalitetskontroll, systematisk innovation och kontinuerlig förbättring inom teknikområdet kan tillämpas på finansområdet. Denna avhandling visar hur kunskapen som förvärvats från ingenjörsdiscipliner kan förbättra design och processhantering av högfrekventa handelssystem. Högfrekventa handelssystem är beräkningsbaserade. Dessa system är automatiska eller halvautomatiska mjukvarusystem som är inherent komplexa och kräver en hög grad av design precision. Utformningen av ett högfrekvent handelssystem kopplar flera fält, inklusive kvantitativ finans, systemdesign och mjukvaruutveckling. I finansbranschen, där matematiska teorier och handelsmodeller är relativt välskattade, är möjligheten att genomföra dessa mönster i reala handelspraxis ett av de viktigaste inslagen i ett värdepappersföretags konkurrenskraft. Möjligheten att konvertera investeringsideer till högpresterande handelssystem effektivt och effektivt kan ge ett värdepappersföretag en stor konkurrensfördel. (Forts.) Denna avhandling ger en detaljerad studie som består av högfrekvent handelssystemdesign, systemmodellering och principer samt processhantering för systemutveckling. Särskild vikt läggs vid backtesting och optimering, vilka anses vara de viktigaste delarna i att bygga ett handelssystem. Denna forskning bygger systemtekniska modeller som styr utvecklingsprocessen. Det använder också experimentella handelssystem för att verifiera och validera principer som behandlas i denna avhandling. Slutligen slutsatsen att systemteknikens principer och ramverk kan vara nyckeln till framgång för att genomföra högfrekventa handels - eller kvantitativa investeringssystem. Avhandling (S..M.) - Massachusetts Institute of Technology, Systemdesign och Management Program, 2009. Katalogiserad från PDF-version av avhandling. Inkluderar bibliografiska referenser (s. 78-79). Nyckelord: Systemdesign och Management Program. Mitt konto Det finns faktiskt bara 3 stora block i ett Algo Trading System. 1. Marknadsdatahanterare (t. ex. FAST-hanterare) 2. Strategimodul (t ex crossOver-strategi) 3. Order Router (t ex FIX-router) Du kan lägga till Riskkontroller i antingen Strategimodulen eller Order Router-modulen eller båda. Så länge är ditt dataflöde korrekt, du borde vara bra att gå. Kom ihåg att du utformar en ATS för minsta latens, och att lägga till flera lager eller komplexitet kommer att ligga på bekostnad av latens. Minimal ATS-arkitektur Och om du lägger till klockor och visselpipor skulle det se ut som följande: Om du också är intresserad av det praktiska genomförandet av ovanstående arkitektur, bör du hålla följande saker i åtanke. Undvik locksmutexes. Om du behöver använda den, försök att byta ut dem med låslösa strukturer med hjälp av atom. Det finns några bibliotek tillgängliga för låslösa datastrukturer (t ex libcds, samtidighetskit etc). C-11 stöder std :: atom. och du bör också sträva efter att använda dem. Undvik vad som görs i QuickFIX. Dess skrivna för säkerhetstillgänglighetåtergänglighet som objekt (lås) skapande och förstörelse görs för varje påkallelse av något meddelande till routern. Säkerligen inget sätt att skriva en latent känslig kod. Ingen runtime minnesallokering. runtime pathway bör använda anpassad och låslös minneshantering med fördelad minnespool. All initialisering kan göras i konstruktörer. Stram koppling. Threading-modellen, IO-modellen och minneshanteringen ska utformas för att samarbeta med varandra för att uppnå bästa övergripande prestanda. Detta går emot OOP-konceptet för löskoppling, men det är nödvändigt för att undvika runtime-kostnad för dynamisk polymorfism. Använd mallar. På samma sätt skulle jag också föreslå att du tittar på C-templatering för att uppnå flexibilitet i koden. OSHardware optimering: Slutligen bör du se till att arbeta med Linux RT Kernel och Solarflare nätverkskort med OpenOnLoad drivrutin för att uppnå minsta latens. Du kan vidare titta på att isolera cpu och köra ditt program på den specifika kärnan. Och äntligen det offentliga API som du skulle behöva exponera för strategiutvecklare. Jag skulle vilja att detta skulle vara den minsta uppsättningen som skulle inkapsla all komplexiteten hos den särskilda utbytet. klass OrderRouter public: virtuell bool sendNewOrd (OrderInfo) 0 virtuell bool sendRplOrd (OrderInfo) 0 virtuell bool sendCxlOrd (OrderInfo) 0 virtualBut det innebär att OrderInfo-klassen måste ha alla detaljer som krävs av destinationsutbytet. I allmänhet kräver utbyten samma information, men när du går och stöder fler utbytesdestinationer skulle du finna dig själv att lägga till fler variabler i den här klassen. Följande är de viktiga frågeställningarna som du behöver fråga dig: 1. Multi-process arkitektur eller Multi-Threaded Architecture. om du vill bygga en monolitisk process med flera trådar eller skriva flera processer. Kostnaden för flera processer är att meddelandet går för sent, medan kostnaden för multipelgängad enda process är att eventuellt fel kan leda ner hela systemet. 2. Meddelande som skickas: medan du kan välja mellan många alternativ, är du begränsad av latent övervägande. Snabbaste IPC skulle delas minne, men hur skulle du göra synkroniseringen spendera tid med dessa två frågor eftersom de skulle vara byggstenen som din arkitektur står på. Redigera: FIX och FAST När det gäller popularstandard-protokoll är FIX för att skicka order och FAST är för marknadsdata. Med detta sagt har de flesta utbyten sina egna inbyggda protokoll som är snabbare än FIX, eftersom FIX generellt implementeras ovanpå sitt eget protokoll. Men de stöder fortfarande FIX lägger till fördjupningshastigheten. Å andra sidan, medan FIX antas av de flesta utbyten, har FAST inte så bred acceptans. Om något skulle det bara finnas en handfull utbyte som antar den. De flesta av dem skickar antingen över FIX själv (låg latens), eller använder sitt eget inbyggda binära protokoll. t. ex. I Indien, NSE, BSE och MCXMCXSX, ger alla tre utbyten ett FIX-protokoll utöver det ursprungliga protokollet, men endast BSE ger dig snabb information om marknadsdata. Och det går också från FAST till inbyggd med introduktion av EOBI. du kan extrapolera samma sak till andra utbyten. 3,9k Visningar mitten View Upvotes middot Inte för reproduktion Som John nämnde är OMS kärnpunkten i någon handelsplattform och du bör börja undersöka om det. Du skulle behöva spendera tid för att bestämma din livscykel, händelser och funktioner du vill bädda in på OMS och de som du vill att din Algo Engine ska hantera. Metcetera erbjuder en öppen källkod OMS, jag har använt den personligen men it039 är en av de få på marknaden. Nästa sak du ska titta på är att ge ett gränssnitt till källdata i och trycka ut det. Det här är för ett kundordningsinmatningssystem för att kasta in orderuppgifterna och Algo-motorn för att källa den. Många säljsidor OMS039s använder en kombination av proprietära program skrivna i JavaC med FIX. FIX-protokollet tillåter dig att kommunicera realtid över system i ett förenklat amp-fördefinierat meddelandeformat som fastställs av FIX-protokollgemenskapen. Gå till FIX protokollorganisationen gt hemsida för att läsa mer om det. Ser även på Open Source FIX Engine. en öppen källkodsimplementering av FIX-motorn. Därefter kommer ett Market Data-gränssnitt till källa i realtidssäkerhetsmarknadsinformation, data som sträcker sig från HighLowOpenClose till Best BidBest Ask, Total handlad volym, Senaste pris, Senaste volymen, Bud citat, Fråga citat etc. Den information du söker beror verkligen på typen av strategi du vill genomföra. Jag tror att Interactive Broker tillhandahåller ett realtidsdata via FIX. Exchange-anslutning är nästa där din Algo tolkar signalerna, skapar en order och rutter till en Exchange eller ECN. Att utveckla det internt kan vara svårt eftersom du skulle behöva arbeta ut Exchange-medlemskap, certifiera din plattform och betala en vanlig medlemsavgift. Ett billigare sätt är att använda ett mäklare-API (som IB) och leda ordern genom dem. Historiska data är också avgörande eftersom du kanske vill jämföra det nuvarande marknadsbeteendet med dess historiska värden. Parametrar som genomsnittlig spridning, VWAP-profiler, genomsnittlig daglig volym etc kan krävas för att påverka beslutsfattandet. Du kan få det på databasen (föredraget) men om hastigheten på kärnan laddar ner den på serverns cache när du börjar ditt program. När dina perifera system är inställda kan du börja utveckla ditt algo-program så som du vill att den ska fungera. Den här grundläggande infrastrukturen gör att du kan mata in en förälderalgorder, läsa marknadsdata, reagera på signalerna men generera barnorder och placera den i utbytesordern och historiska data för att påverka beslutsfattandet. OMS har kopplingen mellan föräldraföräldrarna, deras realtidsstatus och uppdateringar av plattformen för algo eller utbyte. Vad du vill implementera inuti Algo är helt upp till dig. 2.3k Visningar mitten View Upphöjda mitten Inte för reproduktionHöga frekvenshandel HPC HFT som en tjänst BSI har varit i framkant av högfrekventa högpresterande system under många år. Det är en vapenlöpning och det är inte bra att väcka dig med sub-par maskiner. BSI använder den lägsta latens-, högfrekventa arkitekturen till alla fyra hörn av världen. Oavsett om du bearbetar dina egna algoritmer, simulerar eller behöver bara den högsta prestanda-infrastrukturen som finns - prata med BSI idag och använd deras expertis för att ge ditt företag kanten. Oavsett om du behöver snabbare och överklockad server eller arbetsstationer, eller har krav på låg latent nätverk, har BSI rätt hårdvara för din quandary. Vi levererar den högsta prestandainfrastrukturen Högfrekventa handelssystem Lågtidsnätverk Flash-lagring Höghastighets-NIC-skivor Hög bandbreddskoppling Samlokaliseringstjänster Hosted högfrekventa beräkningar Arbetsgolv-arbetsstationer GPGPU parallell databehandlingInfoReach HiFREQ HFF-frekvenshanteringsprogramvara (HFT) för algoritmisk handel HiFREQ är en kraftfull algoritmisk motor som ger handlare möjligheten att distribuera HFT-strategier för aktier, futures, optioner och valutahandel utan att behöva investera tid och resurser i att bygga och behålla sin egen teknikinfrastruktur. Det ger alla viktiga komponenter för att underlätta genomströmning av tiotusentals beställningar per sekund vid latitud under millisekunder. HiFREQ kan användas oberoende som en fristående black box trading lösning, eller som en del av InfoReach TMS handelsplattform för ett komplett, end-to-end handelssystem. Den öppna mäklareneutrala arkitekturen gör det möjligt för användare att skapa och distribuera proprietära, komplexa handelsstrategier samt åtkomstalgoritmer från mäklare och andra leverantörer från tredje part. Beställningar kan dirigeras till alla globala marknadsdestinationer via InfoReachs interna low latency FIX Engine. Multi-asset Globala aktier, futures, optioner och FX Risk Control HiFREQ ger riskbedömning av varje orderförfrågan och säkerställer överensstämmelse med förkonfigurerade företagsspecifika handelsbegränsningar. Mäklare-neutral HiFREQ kopplar dig till flera mäklare, utbyten och ECN. Centraliserad övervakning och kontroll Medan komponenter i HiFREQ kan fördelas över olika geografiska platser kan alla övervaknings - och kontrollfunktioner för strategin utförs från en centraliserad fjärrplats. HiFREQ kan genomföra 20 000 beställningar per sekund per enskild FIX-anslutning. Användning av två eller flera FIX-anslutningar kan öka produktionen avsevärt. Låg latens Sub millisekund rundtur latens mätt från punkten HiFREQ får en FIX-körrapport till den punkt när HiFREQ slutar skicka ett FIX-ordermeddelande. Distribuerad och skalbar För att öka effektiviteten och prestanda i handelsstrategierna kan deras komponenter utformas för att köras samtidigt. Strategikomponenter kan också distribueras på flera servrar som kan samlas i olika utföringsplatser. Java Programmerare Guide

No comments:

Post a Comment