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 kontoDevelopande högfrekventa aktier handelsmodeller Utveckla högfrekventa aktier handelsmodeller Rådgivare: Roy E. Welsch. Avdelning: Sloan School of Management. Utgivare: Massachusetts Institute of Technology 2010 Utgåva: 2010 Syftet med detta dokument är att visa att det finns möjligheter att generera alfa i högfrekventa miljöer på den amerikanska aktiemarknaden, med hjälp av Principal Component Analysis (PCA nedan) som grund för kort termisk värdering och marknadsförflyttning förutsägelse. Tidsramen för handel och hållningsperioder som vi analyserar oscillerar mellan en sekund och så hög som 5 minuter ungefär. Vi anser särskilt att det här tidsutrymmet erbjuder möjligheter att generera alfa, eftersom de flesta av de kända kvantitativa handelsstrategierna implementeras i två olika typer av tidsramar: antingen i den typiska tidsramen för statistisk arbitrage (med värderingshorisonter och handelsperioder i order av dagar eller veckor till kanske tom månader), eller i ren högfrekvent miljö (med tidsramar på order av millisekunder). På de senare strategierna finns det verkligen ingen avsikt att realisera värderingar i kapitalet, utan snarare att dra nytta av marknadsfrekvenser med hög frekvens, vilket innebär att man inte bara försöker tjäna vinst från att få budsperspridningen utan också från de rabatter som erbjuds av de många utbyten till dem som tillhandahåller likviditet. Vi tror att det finns fler möjligheter att fånga in befintliga ineffektiviteter i denna arena och vi visar hur med mycket enkla matematiska och prediktiva verktyg kan dessa ineffektiviteter identifieras och potentiellt utnyttjas för att generera meravkastning. I papperet beskrivs vår underliggande intuition om modellen vi använder, som baseras på resultaten av kortfristiga PCAs på avkastning på eget kapital och visar hur dessa resultat kan förutsäga kortsiktiga framtida kumulativa avkastningar på kort sikt. Vi valde slumpmässigt 50 av de mest likvida aktierna i SampP 500 indexet för att testa våra resultat. Avhandling (M. B.A.) - Massachusetts Institute of Technology, Sloan School of Management, 2010. Katalogiserad från PDF-version av avhandling. Inkluderar bibliografiska referenser (s. 59). Nyckelord: Sloan School of Management. Mitt konto är bara en datavetenskapare du är i perfekt läge för att komma igång med algoritmisk handel. Det här är något jag har sett vid första hand på Quantiacs1. där forskare och ingenjörer kan hoppa direkt in i automatiserad handel utan tidigare erfarenhet. Med andra ord, programmeringskurvor är den viktigaste ingrediensen som behövs för att komma igång. För att få en allmän förståelse för vilka utmaningar som väntar på dig efter att ha skapat ett algoritmiskt handelssystem, kolla in denna Quora-post. Att bygga ett handelssystem från grunden kommer att kräva viss bakgrundskunskap, en handelsplattform, marknadsdata och marknadstillträde. Medan det inte är ett krav, kommer det att vara snabbt och enkelt att välja en enda handelsplattform som ger de flesta av dessa resurser. Med det sagt kommer de färdigheter du utvecklar att överföras till något programmeringsspråk och nästan vilken plattform som helst. Tro det eller inte, bygga automatiserade handelsstrategier är inte beroende av att vara en marknadsexpert. Att lära sig grundläggande marknadsmekanik hjälper dig att hitta lönsamma handelsstrategier. Alternativ, Futures och andra derivat av John C. Hull - Stor första bok för att skriva in kvantitativ finansiering och närma sig den från matematiksidan. Kvantitativ handel av Ernie Chan - Ernie Chan ger den bästa inledande boken för kvantitativ handel och går igenom processen för att skapa handelsalgoritmer i MATLAB och Excel. Algoritmisk handel med framtider via maskininlärning - En 5-sidig uppdelning av tillämpningen av en enkel maskininlärningsmodell för allmänt använda tekniska analysindikatorer. Här är en aggregerad läslista PDF med en fullständig uppdelning av böcker, videoklipp, kurser och handelsforum. Det bästa sättet att lära sig är att göra, och när det gäller automatiserad handel som kommer ner till kartläggning och kodning. En bra utgångspunkt är existerande exempel på handelssystem och existerande utställningar av tekniska analystekniker. Dessutom har en skicklig datavetenskapare den extra kanten att kunna tillämpa maskininlärning till algoritmisk handel. Här är några av dessa resurser: TradingView - En fantastisk visuell kartläggningsplattform på egen hand, TradingView är en bra lekplats för att bli bekväm med teknisk analys. Det har den extra fördelen att du kan använda scriptstrategier för handel och bläddra i andra människors handelsideer. Automated Trading Forum - Bra online-community för att skicka nybörjarspecifika frågor och hitta svar på vanliga kvantproblem när du bara börjar. Kvantforum är ett bra ställe att fördjupa sig i strategier, verktyg och tekniker. YouTube-seminarium om handelsideer med arbetskodprover på Github. Maskininlärning: Fler presentationer om automatiserad handel finns på Quantiacs Quant Club. De flesta människor från en vetenskaplig bakgrund (oavsett om det är datavetenskap eller teknik) har haft exponering mot Python eller MATLAB, som råkar vara populära språk för kvantitativ finansiering. Quantiacs har skapat en öppen källkodslåda som ger backtesting och 15 års historisk marknadsdata gratis. Det bästa är allt som är byggt på både Python och MATLAB, vilket ger dig valet av vad du ska utveckla ditt system med. Här är en trendutvecklande handelsstrategi i MATLAB. Detta är all kod som krävs för att driva ett automatiserat handelssystem, som visar både kraften i MATLAB och Quantiacs Toolbox. Quantiacs låter dig handla 44 futures och alla aktier i SampP 500. Dessutom stöds en mängd ytterligare bibliotek som TensorFlow. (Ansvarsbegränsning: Jag jobbar hos Quantiacs) När du är redo att tjäna pengar som en kvant, kan du gå med i den senaste Quantiacs automatiserade handelstävlingen, med totalt 2.250.000 i investeringar som finns tillgängliga: Kan du tävla med de bästa quantsna Det här svaret har varit helt åter - written Här är 6 huvudkunnande bas för att bygga algoritmiska handelssystem. Du borde vara bekant med dem alla för att bygga upp effektiva handelssystem. Några av de använda termerna kan vara lite tekniska, men du borde kunna förstå dem av Googling. Obs! (De flesta av) dessa gäller inte om du vill göra högfrekvenshandel 1. Marknadsteorier Du behöver förstå hur marknaden fungerar. Mer specifikt bör du förstå marknadsinteffektivitet, relationer mellan olika tillgångsprodukter och prisbeteende. Handelsidéer härrör från ineffektiviteten på marknaden. Du kommer att behöva veta hur man utvärderar ineffektivitet som ger dig en handelskant jämfört med dem som inte gör det. Att utforma effektiva robotar innebär förståelse för hur automatiserade handelssystem fungerar. I huvudsak består en algoritmisk handelsstrategi av 3 kärnkomponenter: 1) Inlägg, 2) Utgångar och 3) Positionering. Du måste utforma dessa 3 komponenter i förhållande till den ineffektivitet du tar på marknaden (och nej, det här är inte en enkel process). Du behöver inte veta avancerad matematik (även om det kommer att hjälpa om du strävar efter att bygga mer komplexa strategier). Bra kritiska tänkande färdigheter och ett anständigt grepp om statistiken tar dig väldigt långt. Design innebär backtesting (testning för handelskant och robusthet) och optimering (maximera prestanda med minimal kurvmontering). Du behöver veta hur man hanterar en portfölj med algoritmiska handelsstrategier också. Strategier kan vara komplementära eller motstridiga detta kan leda till oförutsedda ökningar av riskexponering eller oönskad säkring. Kapitaltilldelning är viktigt också att du delar upp kapital jämnt under regelbundna intervaller eller belönar vinnarna med mer kapital. Om du vet vilka produkter du vill handla, hitta lämpliga handelsplattformar för dessa produkter. Lär dig sedan programmeringsspråket API för dessa plattformsbacktestrar. Om du börjar, skulle jag rekommendera Quantopian (endast aktier), Quantconnect (aktier och FX) eller Metatrader 4 (FX och CFD på aktieindex, lager och råvaror). De programmerade språken som används är respektive Python, C och MQL4. 4. Datahantering Skräp i sopor ut. Felaktiga uppgifter leder till felaktiga testresultat. Vi behöver rimligt rena data för noggrann testning. Rengöringsdata är ett kompromiss mellan kostnad och noggrannhet. Om du vill ha mer exakt data måste du spendera mer tid (tidspengar) att rengöra det. Vissa problem som orsakar smutsiga data inkluderar saknade data, dubblett data, fel data (dåliga fästingar). Övriga frågor som leder till vilseledande uppgifter inkluderar utdelning, lager splittringar och framtidsrullning etc. 5. Riskhantering Det finns två huvudtyper av risk: Marknadsrisk och Operativ risk. Marknadsrisk innefattar risk relaterad till din handelsstrategi. Anser det värsta scenarier Vad händer om en svart svan händelse som andra världskriget händer Har du säkrat bort oönskade risker Är din positionering stor förutom För att hantera marknadsrisk måste du titta på operativ risk. Systemkrasch, förlust av internetanslutning, dålig exekveringsalgoritm (som leder till dåligt genomförda priser eller missade affärer på grund av oförmåga att hantera requoteshigh slippage) och stöld av hackare är mycket verkliga problem. 6. Live Execution Backtesting och live trading är väldigt olika. Du måste välja rätt mäklare (MM vs STP vs ECN). Forex Market Nyheter med Forex Trading Forum amp Forex Brokers Recensioner är din bästa vän, läs mäklare recensioner där. Du behöver rätt infrastruktur (säker VPN och driftstopp etc.) och utvärderingsprocedurer (övervaka dina robotarprestanda och analysera dem i relation till inefficiencybacktestsoptimisations) för att hantera din robot under hela sin livstid. Du måste veta när du ska ingripa (modifiera uppdateringshastdownturn på dina robotar) och när inte. Utvärdering och optimering av handelsstrategier Pardo (Stora insikter på metoder för att bygga och testa handelsstrategier) Hantera din väg till Finansiell Frihet Van K Tharp (Ridiculous-Click Bait-titel åt sidan, den här boken är en bra översikt över mekaniska handelssystem) Quantitative Trading Ernest Chan (Stor introduktion till algohandel på detaljhandeln.) Handel och utbyte: Marknadsmikrostruktur för utövare Larry Harris (Marknadsmikrostruktur är vetenskapen om hur utbyten fungerar och vad som faktiskt händer när en handel är placerad. Det är viktigt att veta denna information trots att du bara har börjat) Algorithmic Trading amp DMA Barry Johnson (Shed light på bankernas exekveringsalgoritmer. Det här är inte direkt tillämpligt på din algohandel men det är bra att veta) Quants Scott Patterson (Krigsberättelser av några bästa quants. som läktid läs) Quantopian (Kod, forskning och diskutera idéer med samhället. Används Python) Grundläggande om Algo Trading Algo Trading101 (Ansvarsbegränsning: Jag äger denna webbplats. Lär dig robotteoristeorier, marknadsteorier och kodning. Använder MQL4) - Gå med i utmaningen (Läs handelskoncept och backtesting teorier. De har nyligen utvecklat sin egen backtesting och trading plattform så den här delen är fortfarande ny för mig. Men deras kunskapsbas om handelskoncept är bra.) Rekommenderade BlogsForums , handels - och algo trading forums): Rekommenderade programmeringsspråk: Om du vet vilka produkter du vill handla, hitta lämpliga handelsplattformar för dessa produkter. Lär dig sedan programmeringsspråket API för dessa plattformsbacktestrar. Om du börjar, skulle jag rekommendera Quantopian (endast aktier), Quantconnect (aktier och FX) eller Metatrader 4 (FX och CFD på aktieindex, lager och råvaror). De programmerade språken som används är respektive Python, C och MQL4. Jag har en bakgrund som programmerare och inrättar agilescrum-team innan jag började titta på algoritmisk handel. Världen av algoritmisk handel fascinerar mig, men det kan vara lite överväldigande. Jag började få lite perspektiv genom att dyka in i Quantopian-plattformen, titta på quant lectures-serien och köra mina och anpassade community-baserade algo trading system i sin miljö. Precis som den nedan: Jag insåg att jag skulle komma in djupare snabbare, jag måste träffa människor som älskar att skapa handelsstrategier, men kan inte programmera - att matcha mig själv som en smidig lagledare och programmerare för handelssystem. Så jag skrev en bok om hur man skapar ett lag för att genomföra dina handelsalgoritmer. Bygga Trading Systems Den Agile Way: Hur man bygger Winning Algorithmic Trading Systems som ett team. I samhället av Quantopian såg jag ekonomiskt kunniga människor som letade efter folk att genomföra sina handelsstrategier, men var rädda att fråga programmerare att genomföra sina idéer. Eftersom de potentiellt kan börja köra sina handelsideer utan dem. Jag tar upp det här problemet i min bok. För att undvika att programmerare springer iväg med dina idéer: skapa en specifikation för din handelside som använder en kodningsram som är anpassad för vilken typ av strategi du vill utveckla. Det här låter svårt, men när du känner till alla barnsteg och hur de passar ihop är det ganska enkelt och roligt att hantera. Om du haft det här svaret, var snäll och rösta och följ. Även om detta är ett mycket brett ämne med referenser till byggalgoritmer, inställning av infrastruktur, tillgångsallokering och riskhantering, men jag kommer bara fokusera på den första delen av hur ska arbeta för att bygga upp vår egen algoritm och göra rätt saker. 1. Byggnadsstrategi. Några av de viktigaste punkterna att notera här är: Fånga stora trender - En bra strategi måste i alla fall tjäna pengar när marknaden trender. Marknaderna går med en bra trend som varar bara 15-20 av tiden, men det här är den tid då alla katter och hundar (handlare från alla tidsramar, intradag, dagligen, veckovis och lång sikt) är ute och handlar och de alla ha ett gemensamt tema. Många handlare bygger också genomsnittliga reverseringsstrategier där de försöker döma förhållandena när priset har flyttat långt från medelvärdet och handlar mot trenden men de bör byggas när du framgångsrikt byggt upp och handlat en bra trend efter system . Odds för att stapla upp - Människor arbetar ofta med att försöka bygga ett system som har ett utmärkt winloss-förhållande men det är inte rätt sätt. Till exempel kommer ett algo med en vinnare på 70 med en genomsnittlig vinst på 100 per handel och en genomsnittlig förlust på 200 per handel bara 100 per 10 trades (10trade netto). Men ett algo med en vinnare på 30 med en genomsnittlig vinst på 500 per handel och förlust på 100 per handel ger en vinst på 800 för 10 trades (80trade). Så det är inte nödvändigt att winloss-förhållandet borde vara bra, men det är oddsen att stapla upp vilket borde vara bättre. Detta fortsätter med att säga quotKeep förluster små, men låt dina vinnare runquot. Att investera, det är bekvämt, är sällan lönsamt. Quot - Robert Arnott Drawdown - Drawdown är oundvikligt om du följer någon typ av strategi. Så när du utformar ett algo don039t försöker du minska drawdownen eller göra något specifikt anpassat tillstånd för att ta hand om den drawdownen. Det här specifika tillståndet kan i framtiden fungera som en vägspärr för att fånga en stor trend och ditt algo kan fungera dåligt. Riskhantering - Vid konstruktion av en strategi bör du alltid ha en utgångsport, oavsett vad marknaden väljer att göra. Marknaden är en plats för odds och du måste designa ett algo för att få dig ur handel så snart som möjligt om det inte passar din riskappetit. Normalt hävdas att du måste riskera 1-2 av kapitalet i varje handel och är optimalt på många sätt, som även om du får 10 falska affärer i följd kommer din kapital att gå ner med bara 20. Men det här är inte det fall i verkligt marknadscenario. Några avvecklande affärer kommer att ligga mellan 0-1, medan vissa kan gå till 3-4, så det är bättre att definiera genomsnittlig förlustkapital per handel och den maximala kapital som kan lösas i en handel, eftersom marknaderna är helt slumpmässiga och kan bedömas . quoteveryvery en gång, marknaden gör något så dumt det tar andan away. quot - Jim Cramer 2. testa och optimera en strategi slippa. När vi testar en strategi för historiska data antar vi att ordern kommer att utföras till det fördefinierade priset som algoet anländer. Men det kommer aldrig att bli fallet, eftersom vi måste ta itu med marknadsförare och HFT algo039s nu. Din beställning i today039s värld kommer aldrig att utföras till önskat pris, och det kommer att bli glidning. Detta måste ingå i testningen. Marknadseffekter: Volymen handlas av algoen är en annan viktig faktor som ska beaktas samtidigt som du gör backtest och samlar historiska resultat. När volymen ökar kommer de order som algo har att ha stor marknadseffekt och det genomsnittliga priset på fylld order kommer att vara mycket annorlunda. Din algo kan producera fullständiga olika resultat i verkliga marknadsförhållanden, om du inte kommer att studera volymdynamiken som ditt algo har. Optimering: De flesta handlare föreslår att du inte gör kurvmontering och överoptimering, och de är korrekta eftersom marknaderna är en funktion av slumpmässiga variabler och ingen situation kommer någonsin att vara densamma. Så att optimera parametrar för specifika situationer är en dålig idé. Jag föreslår att du ska gå till Zonal Optimization. Det är en teknik som jag följer, köpa identifierande zoner som har liknande egenskaper i fråga om volatilitet och volym. Optimera dessa områden separat, istället för att optimera under hela perioden. Ovanstående är några av de mest grundläggande och viktigaste stegen som jag följer när man konverterar en grundläggande tanke till en algoritm och kontrollerar validiteten av det. quot Alla har hjärnkraft att följa aktiemarknaden. Om du gjorde det genom femte klassens matte kan du göra det. quotPeter Lynch Kort svar: Lär dig matematik som tillämpas på handel, marknadens struktur och eventuellt vara en toppnätverksdistribuerad systemprogrammerare. Det finns tre potentiellt parallella spår som kan tas för att lära sig algoritmisk handel från början, beroende på det yttersta syftet med varför du vill lära dig det. Här är de i ökande svårighetsgrad som också korrelerar med hur mycket det blir din del av din försörjning. De tidigare kommer att öppna möjligheterna till följande. Du kan sluta vid något steg längs vägen när du har lärt dig tillräckligt eller fått ett jobb att göra det. Om du vill vara en kvant, använder mestadels matteprogramvara och inte egentligen är en programmerare för ett algo-system, då är det korta svaret att få en doktorsexamen i matematik, fysik eller något matematiskt tungt relaterat teknikämne. Försök att få praktikplatser i topp hedgefonder, stötbutiker eller investeringsbanker. Om du kan bli anställd av ett framgångsrikt företag så lär du dig där annars, det vann helt enkelt inte. Men i alla fall borde du fortfarande slutföra avsnittet 039Self Study039 nedan för att du verkligen vill gå igenom försöket att bli doktorand. Om du inte är ett geni, om du inte har en doktorsexamen kan du tävla med dem som gör det om du inte specialiserar sig i programmering av handelssystem. Om du vill vara mer på programmeringssidan, försök ansöka om anställning efter varje steg, men inte ofta än en gång om året per företag. Självstudie Det första steget är att förstå vad algoritmisk handel verkligen är och vilka system som krävs för att stödja det. I039d rekommenderar att läsa igenom quotAlgorithmic Trading amp DMAquot (Johnson, 2010), något jag personligen gjorde och kan rekommendera. Det låter dig förstå på en grundläggande nivå. Därefter bör du programmera din egen orderbok, en enkel marknadsdata simulator och en algoritm implementering på din vidarebefordran med Java eller CC. För extra kredit som skulle hjälpa till med att få anställning bör du också skriva ett eget nätverkskommunikationslager från början. Vid denna tidpunkt kanske du kan svara på frågan själv. Men för fullständighet och nyfikenhet, var god att fortsätta: Nästa bok att ta itu med är quotTrading Amp Exchanges: Market Microstructure for Practitionersquot (Harris, 2003). Detta kommer att gå in i finare detaljer om hur marknaderna fungerar. Det är en annan bok som jag läste, men inte helt studerad eftersom jag var en systemprogrammerare och inte en kvant eller en chef på företagsidan. Slutligen, om du vill börja lära dig matematiken om hur marknaderna fungerar, arbeta igenom texten och problemen i quotOptions, Futures och Other Derivativesquot (Hull, 2003). Jag gjorde det genom ungefär hälften av den läroboken antingen som förberedelse för eller som en del av intern träning hos en av mina tidigare arbetsgivare. Jag tror att jag ursprungligen fick reda på den boken eftersom det antingen var föreslagna eller obligatoriska att läsa för ett av väl ansedda MS Financial Mathematics-program. För att kunna få en bättre chans till anställning via ett nyfodringsprogram, komplettera ett MS Financial Mathematics-program om du vill vara en programmerare för en handelsplattform eller ett team av quants. Om du vill vara den som designar algerna, måste du ta den doktorsrutt som förklaras tidigare. Om du fortfarande har slutat skolan, försök alltså att få en praktikplats på samma typ av platser. Anställning Oavsett hur mycket du lär dig i böcker och skolor, kommer ingenting att jämföra med de små detaljerna du lär dig när du arbetar för ett företag. Om du inte vet alla kantfall och vet när din modell slutar fungera, kommer du att förlora pengar. Jag hoppas att svaret på din fråga och att på vägen för lärande upptäcker du om du verkligen vill övergå från studier till verkligt dagligt arbete.
No comments:
Post a Comment