Thursday, 2 November 2017

Python optioner citat


Lär dig kvant kompetens. Om du är en näringsidkare eller en investerare och vill förvärva en uppsättning kvantitativa handelsförmågor, är du på rätt plats Trading With Python-kursen ger dig de bästa verktygen och rutinerna för kvantitativ handelsforskning, inklusive Funktioner och skrifter skrivna av expertkvantitativa handlare Kursen ger dig maximal inverkan på din investerade tid och pengar. Det fokuserar på praktisk tillämpning av programmering till handel snarare än teoretisk datalogi. Kursen kommer att betala sig snabbt genom att spara tid vid manuell databehandling Du kommer att spendera mer tid på att undersöka din strategi och genomföra lönsamma affärer. Kursöversikt. Part 1 Grunderna Du lär dig varför Python är ett idealiskt verktyg för kvantitativ handel. Vi börjar genom att skapa en utvecklingsmiljö och introducera dig sedan till de vetenskapliga biblioteken. Del 2 Hantera data Lär dig hur du hämtar data från olika fria källor som Yahoo Finance, CBOE och andra webbplatser Läs och skriv flera dataformat inklusive CSV - och Excel-filer. Part 3 Forskningsstrategier Lär dig att beräkna PL och åtföljande prestandametri som Sharpe och Drawdown Bygg en handelsstrategi och optimera prestanda Flera exempel på strategier diskuteras i denna del. Part 4 Kommer att leva Denna del är centrerad kring Interactive Brokers API Du lär dig hur du får realtids lagerdata och lägger live order. Massor av exempelkod. Kursmaterialet består av anteckningsböcker som innehåller text tillsammans med interaktiv kod som den här Du kommer att kunna lära av interagera med koden och ändra det efter eget tycke Det kommer att vara en bra utgångspunkt för att skriva egna strategier. Även om vissa ämnen förklaras i detalj för att hjälpa dig att förstå de underliggande koncepten, i de flesta fall vann du inte ens att skriva Din egen lågnivåkod, på grund av stöd från befintliga bibliotek med öppen källkod TradingWithPython-biblioteket kombinerar mycket av funktionalitetsdisken Ssed i den här kursen som färdiga funktioner och kommer att användas under hela kursen kommer Pandas att ge dig all den kraftiga kraften som behövs vid datakrypning. Alla koden tillhandahålls under BSD-licensen och tillåter användningen i kommersiella Aplications. Course rating. A pilot av kursen hölls våren 2013, det här är vad studenterna fick säga. Matej väl utformad kurs och bra tränare Definitivt värt sitt pris och min tid Lave Jev visste självklart att hans grejer djupet av täckningen var Perfekt Om Jev kör något liknande här igen, blir jag den första som registrerar mig John Phillips Din kurs fick mig verkligen att hoppa och började överväga python för stock system analysis. Copyright 2017 MarketWatch, Inc Alla rättigheter reserverade Genom att använda den här sidan godkänner du Användarvillkor Sekretesspolicy och Cookie Policy updated. Intraday Data tillhandahållen av SIX Financial Information och under förutsättning att användningsområden Historiska och aktuella slutliga data tillhandahållna av SIX Finansiell information Intradag data dela yed per utbytesbehov SP Dow Jones Index SM från Dow Jones Company, Inc Alla noteringar är i lokal utbytestid Realtids senaste försäljningsdata från NASDAQ Mer information om NASDAQ-handlade symboler och deras nuvarande finansiella status Intradagdata fördröjda 15 minuter för Nasdaq, och 20 minuter för andra börser SP Dow Jones Index SM från Dow Jones Company, Inc SEHK intraday data tillhandahålls av SIX Financial Information och är minst 60 minuter försenad. Alla citat är i lokal utbyte time. MarketWatch Top Stories. I är intresserad av att göra Ekonometrisk analys av finansiella derivat Den huvudsakliga uppläggningen jag har mött är att det inte finns några bra fria resurser åtminstone som jag känner till för historiska optionsdata Därför vill jag skapa en egen personlig databas med historiska alternativpriser Jag har brutit ned projektet in i tre huvudhinder. Ange hur man får alternativdata från python. Pick ett datalagringsformat. Automat samlingen av dagliga data. ns data i python. Over sommaren hade jag lite ledig tid och samarbetade med min pappa för att skapa en investeringsmodell. Även om det är en mycket enkel modell, handlar det här om att bygga en databas så jag vann inte gå in i detaljer här. Det räcker att Säg att jag behövde hitta ett sätt att få alternativdata från yahoo Finance Detta var en unik utmaning för att till skillnad från egenkapitaldata eller data från andra källor som FRED, har alternativdata inte en bekväm nedladdning till csv-knappen någonstans på webbplatsen. tiden läste jag den utmärkta boken Python for Data Analysis av Wes McKinney och fick en uppfattning om hur man implementerar en grundläggande webbrobot för att analysera html på yahoo och returnera data i ett pythonvänligt format. Lång historia kort skrev jag en kod till Gör just det och det gjorde sin väg till version 0 9 i pandas biblioteket om du inte känner till pandor och du arbetar med data i python bör du definitivt kolla upp det. Nu är det bara dessa få kommandon som behövs för att få alternativdata från yahoo Finance. The samtal Och lägger objekt är pandas DataFrames som innehåller samma information som du hittar på yahoo Finance-sidan för Apple Inc-alternativ. Plocka filformatet. När du plockade ett filformat hade jag två huvudkänslor storlek på filen och hastigheten där det kan vara Skrivet läs För att testa detta skrev jag ett enkelt skript som genererade en slumpmässig 4000 vid 4000 numpy array och definierade funktioner för skrivning och läsning av data i olika filformat. De format jag valde att arbeta med var csv, hdf5 h5 och MatLab Nedan är Manuset jag brukade köra testet. Efter att jag hade den här koden, slog jag helt enkelt iPython och sprang filen och använde Timeit Magic för att se hur länge det tog var och en av de tre metoderna att läsa och skriva data. med de slutliga filstorlekarna sammanfattas i tabellen nedan. Det är lätt att se att hdf5-filtypen är den bästa att välja för mina ändamål. Jag skulle vilja notera här att anledningen till att hdf5-filformatet är 1 2 storleken på Filen, beror på att dt ype i h5-filen är en 32-bitars float medan dtypen är en 64-bitars float. För aktieoptioner är vi dock endast vanligtvis vana vid data med två decimaler, så att 32-bitars precision är gott. Att automatisera datainsamling. Det sista steget För att få den här databasen påbörjad var att automatisera datainhämtningsprocessen För att göra detta använde jag det populära UNIX-schemaläggningsverktyget cron jag kör OSX 10 8 Mountain Lion, och som standard i 10 8 är cron-verktyget avstängt För att åtgärda detta körde jag helt enkelt följande Kommandot i terminalen. Denna kommando skapar etc crontab filen om den inte redan finns och gör den klar för användning av cron Jag kommer inte att ge en detaljerad förklaring till hur man använder cron här eftersom jag fortfarande är ganska ny på det själv , men googling för det kommer att ge dig massor av exempel och tutorials jag kommer dock att ge raden i min crontab-fil som kör skriptet Nästa steg var att skriva manuset jag skulle ha cron call Detta visas nedan. Jag har cron köra detta Skript vid en viss tid eac h veckodag och fyll i hdf5-filen Den resulterande filen kommer att ha en kapslad struktur som denna. Notationen CTICKmm-yy står för ett samtal C, en given ticker TICK och alternativets löptid mm-yy Inne i var och en av Dataset finns tre kolumner utropspris, sista pris på optionsavtal och volym under senaste handelsdagen. Efter att ha kört det här skriptet för en natt var den resulterande hdf5-datafilen 7 648648 MB om jag skulle tillåta den här filen att köra varje arbetsdag I ett år skulle den slutliga filstorleken vara under 2 GB Inte dålig. Om du vill ha mer information om hur jag samlar in tickernamn eller vilken alternativfunktion som finns i pandor 0 10 eller tidigare lämna en kommentar och jag gör mitt bästa för att svara. Awesome Jag har velat göra något så här, eftersom jag också vill backtest några av mina strategier. Du borde förmodligen ändra från alternativen Importera alternativ till från importalternativ, men förutom att ditt script fungerar bra. Vill du vara villig att Dela alternativdata du har samlat in så Långt jag kunde återfå favoriten genom att fungera som backup för att köra manuset om du någonsin förlorar anslutning för några dagar. Jag övervägde grovt testning med hjälp av priser som genererades med Black Scholes, men verkliga data är uppenbarligen bättre. Låt dig gilla manuset Jag har faktiskt slutat köra filen varje natt så jag har inte för mycket data Annars kan jag vara glad att dela den med dig. Med respekt för importdeklarationerna är jag författaren till Options-klassen i pandor Vid skrivandet av detta Blogginlägg några av funktionaliteten jag använde i skriptet hade inte blivit sammanfogad i en släppt version av pandor, så jag ringde min lokala version i en fil med namngivna alternativ som jag baserade pandas version på. FYI Det finns faktiskt några API-förändringar som händer med Alternativsklassen inom pandor just nu Om förändringarna inträffar som en av de andra bidragsgivarna har föreslagit, kan mycket av koden i det här skriptet vara föråldrad. Det ska åtminstone få folk att börja. Jag är på gång av att skapa en stor derivatdatabas Parsningen från webblänkar är klar Allt om jag är lite förlorad är det hur man skapar databasen med alla individuella alternativ på ett sådant sätt som möjliggör beräkningar som SKEW etc. utan att man manuellt väljer de enskilda alternativen varje gång till gör beräkningen Hur man gör sådana generiska referenser är jag lite borttappad här och vill sortera ut det först innan jag går vidare med dataskapandet. Jag tror att den korrekta ordningen i returtupet sätter upp samtal. Hej Martin, du har rätt När jag till en början lade till alternativen samla kod till pandas, hade jag getoptionsdata returnera samtal först Inte säker när varför någon ändrade den. Jag uppdaterade koden i posten för att använda rätt sätter, samtal beställer nu. Jag men det skulle vara ganska användbart att vara kunna ladda ner alternativpriser Till att börja med använde jag det manuskript du angav ovan ganska mycket jag har pandor 0 13 1, men det verkar helt bruten Fel uppstår med följande line. rawcalls call Sann, sätt False, nea R False, overbelow 6. Eftersom jag vill få alla alternativdata jag tror att jag måste använda getforwarddata-metoden. De andra metoderna verkar bara stödja att få en viss månad. Felet är ganska långt men de sista parraderna är. Fil, linje 1653 , i nästa steg höja StopIteration StopIteration. Does någon veta hur man fixar det här Jag kör även Ubuntu Linux Jag tycker att version 0 11 av Pandas fungerade något, men det skulle inte få alla alternativpriser Jag är inte säker på hur man använder pip för att nedgradera På det här steget antingen så är jag förmodligen fast att försöka få version 0 13 1 att fungera. Hej Anonym förlåt, vet inte ditt namn, eller om det är Anonymt - det är fantastiskt. Försäkra dig om att dessa funktioner inte fungerar som de ska. Jag skrev den här koden om för ett år sedan och då arbetade det utan problem Pandas är under kraftig utveckling och det verkar som att sedan jag skrev denna kod har api gått igenom några förändringar. Tyvärr har jag inte tid just nu för att gå igenom Och ändra c Ode från det här inlägget så att det fungerar med 0 13 Jag kan säga att all funktionalitet som beskrivs i detta inlägg fortfarande existerar med v0 13, men några av metodens signaturer kan ha förändrats. Jag tror att docstrings för varje metod i alternativklassen bör vara tillräckligt detaljerad för att ge dig en ganska bra idé om vad som behöver förändras kan du hitta dem här. Om du känner dig för det och slutar göra de nödvändiga ändringarna, var snäll och låt mig veta och jag uppdaterar koden här till reflektera dem. Om du försöker det och har det svårt, skicka här igen och jag försöker ge några råd. Jag har varit upptagen med ett annat projekt, men i princip gjorde jag bara ett par ändringar för att få saker att gå Enkelhet Jag gjorde just ändringar till jag tror att de inmonterade och inyearindexerna beräknades fel Även i vissa fall ramar tillbaka Ingen ram återvändande Ingen orsakade kraschen. Om någon har tiden koden ska uppdateras för att bara fråga efter alternativdata som Existerar faktiskt i t Ime månadsintervall passerat Jag är inte säker på hur man analyserar denna information från HTML Just nu kommer det att fråga Yahoo för varje månads data även när det inte finns några alternativ för det månad året för getforwarddata-metoden. Här är Linux diff-utgången För ändringarna jag made. diff 25d24 DEBUG True 538.541d536 om len data 0 returnera Ingen 590,595c585 försök utom msg symbol måste vara ett giltigt strängupphöjning ValueError msg --- 860.866c850.861 inyears för jag m mäter inmonths år m - 1 12 mån m - år 12 inmonths jag mån --- inyears CURYEAR månader 1 Beräkna hur många saker i inmonths går förbi 12 till byte 0 för jag inom intervall månader om inmonths i 12 inmonths i - 12 byt 1 Ändra motsvarande objekt i inyears lista för jag i intervall 1, byta 1 år - 1 1 875,878c870,873 för jag i intervall månader månader inmonths jag år 2 år om DEBUG skriv ut Kommer sss --- för mån i intervall månader m2 inmonths mon y2 inyears mån 892,895d886 om ramen är Ingen om DEBUG skriv ut inga data fortsätt. Hj, Tack för y vårt fantastiska arbete Det verkar som om det är för närvarande brutet - kanske en layout schema förändras på yahoo det är den tableloc 13 i samtalet att fåoptiondata. I ll felsöka det när jag har tid, här är detaljerna hittills. Kopplade till pydev debugger bygga 135 1057 Traceback senaste samtal senast Fil, linje 1733, i fil, Ingen, Ingen Fil, linje 1226, i run globals, lokalbefolkningen utföra skriptet Fil, linje 5, sätter in samtal 1, 16 Fil, rad 630, i getoptionsdata Fil, linje 748, i getputdata returnera self getoptiondata månad, år, utgång, 13, sätter fil, rad 673, i getoptiondata hittades ntables IndexError Tabell plats 13 ogiltig, 3 tabeller found. from import Alternativ från datetime import date. aapl Alternativ AAPL, yahoo sätter samtal 1, 16.I 3 importpandor I 4 pandasversion Ut 4 0 13 1.Hi tack för kommentaren Denna kod är nu bruten på grund av ändringar i Yahoo Finance API Jag tror att pandasutvecklarna har originalkoden Jag gav dem Se den relevanta diskussionen här. Den Spencer ber om ursäkt för den anonyma Ous fråga men när du körde detta program för varje ticker i din lista med NASDAQ och NYSE symboler, hur länge var körtiden för en hel iteration. Anonymous - no problem. This rutin tar ganska lång tid att springa Sannolikt på order på 6-8 timmar. Det kan höjas en hel del genom att göra flera förfrågningar i taget genom att använda threading och Queue-modulerna i standardbiblioteket. Jag har ett exempel på att göra detta med regelbunden egenkapitaldata här. Väldigt nytt för python och programmering i allmänhet men tycker det är kraftfullt och fascinerande med det lilla forskningsarbetet jag har gjort Hittills lägger jag samman ett mycket enkelt program för att göra något liknande Det här har jag hittills importerat datetime som dt import pandas som pd Import numpy som np från import Alternativ från pandor import DataFrame import h5py som h5.num 0 medan num försöker tickare Symbol num alternativ Alternativ jag, yahoo data utom passera utskrift num num num 1. I min ticker lista har jag 6280 symboler eller så, och jag fann att getoptionsdata per formar mycket snabbare än numerdata-metoden Just nu kör det på ungefär 3 timmar Mitt mål är att skära det med 1 6: e Det är fortfarande i de allra grundläggande stegen men det fungerar och samlar data för tickers som innehåller det Om du har några tips eller förslag till förbättrad prestanda Jag mår alla öron Jag känner en loopingstruktur kanske inte är den mest effektiva men allting för mig är rättegång och fel. Om det här är trivialt eller en dum fråga, ber jag om ursäkt, igen jag m ny och lärande. Kan tänka mig att flaskhalsen långsammaste delen av det här programmet hämtar data från webben. Med hjälp av kö - och trådverktygen i standardbiblioteket som jag gjorde i det exempel jag postade en länk till är det förmodligen det bästa sättet att snabba upp den här delen. relativt enkelt alternativ att göra parallell datahämtning är att skriva en funktion som hämtar data för en enda lista. Sedan kan du använda något som IPython parallellt för att kartlägga funktionen över listan över ticker parallellt. Ett exempel på att använda kartan parallellt c en här hittar du. Förresten är den enda slingan här verkligen inte vad som tar den här koden länge att springa - så oroa dig inte om det. Jag är ledsen, men jag har inte besökt den här koden på över 2 år Pandas rör sig ganska snabbt, så det är otroligt att koden i det här inlägget inte fungerar. Jag har inte tid att felsöka manuset, men jag föreslår att du tittar på pandasdokumentationen för de aktuella alternativen skrapningsfunktionerna. Du kan hitta den här. För ticker listor fick jag dem från dessa två webbadresser. Jag vet inte så mycket om programmering men jag har många årliga symbolfiler från men jag måste till exempel ha år 2012-2015 i en och samma fil eftersom jag vill kartlägga det i min programvara som ett utökat diagram Är det möjligt att göra med det här skriptet.

No comments:

Post a Comment