Saturday, October 22, 2016

Aflaai Google Intraday Historiese Data Met Python

Aflaai Google Intraday historiese data met Python 19 Desember 2011 Tot dusver in my vorige poste, ons is te laai DAAGLIKSE aandeelpryse van die bekende plekke Yahoo en Google. Beide plekke bied baie maklike toegang tot gratis daaglikse historiese data. Beide plekke bied ook lekker kaarte van die voorraad pryse. Maar sommige van julle dalk opgemerk het dat Google kaarte nie net daaglikse pryse, maar hulle karteer ook Intraday pryse af tot twee resolusie minuut. Daar is egter geen gepubliseerde skakels na die rou data wat gebruik word om die kaarte te bou. Bummer. Kom ons doen 'n bietjie ondersoek en kyk wat ons kan uitvind. Vir dié van julle met behulp van die uitstekende Chrome leser, het dit 'n ingeboude in die nut om feitlik alle aspekte van 'n webblad (of terrein) te ondersoek. Dit staan ​​bekend as ontwikkelaarnutsgoed. Dit kan begin op die ikoon wrench in die boonste regterkantste hoek, kies Tools, dan ontwikkelaarnutsgoed (of bloot Ctrl + Shift + I). Hierdie program het 'n enorme bedrag van funksies, maar ons is veral geïnteresseerd in 'n netwerk verkeer 'n bladsy verwek. Dus laat begin deur te trek op die Google Finansies oorsig bladsy vir AAPL. Dan begin die ontwikkelaar gereedskap en klik op die blad Netwerk. Ten slotte, op die grafiek vir AAPL, kliek op die 2min interval skakel. Aan die onderkant van die bladsy sal 'n lys van al die netwerk versoeke die wat gegenereer word deur te kliek op die 2min skakel wees. As ons kyk na hulle, is daar een geroep getprices. Dit lyk belowend! Klik nou op die skakel en dan die 8220; response8221; blad langs die top om te sien wat die bediener se reaksie was om die versoek. Hier is wat my leser lyk soos: Die data wat ons is geïnteresseerd in lyk soos volg: Nou kry ons iewers! Dit lyk seker soos prys en volume data, saam met 'n soort van tyd stempel en 'n lys van neutraliseer. Hier is wat die skakel lyk soos: As ons kopieer wat verwys en sit dit direk in die url bar van ons leser, kan ons die volle datastel te kry. Dit wil voorkom asof 'n paar kop data gevolg deur 'n lys van pryse te hê. Die datums verskyn bestaan ​​uit 'n periodieke tydwaarde gevolg deur 'n reeks van neutraliseer. So is daar twee dinge om uit te vind. Eerstens moet ons die url string net soos ons gedoen het vir die daaglikse data te ontsyfer, en dan moet ons die tyd stempel data te ontsyfer in die teruggekeer resultate. Kom ons pak die url string eerste. Ons sal dit doen, net soos die ander twee vorige pogings. Ons eindig met: Die basis-URL is Google / finansies / getprices Q is die simbool (AAPL) x is die wisselkoers (NASD) Ek is die interval in sekondes (120 = sekondes = 2 minute) sessies is die sessie versoek (ext_hours) p is die tydperk (5D = 5 dae) f is die versoek velde (d, c, v, o, h, l) DF. (Cpct) motor. (1) ts is potensieel 'n tyd stempel (1324323553 905) Weereens, ek het 'n paar keer rondspeel met die soektog parameters en gevind dat jy wegkom met net Q, ek, p, en f kan kry. 'N Vereenvoudigde URL (tot 10 dae van 5 minute AAPL data te kry) lyk soos volg: Gaan voort en klik op die skakel om dit te probeer. Nou kan ons vir 'n spesifieke tydperk terug in die tyd af te laai intraday data. Daar kan 'n manier om dit tussen enige twee datums te kry, maar ek havent het gedink dat uit nog. As iemand weet, ek sou seker belangstel om uit te vind hoe wees. Die volgende probleem is om uit te vind hoe om te gaan met die vreemde datum formate. In data teruggekeer van die voorbeeld hierbo, ek het 8220; a13231818008221; in die eerste datum veld en af ​​beweeg, die laaste 8220; a8221; voorafgegaan Nommer wat vertoon was 8220; a13240458008221 ;. Diegene kyk verdag soos Unix tyd tempel vir my. Alle groot programmeertale ondersteun hulle en hulle is eenvoudig die aantal sekondes sedert 1970/01/01. Weereens, die gebruik van my vriend Google, het ek 'n aanlyn Unix tyd stempel converter en ingeprop in die bogenoemde getalle (sonder die 8220; a8221;). Ek het: 8220; Tue, 6 Desember 2011 14:30:00 GMT8221; en 8220; Fri, 16 Desember 2011 14:30:00 GMT8221; vir die tweede. Bingo! Hulle is Unix tyd tempel. En die data blyk te wees wat gelys is by die oudste eerste. So, om die datum vir elke tyd stempel te kry, moet ons net om te sit 'n 8220; a8221; voorafgegaan keer om die Unix tyd, dan vir elke daaropvolgende tyd, ons voeg die geneutraliseer vermenigvuldig met die aantal interval sekondes om die laaste aangeteken Unix tyd totdat ons 'n nuwe 8220; a8221; voorafgegaan tyd. Dit klink baie meer ingewikkeld as wat dit werklik is. Sedert ek in die DOHLC waardes slegs geïnteresseerd is, gaan ek die kop velde in ons dataset ignoreer. En aangesien hierdie pos is om mooi lang, sal ek die Python klas wat ek geskryf het om die data ontleed aanbied: Dit moet redelik selfverduidelikend wees. Die belangrikste verskil tussen hierdie klas en die ander is dat dit neem 'n pouse (in sekondes) en 'n Terugblik (in dae) in plaas van 'n begin / einde van die tyd. Ek ignoreer die eerste vyf kop velde, gaan dan vir datum velde voorafgegaan deur 'n 8220; a8221 ;. Ek hou van die verreken en bereken die korrekte datum met die lyn: Daar is een laaste moeilike deel: Let daarop dat die OHLC data in 'n nie-standaard formaat is gelys. Dit is eintlik teruggekeer as CHLO, maak nie saak watter volgorde die f velde gelys. Daar moet kennis geneem word dat dit blyk dat daar net die mees onlangse 10-20 dae van intraday data beskikbaar op enige gegewe tyd. Koop hey, wat wil jy vir niks! Later, sal ons probeer om 'n paar interessante dinge om te doen met hierdie inligting en hierdie beperkings te vind. En ten slotte, 'n volledige voorbeeld: google_intraday. py


No comments:

Post a Comment