Wednesday 2 August 2017

Tidsserier Handelsstrategier


Tidsserieanalys och statistisk arbitrage G63.2707, Fall 2009 Hur analyserar vi historisk finansiell data för att utveckla lönsamma och lågriskhandelsstrategier Denna kurs är en introduktion till tidsserieanalys som används i finans och handelsstrategier som är relevanta för både köp - sida och sälj-sida marknadsaktörer. Kursen delas grovt in i tre delar: Linjära modeller: AR och MA för skalär - och vektorprocesser, och enkel bedömning av volatilitet och kovarians. Modellbedömning och restanalys. Cointegration och dess tillämpning i riskmodellering och parhandelstrategier. Icke-linjära modeller: ARCH, GARCH och mer generella volatilitetsmodeller. Tillämpningar: marknadsmikrostruktur, transaktionskostnadsmodellering och optimala handelsstrategier för både byrå och huvudhandel. Instruktörer Lin Li, ll1084 vid nyu Förkunskaper Kursen är avsedd för andraårsstudenter i Courant Institutes MS-programmet för matematik i finans. Sådana elever förväntas ha en utmärkt grund i matematik som tillämpas för att finansiera (stokastisk kalkyl och PDE), en rimlig bakgrund i ekonomi (portföljteori och riskhantering) och i databehandling, men inte nödvändigtvis en intensiv kunskap om statistik. Studenter med jämförbar förberedelse kan anmäla om utrymme är tillgängligt. Ungefär 5 läxor (40 totalt), en frågesport (30) och ett slutprojekt (30). Referenser Vi har ett klasskonto på Wharton Research Data Services. Inloggningsinformation kommer att ges i klassen. Carol Alexander, marknadsmodeller. James D. Hamilton, tidsserieanalys, Princeton University Press 1994. Joel Hasbrouck, Empirical Market Microstructure, Oxford University Press 2006 (mer information om Hasbroucks sida). Stephen J. Taylor, Asset Price Dynamics, Volatilitet och Prediction, Princeton University Press 2005. Ruey S. Tsay, Analys av Financial Times Series, 2: a upplagan, Wiley 2005. Forskningsartiklar kommer att ställas till förfogande efter behov. Måndagskvällar, 7:10 till 9 PM i Silver 713, från 14 september till 7 december eller 14 år. (Det finns ingen Columbus Day-helgdag i år.) Schemat och skissen nedan kan ändras beroende på hur kursen utvecklar, och på instruktörerna reser krav. Förutom en icke-linjär handelsstrategi för finansiella tidsserier Fernanda Strozzi a ,. Jos-Manuel Zaldvar Comenges b. ett universitet i Carlo Cattaneo (LIUC), tekniska fakulteten, kvantitativ metodinstitut, 21053 Castellanza (VA), Italien b Europeiska kommissionen, Gemensamma forskningscentret, Institutet för miljö och hållbarhet, TP272, 21020 Ispra (VA), Italien Godkänd 3 augusti 2005. Tillgänglig online 3 oktober 2005. En ny handelsstrategi baserad på statens rymdåterbyggnadsteknik föreslås. Tekniken använder utvecklingen av rymdvolymen och dess förändringshastighet som indikatorer. Denna metod har testats off-line med hjälp av arton högfrekventa valutaridsserier med och utan transaktionskostnader. I vår analys kan ett optimalt medelvärde på cirka 25 vinster erhållas i de serierna utan transaktionskostnader och ett optimalt medelvärde på cirka 11 vinst, vilket motsvarar 0,2 av kostnaderna för varje transaktion. Tabell 1. Fig. 1. Fig. 2. Fig. 3. Fig. 4. Fig. 5. Fig. 6. Tabell 2. Fig. 7. Fig. 8. Fig. 9. Fig. 10. Tabell 3. Fig. 11. Fig. 12. Fig. 13. Fig. 14. Motsvarande författare. Tel. 39 0331 572634 fax: 39 0331 480746.Forecasting Financial Times Series - Del I I denna serie artiklar kommer vi att skapa en statistiskt robust process för prognoser för finansiella tidsserier. Dessa prognoser kommer att ligga till grund för en grupp av automatiserade handelsstrategier. Den första artikeln i serien kommer att diskutera modelleringsmetoden och en grupp av klassificeringsalgoritmer som gör att vi kan förutsäga marknadsriktningen. Inom dessa artiklar kommer vi att använda sig av scikit-lärande. ett maskininlärningsbibliotek för Python. Scikit-Learning innehåller implementeringar av många maskininlärningstekniker. Det här sparar inte bara mycket tid vid genomförandet av vår egen, men det minimerar risken för att buggar introduceras med vår egen kod och tillåter ytterligare verifiering mot bibliotek som skrivits i andra paket, till exempel R. Detta ger oss en hel del självförtroende om vi behöver skapa vår egen anpassade implementering (av orsaker till exekveringshastighet, säg). Process för prognoser En detaljerad förklaring av området för statistisk maskininlärning ligger utanför denna artikel. För att utnyttja tekniker som logistisk regression. Linjär diskriminerande analys och kvadratisk diskriminerande analys måste vi skissera några grundläggande begrepp. Övervakad inlärningsteknik Övervakad inlärningsteknik innefattar en uppsättning kända tuples (xi, yi), i i, med xi som representerar prediktorvariablerna (t. ex. fördröjd aktiemarknadsavkastning eller volymhandel) och yi representerar de associerade responsobservationsvariablerna (såsom beståndet marknadens avkastning idag). I denna situation är vi intresserade av förutsägelse. Med tanke på framtida prediktorvariabler önskar vi att uppskatta svaren från dessa prediktorer. Detta står i motsats till inferens där vi är mer intresserade av förhållandet mellan variablerna. Alla de algoritmer vi använder i denna artikel, tillsammans med många andra som vi kommer att anställa i framtiden, kommer från den övervakade lärdomänen. Mätning av prediktionsnoggrannhet Den särskilda klassen av metoder som vi är intresserade av innefattar binär klassificering. Det vill säga att vi kommer att försöka fördela den procentuella avkastningen för en viss dag i två hinkar: Upp eller Ner. I en produktionsprognoser skulle vi vara mycket oroade över storleken på denna förutsägelse och avvikelser från förutsägelsen från det faktiska värdet. I sådana fall kan vi använda det medelklassiga felet. Medel Absolut avvikelse och rått-medel-kvadrerat fel för att ge en uppskattning av prognosnoggrannheten. Litteraturen innehåller många andra exempel på prognostiseringsåtgärder. I det här fallet kommer vi bara att vara oroade över träfffrekvensen. vilket är helt enkelt den procentandel av tider som förutspåraren uppnådde en korrekt förutsägelse (dvs upp när dagen var upp och vice versa). I senare exempel kommer vi att använda en förvirrande matris för att bestämma prediktionsprestandan i klass för klass. Dessutom kommer vi att beräkna ovannämnda värden och införliva dem i vår handelsforskningsprocess. Prognosfaktorer En prognosmetodik är bara lika bra som de faktorer som valts som prediktorer. Det finns ett överväldigande antal potentiella faktorer att välja mellan när prognoserna för aktiemarknadsindex returneras. I den här artikeln kommer vi att begränsa faktorerna till tiden för den nuvarande procentuella avkastningen. Detta beror inte på att de är de bästa förutsägarna, utan det är därför att det är enkelt att visa prognosprocessen på ett lättillgängligt dataset. Val av prognosfaktor är oerhört viktigt, om inte den viktigaste komponenten av prognosen. Även enkla maskininlärningstekniker kommer att ge bra resultat på väl valda faktorer. Observera att det omtalade är inte ofta fallet. Att kasta en algoritm vid ett problem leder vanligen till dålig prognosticeringsnoggrannhet. För den här prognosen har jag valt den första och andra gången av den procentuella avkastningen som förutsägare för den nuvarande aktiemarknadsriktningen. Detta är ett relativt godtyckligt val och det finns gott om möjligheter att ändra, till exempel genom att lägga till ytterligare lager eller volymen av aktier som handlas. Det är i allmänhet bättre att ha färre prediktorer i en modell, även om det finns statistiska tester tillgängliga som kan visa prediktiv förmåga hos varje faktor. Prognos SampP500 med logistisk regression, LDA och QDA SampP500 är ett viktat index för de 500 största börshandlade bolagen (med marknadsvärde) på den amerikanska aktiemarknaden. Det anses ofta vara en aktie benchmark. Många derivatprodukter finns för att möjliggöra spekulation eller säkring på indexet. SampP500 E-Mini Index Futures-kontraktet är särskilt ett extremt likvärdigt sätt att handla indexet. I det här avsnittet kommer vi att använda tre klassificatorer för att förutse riktningen av slutkursen på dag N baserat uteslutande på prisinformation känd på dag N-1. En uppåtgående riktning innebär att slutkursen vid N är högre än priset vid N-1, medan ett nedåtgående drag innebär en slutkurs vid N lägre än vid N-1. Om vi ​​kan bestämma rörelseriktningen på ett sätt som väsentligt överstiger 50 träffhastighet, med lågt fel och en god statistisk betydelse, är vi på väg att bilda en grundläggande systematisk handelsstrategi baserat på våra prognoser. Vid detta tillfälle var inte oroad över de mest aktuella maskininlärningsklassificeringsalgoritmerna. Just nu introducerades bara begrepp och så bra börja diskussionen om prognoser med några elementära metoder. Logistisk regression Den första tekniken vi kommer att överväga är logistisk regression (LR). I vårt fall kommer vi att använda LR för att mäta förhållandet mellan en binär kategorisk beroende variabel (upp eller ner) och flera oberoende kontinuerliga variabler (den försenade procentuella avkastningen). Modellen ger sannolikheten att en viss (följande) dag kommer att kategoriseras som upp eller ner. I denna implementering har vi valt att tilldela varje dag upp som om sannolikheten överstiger 0,5. Vi skulle kunna använda sig av ett annat tröskelvärde, men för enkelhet har jag valt 0.5. LR använder logistikformeln för att modellera sannolikheten för att få en uppdag (YU) baserat på lagfaktorerna (L1, L2): Den logistiska funktionen används eftersom den ger en sannolikhet mellan 0,1 för alla värden av L1 och L2, till skillnad från linjär regression där negativa sannolikheter kan genereras i samma inställning. För att passa modellen (dvs beräkna betakoefficienterna) används den maximala sannolikhetsmetoden. Lyckligtvis för oss hanteras genomförandet av anpassningen och förutsägelsen av LR-modellen av scikit-learn-biblioteket. Linjär diskrimineringsanalys Den nästa tekniken som används är Linear Discriminant Analysis (LDA). LDA skiljer sig från LR eftersom, i LR, modellerar vi P (YUL1, L2) som en villkorlig fördelning av svaret Y som ges prediktorerna Li, med hjälp av en logistisk funktion. I LDA modelleras fördelningen av Li-variablerna separat, givet Y och P (YUL1, L2) erhålles via Bayes-teoremet. I huvudsak resulterar LDA från att förutsägare dras från en multivariat Gaussisk fördelning. Efter beräkningar av parametrarna för denna fördelning kan parametrarna matas in i Bayes teorem för att göra förutsägelser om vilken klass en observation hör till. LDA antar att alla klasser delar samma kovariansmatris. Jag brukar inte bo på formlerna för att uppskatta fördelningen eller bakre sannolikheter som behövs för att göra förutsägelser, eftersom scikit-learn återigen hanterar detta för oss. Kvadratisk diskriminerande analys Kvadratisk diskriminerande analys (QDA) är nära relaterad till LDA. Den signifikanta skillnaden är att varje klass nu kan ha sin egen kovariansmatris. QDA utför i allmänhet bättre när beslutsgränserna är olinjära. LDA utför generellt bättre när det finns färre träningsobservationer (det vill säga när det behövs för att minska variansen). QDA å andra sidan fungerar bra när träningsuppsättningen är stor (dvs varians är mindre fråga). Användningen av den ena eller den andra kommer i slutändan ner till avvikelseavvikelsen. Som med LR och LDA, tar scikit-lär hand om QDA-implementeringen så att vi bara behöver ge den träningstestdata för parameteruppskattning och förutsägelse. Python Implementation För genomförandet av dessa prognoser använder vi NumPy. pandor och scikit-lärande. Ive har tidigare skrivit en handledning om hur man installerar dessa bibliotek. Ive kommenterade kraftigt koden själv, så det borde vara lätt att bestämma vad som händer. Det första steget är att importera relevanta moduler och bibliotek. Kommer att importera LogisticRegression. LDA och QDA-klassificeringar för den här prognosen: Nu när biblioteken importeras måste vi skapa en pandas DataFrame som innehåller den fördröjda procentuella avkastningen för ett tidigare antal dagar (vanligtvis till fem). createlaggedseries kommer att ta en stock symbol (som erkänd av Yahoo Finance) och skapa en fördröjd DataFrame under den angivna perioden: Nästa hjälparfunktion är utformad för att skapa en procentuell träff för varje modell genom att eliminera duplicerad kod. Det är beroende av att logistiska regression, LDA och QDA-objekt har samma metoder (passar och förutsäger). Hitraten matas ut till terminalen: Slutligen knyter vi samman den med en huvudfunktion. I det här fallet skulle försöka prognostisera den amerikanska aktiemarknadsriktningen 2005, genom att använda avkastningsdata från 2001 till 2004: Kodens utdata är följande: Det kan ses att logistisk regression och linjär diskriminantanalysator båda kunde få en 56 träfffrekvens. Den Quadratic Discriminant Analyzer kunde dock förbättra sig för båda att producera en 60-träffsats. För den specifika perioden som analyseras beror detta sannolikt på det faktum att det finns en viss icke-linearitet i förhållandet mellan de fördröjda faktorerna och den riktning som inte är väl infångad i den linjära analysen. Det finns således hopp om att vi kanske delvis kan förutsäga den amerikanska aktiemarknaden. Det finns några tillvägagångssätt för denna prognostiseringsmetodik: Vi har inte använt någon form av tvärvalidering för att minska monteringsfel. En prospekterare skulle kräva att en sådan analys betraktas som robust. Föredragaren har endast utbildats på data mellan 2001-2004 inklusive. Nyare aktiemarknadsdata kan ha väsentligen olika förutsägelsesnoggrannhet. Vi har inte försökt att handla av denna information. I synnerhet hur skulle vi faktiskt genomföra affärer. Skulle vi använda den amerikanska e-mini-framtiden Skulle vi utnyttja order på marknaden-på-öppna (MOO) eller Market-On-Close (MOC) Vi skulle också behöva överväga transaktionskostnader. I efterföljande artiklar kommer vi att överväga dessa frågor mer ingående. En varning om slumpmässig prognos I det här avsnittet vill jag uppenbarligen markera problemet med statistisk signifikans vid hantering av prognoser. Förutom den föreslagna prognosen ovan genererade jag också en prognosserie baserad enbart på tecknet av slumpmässiga dragningar från en normal normalfördelning. Observera att det under samma period har skapat en prognosfrekvens på 53,4 och ändå är metoden som används för att generera serien väsentligen ingen annorlunda än att kasta ett mynt. Tänk på detta när du utför prognosprocedurer eftersom det ofta kan leda till skarpt handelsprestanda om inte beaktas. I följande artiklar kommer vi att överväga mer avancerade övervakade icke-linjära prognoser klassificeringsmedel som artificiella neurala nätverk (ANN) och stöd vektor maskiner (SVM). Med en stabil maskininlärningsteknik till vårt förfogande kommer vi senare att kunna utnyttja ensemblemetoder för att producera en prognosticeringsnoggrannhet och robusthet som ibland kan överstiga de enskilda prognoserens. Bara att komma igång med kvantitativ handel Som vi kan se från ovanstående avviker avkastningen för EURUSD avsevärt från en normal distribution (mer om normalitetstest på en framtida post) och vi kan redan se några egenskaper hos EURUSD-distributionen. Till exempel kan vi se att fördelningen är skevad mot positivt territorium (skewness0.076) och fördelningen är fet-tailed (kurtosis1.52). Ingen av dessa två fakta borde vara överraskande för alla som har gjort tidsserier, eftersom finansiella tidsserier är kända för att vara fetstilade. Det är dock värt att notera att graden av kurtosis och skevhet förändras mycket beroende på tillgångsklassen och symbolen du studerar. På nästa del av serierna kommer vi att undersöka hur olika Forex - och non-Forex-symboler jämför i samma analys (plus lite ytterligare statistik) och hur denna statistik är relaterad till vår förmåga att skapa historiskt lönsamma handelssystem med hjälp av den data. Du kommer att se att fördelningar som har vissa egenskaper lätt leder till ett stort potentiellt antal historiskt lönsamma strategier, medan fördelningar som har andra egenskaper är mycket svåra att hitta kanter på. För er som är välkända i statistiken, gärna bidra med vilka grundläggande statistiska analysaspekter du tycker är användbara och vilka du vill att jag ska förklara i en framtida inlägg. Om du vill lära dig mer om mitt arbete och hur du också kan använda tidsserieanalys för att utveckla handelsstrategier kan du överväga att gå med i Asirikuy. en webbplats fylld med pedagogiska videor, handelssystem, utveckling och ett bra, ärligt och öppet tillvägagångssätt mot automatiserad handel i allmänhet. Jag hoppas att du haft den här artikeln. o) 3 svar på 8220Using R i Algorithmic Trading: Enkel tidsserie karakterisering. Del One8221 8230 del 1 av denna serie inlägg fick vi några enkla grundläggande egenskaper från en Forex Financial Times-serie i 8230 8230 för att vara det enklaste. Innan du följer denna handledning skulle jag också rekommendera dig att läsa mina tidigare två (1. 2) R-handledning om grundläggande tidsserieanalys, så att du är bekant med vissa grundläggande R 8230 förlåt men jag står inför detta problem: Fel i plot. window ( 8230). behöver ändliga 8216xlim8217 värden Dessutom: Varningsmeddelanden: 1: I min (x). inga icke-missade argument till min återkomst Inf 2: I max (x). inga icke-missade argument till max returnera - Inf 3: I min (x). inga icke-missade argument till min återkomst Inf 4: I max (x). inga icke-missade argument till max returnera - Inf gt dataset plot (datasetClose)

No comments:

Post a Comment