Thursday 16 November 2017

Python Lager Alternativer Sitater


Lær kvant ferdigheter. Hvis du er handelsmann eller investor og ønsker å skaffe seg et sett med kvantitative handelsferdigheter, er du på rett sted. Trading With Python kurset vil gi deg de beste verktøyene og rutene for kvantitativ handelsforskning, inkludert funksjoner og skrifter skrevet av ekspert kvantitative handelsfolk Kurset gir deg maksimal innvirkning på din investerte tid og penger. Det fokuserer på praktisk anvendelse av programmering til handel i stedet for teoretisk datavitenskap. Kurset vil betale seg raskt ved å spare tid i manuell databehandling Du vil bruke mer tid på å undersøke strategien din og gjennomføre lønnsomme handler. Kursoversikt. Part 1 Grunnleggende Du lærer hvorfor Python er et ideelt verktøy for kvantitativ handel. Vi starter med å etablere et utviklingsmiljø og vil da introdusere deg til de vitenskapelige biblioteker. Del 2 Håndtere data Lær hvordan du får data fra ulike gratis kilder som Yahoo Finance, CBOE og andre nettsteder Les og skriv flere dataformater, inkludert CSV - og Excel-filer. Part 3 Forskerstrategier Lær å beregne PL og tilhørende resultatmålinger som Sharpe og Drawdown Bygg en handelsstrategi og optimaliser ytelsen Flere eksempler på strategier diskuteres i denne delen. Part 4 Going live Denne delen er sentrert rundt Interactive Brokers API Du lærer hvordan du får realtids lagerdata og legger live-ordrer. Massevis av eksempelkoden. Kursmaterialet består av notatbøker som inneholder tekst sammen med interaktiv kode som denne. Du vil kunne lære av samhandle med koden og endre den til din egen smak Det vil være et godt utgangspunkt for å skrive dine egne strategier. Mens noen emner blir forklart i stor detalj for å hjelpe deg å forstå de underliggende konseptene, vil du i de fleste tilfeller ikke vant å skrive Din egen lavnivåkode, på grunn av støtte fra eksisterende åpen kildebibliotek TradingWithPython bibliotek kombinerer mye av diskens funksjonalitet ssed i dette kurset som ferdige funksjoner og vil bli brukt i løpet av kurset, vil Pandas gi deg all den kraftige løftekraften som trengs for datatrykk. Alle koden er gitt under BSD-lisensen, og tillater bruk i kommersiell aplications. Course rating. A pilot av kurset ble holdt våren 2013, dette er hva studentene fikk å si. Mat godt designet kurs og god trener Definitivt verdt sin pris og min tid Lave Jev visste tydeligvis at hans ting dybde av dekning var perfekt Hvis Jev kjører noe som dette igjen, vil jeg bli den første til å registrere meg John Phillips. Ditt kurs fikk meg til å hoppe, begynte å tenke på python for lager systemanalyse. Copyright 2017 MarketWatch, Inc. Alle rettigheter reservert Ved å bruke dette nettstedet, godtar du Vilkår for bruk Personvern og Cookie Policy oppdatert. Intraday Data levert av SIX Financial Information og underlagt vilkår for bruk Historiske og nåværende sluttdatoer levert av SIX Finansiell informasjon Intradag data dela yed per utvekslingskrav SP Dow Jones Indeks SM fra Dow Jones Company, Inc Alle anførselstegn er i lokal utvekslingstid Real-time siste salgsinformasjon fra NASDAQ Mer informasjon om NASDAQ-handlede symboler og deres nåværende finansielle status Intradag-data forsinket 15 minutter for Nasdaq, og 20 minutter for andre utvekslinger SP Dow Jones Indeks SM fra Dow Jones Company, Inc SEHK intraday data er levert av SIX Financial Information og er minst 60 minutter forsinket. Alle anførselstegn er i lokal utvekslingstid. MarketTwatch Top Stories. I er interessert i å gjøre økonometrisk analyse av finansielle derivater Hovedoppdateringen jeg har møtt er at det ikke er noen gode gratis ressurser, minst som jeg vet om for historiske opsjonsdata. Derfor vil jeg lage min egen personlige database med historiske opsjonspriser. Jeg har brutt dette prosjektet ned inn i tre hovedhindre. Finn ut hvordan du får opsjonsdata fra python. Pick et datalagringsformat. Automat samlingen av daglige data. ns data i python. Over sommeren jeg hadde litt ledig tid og samarbeide med min far for å skape en investeringsmodell Mens det er en veldig enkel modell, dette innlegget handler om å bygge en database, så jeg vant t gå inn i detaljer her Det er nok å si at jeg trengte å finne en måte å få opsjonsdata fra yahoo Finance Dette var en unik utfordring fordi i motsetning til egenkapitaldata eller data fra andre kilder som FRED, har opsjonsdata ikke en praktisk nedlasting til csv-knappen hvor som helst på nettstedet. På den gang jeg leste den utmerkede boken Python for Data Analysis av Wes McKinney og fikk en ide for hvordan å implementere en grunnleggende webkrypter for å analysere html på yahoo og returnere dataene i et python-vennlig format. Lang historie kort skrev jeg noen kode til gjør nettopp det og det gjorde veien til versjon 0 9 av pandas biblioteket hvis du ikke er kjent med pandas, og du jobber med data i python, du bør definitivt sjekke det ut. Nå er det bare disse få kommandoer som trengs for å få opsjonsdata fra yahoo Finans. Samtalene og legger objekter er pandas DataFrames som inneholder den samme informasjonen du vil finne på yahoo Finance-siden for Apple Inc-alternativer. Picking filformatet. Ved å velge et filformat hadde jeg to hovedhensyn størrelse på filen og hastigheten som det kan være skrevet lese For å teste dette ut skrev jeg et enkelt skript som genererte en tilfeldig 4000 ved 4000 numpy array og definerte funksjoner for å skrive og lese dataene i forskjellige filformater. Formatene jeg valgte å jobbe med var csv, hdf5 h5 og MatLab nedenfor er skriptet jeg pleide å kjøre testen. Etter at jeg hadde denne koden, sluttet jeg bare iPython og kjørte filen og brukte timeit magien for å se hvor lang tid det tok hver av de tre metodene å lese og skrive dataene. med de endelige filstørrelsene er oppsummert i tabellen nedenfor. Det er lett å se at hdf5 filtypen er den beste til å velge for mine formål. Jeg vil gjerne merke her at årsaken til at hdf5 filformatet er 1 2 størrelsen på filen, er fordi dt ype i h5-filen er en 32-biters float mens dtype er en 64-bit float. Men for aksjeopsjoner har vi bare generelt passe på data ut to desimaler, slik at 32-bits presisjonen er rikelig. Automatisering av datainnhenting. Det endelige trinnet for å få denne databasen startet var å automatisere datainnhentingsprosessen For å gjøre dette brukte jeg det populære UNIX planleggingsverktøyet cron jeg kjører OSX 10 8 Mountain Lion, og som standard i 10 8 er cron-verktøyet deaktivert. For å fikse dette, kjørte jeg rett og slett følgende kommandoen i terminalen. Denne kommandoen oppretter etc crontab-filen hvis den ikke allerede eksisterer og gjør den klar for bruk av cron. Jeg skal ikke gi en detaljert forklaring på hvordan du bruker cron her da jeg fremdeles er ganske ny på det selv , men googling for det vil gi deg mange eksempler og opplæringsprogrammer jeg vil imidlertid gi linjen i min crontab-fil som utfører skriptet. Det neste trinnet var å skrive skriptet jeg ville ha cron call Dette vises nedenfor. Jeg har cron kjøre dette skript på et bestemt tidspunkt eac h ukedag og fyll i hdf5-filen Den resulterende filen vil ha en nestet struktur som dette. Notatet CTICKmm-yy står for et anropsalternativ C, et gitt ticker TICK, og utløpet av alternativet mm-yy Inne i hver av datasett er det tre kolonnekurs, siste pris på opsjonskontrakt og volum i siste handelsdag. Etter at du kjørte dette skriptet for en natt, var den resulterende hdf5-datafilen 7 648648 MB Hvis jeg skulle tillate denne filen å løpe hver virkedag i et år vil den endelige filstørrelsen være under 2 GB Ikke dårlig. Hvis du vil ha mer informasjon om hvordan jeg samler inn tickernavn eller hva Options funksjonalitet er i pandas 0 10 eller tidligere, la en kommentar og jeg vil gjøre mitt beste for å svare. Awesom jeg har lyst til å gjøre noe slikt, siden jeg også vil teste noen av mine strategier. Du bør nok endre fra alternativer for importalternativer til fra importeringsalternativer, men annet enn at skriptet fungerer bra. Vil du være villig til å dele opsjonsdataene du har samlet inn langt jeg kunne gjengi gaven ved å opptre som en backup for å kjøre skriptet i tilfelle du noen gang mister tilkoblingsmuligheter i noen dager. Jeg vurderte omtrent testing med bruk av priser generert ved hjelp av Black Scholes, men ekte data er åpenbart bedre. La deg like scriptet Jeg har faktisk sluttet å kjøre filen hver natt, så jeg har ikke for mye data. Ellers vil jeg gjerne dele det med deg. Med respekt for importklæringene er jeg forfatteren av opsjonsklassen i pandas. På tidspunktet for skrivingen av dette blogg innlegg noen av funksjonaliteten jeg bruker i skriptet hadde ikke blitt slått sammen i en utgitt versjon av pandas, så jeg ringte min lokale versjon i en fil som heter alternativer som jeg baserte pandas versjonen på. FYI Det er faktisk noen API endringer som skjer med Alternativer-klassen i pandas akkurat nå Hvis endringene skje som en av de andre bidragsyterne har antydet, kan mye av koden i dette skriptet være foreldet. I det minste bør det fortsatt få folk til å starte. Jeg er i ferd med å sette opp en stor derivatdatabase Parsing fra weblinks er helt klar Hvor jeg er litt tapt, er hvordan å lage databasen med alle individuelle alternativer på en slik måte som muliggjør beregninger som SKEW osv. uten å manuelt velge de individuelle alternativene hver gang til gjør beregningen Hvordan lage slike generiske referanser jeg er litt tapt her og vil sortere det ut først før du går videre med dataopprettelsen. Jeg tror den riktige rekkefølgen i returtupet er satt, kall. Hei Martin, du har rett Da jeg først lagde opsjonene innsamlingskoden til pandas, hadde jeg getoptionsdata returnere samtaler først. Ikke sikker på hvorfor noen endret det. Jeg oppdaterte koden i posten for å bruke de riktige putene, samtaleberegning nå. Jeg selv om dette ville være ganske nyttig å være kunne laste ned valgprisene Til å begynne med brukte jeg skriptet du angav ovenfor ganske mye jeg har pandas 0 13 1, men det virker helt ødelagt Feilene oppstår med følgende line. rawcalls call Sann, legg False, nea r False, overbelow 6.Since jeg vil få alle valgdata jeg tror jeg må bruke getforwarddata-metoden. De andre metodene ser ut til å bare støtte å få en bestemt måned. Feilen er ganske lang, men de siste par linjene er. File, linje 1653 , i neste øyeblikk heve StopIteration StopIteration. Does noen vite hvordan å fikse dette Også jeg kjører Ubuntu Linux Jeg tror versjon 0 11 av Pandas jobbet litt, selv om det ikke ville få alle alternativprisene jeg er ikke sikker på hvordan du bruker pip til å nedgradere på dette punktet enten så er jeg sannsynligvis sittende fast prøver å få versjon 0 13 1 å arbeide. Hey Anonym beklager, jeg vet ikke navnet ditt, eller hvis det er Anonymt - det er fantastisk. Vær sikker på at disse funksjonene ikke fungerer som de skal. Jeg skrev denne koden om for et år siden og på det tidspunktet jobbet dette uten problemer, er Pandas under tung utvikling og det ser ut som at siden jeg skrev denne koden, har api gått gjennom noen forandringer. Dessverre har jeg ikke tid akkurat nå for å gå gjennom og endre c ode fra dette innlegget slik at det fungerer med 0 13 Jeg kan si at all funksjonalitet beskrevet i dette innlegget fortsatt eksisterer med v0 13, men noen av metodens signaturer kan ha endret seg. Jeg tror at docstringene for hver metode i alternativklassen bør være detaljert nok til å gi deg en ganske god ide om hva som må byttes, kan du finne dem her. Hvis du føler deg for det og gjør slutt med å gjøre de nødvendige endringene, vennligst gi meg beskjed og jeg vil oppdatere koden her til reflektere dem. PS hvis du gir det en prøve og har det vanskelig, legg inn igjen, og jeg vil prøve å gi noen veiledning. Jeg har vært opptatt med et annet prosjekt, men i utgangspunktet har jeg bare gjort et par endringer for å få ting i gang enkelhet Jeg har bare gjort endringene til jeg tror at innfødte og inyearindeksene ble beregnet feil Også i noen tilfeller rammen returnerer Ingen ramme tilbake Ingen har forårsaket krasj. Hvis noen har tiden koden skal oppdateres for å bare spørre om tilleggsdata som faktisk eksisterer i t Ime månedsintervall passert i Jeg er ikke sikker på hvordan du analyserer denne informasjonen fra HTML akkurat nå. Det vil spørre Yahoo for hver måned med data, selv når det ikke er tilgjengelige alternativer for det månedsåret for getforwarddata-metoden. Her er Linux diff-utgangen for endringene jeg laget. diff 25d24 DEBUG True 538.541d536 hvis len data 0 returnerer Ingen 590,595c585 prøv unntatt msg symbol må være en gyldig strengoppgang ValueError msg --- 860.866c850.861 år for jeg, m i teller måneder i m - 1 12 mon m - år 12 innmonterer jeg må --- i år CURYEAR måneder 1 Finn ut hvor mange elementer i innsamlinger går forbi 12 til bytte 0 for jeg i løpet av månedene hvis innmonterer jeg 12 innmonterer i - 12 bytt 1 Endre de tilsvarende elementene i iyears liste for jeg i rekkevidde 1, bytte 1 år - i 1 875,878c870,873 for jeg i rekkevidde måneder m2 innmonterer jeg i år i år hvis DEBUG skriv ut Kommer sss --- for mon i rekkevidde måneder m2 innmonterer mon y2 inntil år 892,895d886 hvis rammen er Ingen hvis DEBUG-utskrift, ingen data fortsetter. Hei, takk for y vårt gode arbeid Det virker som om det for tiden er ødelagt - kanskje et layoutskjema endres på yahoo det er den tableloc 13 i samtalen for å fåoptiondata. Jeg skal feilsøke den når jeg har tid, her er detaljene så langt. Tilkoblet pydev debugger build 135 1057 Traceback siste anrop siste fil, linje 1733, i fil, Ingen, Ingen Fil, linje 1226, i run globals, lokalbefolkningen utfører skriptet Fil, linje 5, i setter, samtaler 1, 16 Fil, linje 630, i getoptionsdata Fil, linje 748, i getputdata returnere self getoptiondata måned, år, utløp, 13, setter fil, linje 673, i getoptiondata funnet ntables IndexError Tabellplassering 13 ugyldig, 3 tabeller found. from import Valg fra datetime import date. aapl Valg AAPL, yahoo setter, ringer 1, 16.I 3 import pandas I 4 pandas versjon Ut 4 0 13 1.Hi, takk for kommentaren Denne koden er nå ødelagt på grunn av endringer i Yahoo Finance API Jeg tror at pandas-utviklerne har den originale koden Jeg ga dem Se den aktuelle diskusjonen her. Han spiser unnskyldning for anonym ous question, men når du kjørte dette programmet for hver ticker i listen over NASDAQ og NYSE symboler, hvor lang var kjøretiden for en hel iterasjon. En anonym - ikke noe problem. Denne rutinen tar ganske lang tid å løpe Sannsynligvis på rekkefølge på 6-8 timer. Det kan bli spedt opp ganske ved å gjøre flere forespørsler om gangen ved hjelp av threading og Queue-modulene i standardbiblioteket. Jeg har et eksempel på å gjøre dette med vanlige egenkapitaldata her. Spenning - jeg er veldig ny til python og programmering generelt, men synes det er kraftig og fascinerende med det lille forskningsarbeidet jeg har gjort Så langt legger jeg sammen et veldig enkelt program for å gjøre noe lignende. Dette er hva jeg har så langt import datetime som dt import pandas som pd importer numpy som np fra import Alternativer fra pandas import DataFrame import h5py som h5.num 0 mens num prøver jeg tickers Symbol num alternativer Alternativer jeg, yahoo data unntatt pass skrive ut num num num 1. I min ticker liste har jeg 6280 symboler eller så, og jeg fant ut at getoptionsdataene per danner mye raskere enn tallet Metoden akkurat nå løper dette om 3 timer. Målet mitt er å kutte det med 1 6. Det er fortsatt i de svært grunnleggende stadiene, men det fungerer og samler dataene for tickers som inneholder det. Hvis du har noen tips eller forslag til å forbedre ytelsen Jeg er i alle ører jeg kjenner en looping struktur, er kanskje ikke den mest effektive, men alt for meg er prøve og feil. Hvis dette er trivielt og eller et dumt spørsmål, beklager jeg igjen, jeg m ny og lærer. Jeg kan tenke meg at flaskehalsen sakligste delen av dette programmet henter dataene fra nettet. Ved hjelp av køen og tråderverktøyene i standardbiblioteket som jeg gjorde i eksemplet jeg postet en link til, er det trolig den beste måten å øke hastigheten på denne delen. En annen relativt enkelt alternativ til å gjøre parallell datainnhenting er å skrive en funksjon som oppnår dataene for en enkelt liste. Da kan du bruke noe som IPython parallelt for å kartlegge funksjonen over listen over ticker parallelt. Et eksempel på å bruke kart parallelt c Her finner du en enkel sløyfe. Det er absolutt ikke det som tar denne koden lang tid å løpe - så vær så bekymret for det. Jeg beklager, men jeg har ikke besøkt denne koden på over 2 år Pandas beveger seg ganske fort, så det er ikke overraskende at koden i dette innlegget ikke virker. Jeg har ikke tid til å feilsøke skriptet, men jeg vil foreslå å se på pandas-dokumentasjonen for gjeldende opsjonsprisskrapingsfunksjoner. Du kan finne den her. For tickerlister fikk jeg dem fra disse to nettadressene. Jeg vet ikke så mye om programmering, men jeg har mange årlige symbolfiler fra, men jeg må ha for eksempel år 2012-2015 i en og samme fil fordi jeg ønsker å kartlegge det i min programvare som et utvidet diagram Er det mulig å gjøre med dette skriptet.

No comments:

Post a Comment