{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Stock Price Data" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import concurrent.futures\n", "import os\n", "\n", "def read_file(filename):\n", " with open(filename, 'r') as f:\n", " data = f.read().strip()\n", " key = filename.replace(\".csv\", \"\").replace(\"prices/\", \"\")\n", " data = data.split(\"\\n\")\n", " data = [d.split(\",\") for d in data]\n", " return key, data\n", "\n", "results = []\n", "pool = concurrent.futures.ProcessPoolExecutor(max_workers=2)\n", "filenames = [\"prices/{}\".format(f) for f in os.listdir(\"prices\")]\n", "prices = pool.map(read_file, filenames)\n", "prices = list(prices)\n", "prices = dict(prices)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I chose to use a hash table, then a list, then another list. This is because it closely mirrors the existing structure of the data. It allows stock symbols to be easily looked up, and enables me to index values efficiently." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Computing Aggregates" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from dateutil.parser import parse\n", "\n", "prices_columns = {}\n", "\n", "for k,v in prices.items():\n", " price = v\n", " headers = price[0]\n", " price_columns = {}\n", " for i, header in enumerate(headers):\n", " values = [p[i] for p in price[1:]]\n", " if i > 0:\n", " values = [float(v) for v in values]\n", " else:\n", " values = [parse(v) for v in values]\n", " price_columns[header] = values\n", " prices_columns[k] = price_columns" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from statistics import mean\n", "\n", "average_closing = {}\n", "for k,v in prices_columns.items():\n", " average_closing[k] = mean(v[\"close\"])" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[('blfs', 0.8122763011583011),\n", " ('apdn', 0.8241009938223938),\n", " ('bmra', 0.901011583011583),\n", " ('bcli', 0.9969415324324323),\n", " ('cyrx', 1.1615408884169884),\n", " ('clrb', 1.2045711436293436),\n", " ('cpst', 1.206953667953668),\n", " ('csbr', 1.2282443845854418),\n", " ('egt', 1.3293513513513513),\n", " ('aemd', 1.398042471042471),\n", " ('dfbg', 1.4005010393822395),\n", " ('alqa', 1.405298283011583),\n", " ('cpah', 1.4116189448441248),\n", " ('astc', 1.4152123552123552),\n", " ('chci', 1.4581224154440156),\n", " ('ctic', 1.494366311969112),\n", " ('eltk', 1.5323436293436294),\n", " ('dzsi', 1.5382316602316601),\n", " ('cool', 1.5475988922779924),\n", " ('cgnt', 1.5946138996138997),\n", " ('creg', 1.6028996138996139),\n", " ('casi', 1.617906349034749),\n", " ('admp', 1.7122164397683397),\n", " ('bnso', 1.7172548262548262),\n", " ('aezs', 1.7391445949806952),\n", " ('dynt', 1.822119691119691),\n", " ('apps', 1.8256061776061776),\n", " ('dysl', 1.8631660231660232),\n", " ('apri', 1.8681738996138995),\n", " ('crds', 1.8903166015444017),\n", " ('dlhc', 1.8903745173745172),\n", " ('cur', 1.907691699604743),\n", " ('ardm', 1.928069498069498),\n", " ('cpsh', 1.9615839865149602),\n", " ('cprx', 1.9762007722007722),\n", " ('cidm', 1.9935057915057917),\n", " ('cytr', 1.9986748837837838),\n", " ('atrs', 2.035023166023166),\n", " ('dram', 2.0592628378378377),\n", " ('artx', 2.0992316602316605),\n", " ('aris', 2.1661389961389963),\n", " ('cfbk', 2.174841698841699),\n", " ('crtn', 2.1850579150579152),\n", " ('bosc', 2.188019305019305),\n", " ('ffhl', 2.192687258687259),\n", " ('emms', 2.2464208494208493),\n", " ('abio', 2.2518008),\n", " ('clbs', 2.2820694980694984),\n", " ('bldp', 2.3273861003861005),\n", " ('drrx', 2.3527799227799227),\n", " ('camt', 2.402606177606178),\n", " ('basi', 2.4194633204633202),\n", " ('cbak', 2.4378957528957526),\n", " ('cthr', 2.4644787644787645),\n", " ('cris', 2.4645714285714284),\n", " ('fll', 2.4715752895752896),\n", " ('capr', 2.473247462919594),\n", " ('cemi', 2.4821776061776064),\n", " ('casm', 2.4918),\n", " ('abeo', 2.593220077220077),\n", " ('cdor', 2.6057721938223937),\n", " ('aehr', 2.6085559845559847),\n", " ('clwt', 2.6171322247104247),\n", " ('biol', 2.6383436347490345),\n", " ('cntf', 2.659563711969112),\n", " ('cycc', 2.667563561003861),\n", " ('aey', 2.6871505791505794),\n", " ('atec', 2.702578042857143),\n", " ('cyrn', 2.7131410714285717),\n", " ('dxtr', 2.7493397683397682),\n", " ('aame', 2.7796795366795366),\n", " ('asrv', 2.801169884169884),\n", " ('axas', 2.8366293436293435),\n", " ('dcth', 2.891166023166023),\n", " ('agen', 2.999889955984556),\n", " ('clsn', 3.00828185019305),\n", " ('drad', 3.053988416988417),\n", " ('casc', 3.062540716602317),\n", " ('arci', 3.1327799227799225),\n", " ('adxs', 3.166938612355212),\n", " ('apwc', 3.2336409266409265),\n", " ('edap', 3.2358030888030886),\n", " ('cui', 3.2413753598455597),\n", " ('cort', 3.2995482625482624),\n", " ('cytx', 3.3293219922779924),\n", " ('acls', 3.343806946718147),\n", " ('avir', 3.4036661768339767),\n", " ('ahpi', 3.4043899613899615),\n", " ('byfc', 3.4977644787644784),\n", " ('dswl', 3.529177606177606),\n", " ('extr', 3.5375019305019304),\n", " ('egan', 3.5465791505791504),\n", " ('cnit', 3.604745173745174),\n", " ('falc', 3.6092123552123554),\n", " ('cbli', 3.61026641042471),\n", " ('eng', 3.644196910810811),\n", " ('daio', 3.651555984555985),\n", " ('cmls', 3.678938223938224),\n", " ('dtrm', 3.7235559845559845),\n", " ('cbmx', 3.7302140003861),\n", " ('axgn', 3.82023166023166),\n", " ('axti', 3.8255212355212356),\n", " ('asur', 3.873123663706564),\n", " ('arql', 3.8744247104247105),\n", " ('cpss', 3.9003629343629345),\n", " ('evlv', 3.972590733590734),\n", " ('amrn', 3.992459461003861),\n", " ('cdti', 4.001780249420849),\n", " ('esxb', 4.032393822393822),\n", " ('else', 4.060752895752896),\n", " ('awre', 4.083567567567568),\n", " ('arwr', 4.130016216216216),\n", " ('cyan', 4.164428571428572),\n", " ('cers', 4.2464787644787645),\n", " ('fhco', 4.288459459459459),\n", " ('bsqr', 4.305370656370656),\n", " ('attu', 4.317359073359073),\n", " ('audc', 4.375227799227799),\n", " ('cnty', 4.444320463320464),\n", " ('emkr', 4.458320463320463),\n", " ('ctib', 4.690494208494208),\n", " ('cytk', 4.7425641938223935),\n", " ('bdsi', 4.8207065644787646),\n", " ('cgen', 4.882621621621621),\n", " ('arna', 4.915745173745174),\n", " ('cyccp', 4.965254826254826),\n", " ('ccur', 4.987629343629343),\n", " ('exfo', 4.995563706563707),\n", " ('arry', 5.182899613899614),\n", " ('edgw', 5.274084942084942),\n", " ('bwen', 5.326498072200772),\n", " ('bbgi', 5.338297297297298),\n", " ('eght', 5.531308880694981),\n", " ('eqfn', 5.558436266023166),\n", " ('acfc', 5.596733538610039),\n", " ('crme', 5.622293436293436),\n", " ('crws', 5.629305019305019),\n", " ('evol', 5.701853281853282),\n", " ('arcw', 5.706739867181467),\n", " ('avnw', 5.723947867953668),\n", " ('denn', 5.761945945945946),\n", " ('flws', 5.78195752895753),\n", " ('bios', 5.790710422779923),\n", " ('cwbc', 5.892640926640927),\n", " ('achn', 5.9411776069498075),\n", " ('educ', 5.948108107722008),\n", " ('cown', 5.948822393822394),\n", " ('alsk', 5.9955675694980695),\n", " ('atax', 5.999752895752896),\n", " ('amd', 6.005552123166024),\n", " ('dvax', 6.033752898455599),\n", " ('cspi', 6.0528571428571425),\n", " ('boch', 6.063119691119691),\n", " ('bcrx', 6.095837838223938),\n", " ('dwsn', 6.19491095945946),\n", " ('atlc', 6.211756745173745),\n", " ('abtl', 6.233108108494209),\n", " ('crnt', 6.269598454826254),\n", " ('dxyn', 6.331316601930502),\n", " ('cart', 6.340498070270271),\n", " ('bebe', 6.4181969498069495),\n", " ('exel', 6.616277998455599),\n", " ('bybk', 6.642911204633204),\n", " ('atsg', 6.652401541698842),\n", " ('cwst', 6.658471042471042),\n", " ('clro', 6.852370656370656),\n", " ('carv', 6.87222652972973),\n", " ('bldr', 6.9454671849420855),\n", " ('elon', 6.949154477992279),\n", " ('amkr', 6.955822393436294),\n", " ('cacb', 7.012756795366795),\n", " ('bgcp', 7.162189189189189),\n", " ('bde', 7.226011583011583),\n", " ('club', 7.270509651737451),\n", " ('bkmu', 7.306324324324325),\n", " ('czwi', 7.406482625482626),\n", " ('arlz', 7.441718146718147),\n", " ('artw', 7.46590346911197),\n", " ('caas', 7.633440158301158),\n", " ('cfcb', 7.65700699961375),\n", " ('brcd', 7.668254826254826),\n", " ('dvcr', 7.688459461389961),\n", " ('cuba', 7.751552123552123),\n", " ('aray', 7.887376223391812),\n", " ('dwch', 8.038034755212355),\n", " ('egle', 8.046072912741312),\n", " ('clfd', 8.055154443629345),\n", " ('amswa', 8.076181467181467),\n", " ('brew', 8.094903474517373),\n", " ('chnr', 8.12607720965251),\n", " ('esca', 8.187945943243243),\n", " ('cban', 8.232640922779924),\n", " ('cbio', 8.433602686100386),\n", " ('evbs', 8.45465635868726),\n", " ('cvgi', 8.536474901930502),\n", " ('cald', 8.608965250965252),\n", " ('cvv', 8.624386101930503),\n", " ('axdx', 8.656428568339768),\n", " ('feim', 8.712000000000002),\n", " ('flex', 8.817428571814672),\n", " ('bvsn', 8.850015447876448),\n", " ('asys', 8.914054046332046),\n", " ('bsf', 8.928162200386101),\n", " ('brid', 8.972416988030888),\n", " ('elgx', 8.976440163706563),\n", " ('depo', 8.988274123938224),\n", " ('cldx', 9.006351276061777),\n", " ('cece', 9.062675674517374),\n", " ('allt', 9.180019302702703),\n", " ('dspg', 9.215841698069498),\n", " ('civb', 9.309308876833978),\n", " ('exas', 9.390011581081081),\n", " ('entg', 9.497733591505792),\n", " ('camp', 9.500046333590733),\n", " ('ctg', 9.576830107335908),\n", " ('cvcy', 9.671478766409265),\n", " ('dsgx', 9.768467180694982),\n", " ('czfc', 9.846169883783784),\n", " ('botj', 9.858123591891891),\n", " ('cplp', 9.927482215019763),\n", " ('ainv', 9.949749044015444),\n", " ('cybe', 9.964861003861005),\n", " ('amot', 9.96724324015444),\n", " ('ccrn', 10.054741314671816),\n", " ('cobz', 10.071579151737453),\n", " ('bont', 10.085776056370657),\n", " ('call', 10.101200768339769),\n", " ('avdl', 10.10303474015444),\n", " ('aiq', 10.171544398841698),\n", " ('brkl', 10.241702702702701),\n", " ('csq', 10.269231660231661),\n", " ('alot', 10.286698842084942),\n", " ('agys', 10.3036139015444),\n", " ('amrb', 10.411073202702703),\n", " ('cvti', 10.437138995752894),\n", " ('dgii', 10.495293435521235),\n", " ('brks', 10.524733592277991),\n", " ('fcco', 10.537714290347491),\n", " ('aobc', 10.59406178030888),\n", " ('fccy', 10.679512464864866),\n", " ('cdzi', 10.901432437837839),\n", " ('bfin', 10.907671818146717),\n", " ('buse', 10.920324543629343),\n", " ('centa', 10.959813017140632),\n", " ('asfi', 11.159220083783783),\n", " ('cmct', 11.270061818532819),\n", " ('acta', 11.320559837065638),\n", " ('amri', 11.358054055598455),\n", " ('elos', 11.39328957027027),\n", " ('cent', 11.431996134749035),\n", " ('esio', 11.514586870656371),\n", " ('bcbp', 11.546521235135137),\n", " ('csbk', 11.708667741312741),\n", " ('cutr', 11.777822398841698),\n", " ('atrc', 11.84171041969112),\n", " ('aaxn', 11.863907341698841),\n", " ('csfl', 11.947644780694981),\n", " ('essa', 12.126070440047487),\n", " ('dakt', 12.215868713513514),\n", " ('ancx', 12.260374515444015),\n", " ('eei', 12.263416957915057),\n", " ('dave', 12.284664105405405),\n", " ('cvbf', 12.391718153667954),\n", " ('airt', 12.430108102316604),\n", " ('chy', 12.456038608880307),\n", " ('chi', 12.602803088416989),\n", " ('acet', 12.655212363320464),\n", " ('cohu', 12.740305017374517),\n", " ('emitf', 12.964027813127412),\n", " ('amsc', 13.049243415057914),\n", " ('cresy', 13.09593044787645),\n", " ('bgfv', 13.156471046718146),\n", " ('bcor', 13.260498064864864),\n", " ('cnob', 13.295115791505792),\n", " ('eric', 13.297131263706563),\n", " ('drys', 13.49853955019305),\n", " ('cwco', 13.618177600000001),\n", " ('ceco', 13.657787633204634),\n", " ('bksc', 13.711621528571428),\n", " ('cgo', 13.7736332),\n", " ('acad', 13.823586874903475),\n", " ('cfnb', 13.825111963706565),\n", " ('bset', 13.877702711583012),\n", " ('csii', 13.978281854440155),\n", " ('bncn', 13.986131252895753),\n", " ('cy', 14.158153035907336),\n", " ('fbms', 14.224830092664092),\n", " ('cdns', 14.24691891119691),\n", " ('cfnl', 14.268891889189188),\n", " ('cnxn', 14.347270266795366),\n", " ('clct', 14.4366796011583),\n", " ('dcom', 14.727355209652512),\n", " ('ango', 14.802289587258688),\n", " ('arcc', 14.933262535135134),\n", " ('etfc', 14.956660266795367),\n", " ('dgica', 14.986583006177607),\n", " ('fbss', 15.228308892277994),\n", " ('akrx', 15.387104233590733),\n", " ('cvly', 15.412107433976834),\n", " ('cray', 15.423347486486486),\n", " ('chfn', 15.70860224015444),\n", " ('ezpw', 15.789984552895755),\n", " ('brkr', 15.86540154247104),\n", " ('ccne', 15.950173729729729),\n", " ('actg', 15.997490346718147),\n", " ('cunb', 15.998223935135135),\n", " ('ffbc', 16.002316604633204),\n", " ('csiq', 16.0704556007722),\n", " ('fbnc', 16.11827027027027),\n", " ('bsrr', 16.140177604633205),\n", " ('ccbg', 16.26640926872587),\n", " ('ffic', 16.59364864787645),\n", " ('crox', 16.676393825482627),\n", " ('dnbf', 16.71552883088803),\n", " ('arrs', 17.104613885328185),\n", " ('amat', 17.116648652509653),\n", " ('ceva', 17.12422007104247),\n", " ('ebtc', 17.201536692277994),\n", " ('anip', 17.234360110038608),\n", " ('finl', 17.241752891505794),\n", " ('bpop', 17.295227834362933),\n", " ('eml', 17.330768325482623),\n", " ('acnb', 17.3435289003861),\n", " ('fmbi', 17.350911196138995),\n", " ('asna', 17.81176063204633),\n", " ('abcb', 17.990475994208495),\n", " ('acxm', 18.263061783783783),\n", " ('dgicb', 18.359567528185327),\n", " ('cenx', 18.39556755173745),\n", " ('efsc', 18.541934354826257),\n", " ('cznc', 18.655586874131274),\n", " ('cbfv', 18.728787650193052),\n", " ('cnsl', 18.772135127027028),\n", " ('dest', 18.788065616216215),\n", " ('ehth', 18.973142869111967),\n", " ('esbk', 19.142613947490347),\n", " ('chke', 19.15281466100386),\n", " ('ffkt', 19.47292279305019),\n", " ('exac', 19.531007741698843),\n", " ('fizz', 19.844949835907336),\n", " ('aegn', 19.89972970926641),\n", " ('atvi', 19.92204634131274),\n", " ('fisi', 19.93808495096525),\n", " ('aeis', 20.00321233899614),\n", " ('cmco', 20.1090116),\n", " ('fcap', 20.15421233976834),\n", " ('farm', 20.193166013513515),\n", " ('cizn', 20.43169879150579),\n", " ('arkr', 20.460409264092664),\n", " ('crus', 20.50549421969112),\n", " ('ctrn', 20.54685713976834),\n", " ('boom', 20.59703861119691),\n", " ('anik', 20.77447492046332),\n", " ('epay', 20.79650191235521),\n", " ('artna', 20.97944401119691),\n", " ('aimc', 20.999660249420852),\n", " ('belfa', 21.040139010810808),\n", " ('conn', 21.148482605791504),\n", " ('baby', 21.253150588803088),\n", " ('bpopn', 21.34707336023166),\n", " ('cffn', 21.4160772),\n", " ('belfb', 21.680702705791507),\n", " ('caty', 21.829671827027028),\n", " ('aal', 22.07495366679537),\n", " ('atlo', 22.101030884555986),\n", " ('amnb', 22.113752890347488),\n", " ('emcf', 22.219915054826256),\n", " ('dmrc', 22.26364027351097),\n", " ('dmlp', 22.28328186100386),\n", " ('adru', 22.371667961776062),\n", " ('avhi', 22.40623167915058),\n", " ('adrd', 22.517482620463323),\n", " ('flxs', 22.836366786486487),\n", " ('diod', 22.849976832046334),\n", " ('fbiz', 22.958876448262547),\n", " ('aplp', 23.031826284169885),\n", " ('bwina', 23.124262511969114),\n", " ('fdef', 23.23314284092664),\n", " ('ccoi', 23.236517377606177),\n", " ('clmt', 23.327073368339768),\n", " ('amtd', 23.490517397683398),\n", " ('csgs', 23.515061787258688),\n", " ('aubn', 23.598679533976835),\n", " ('colb', 23.599138993050193),\n", " ('aaon', 23.617386061776063),\n", " ('csco', 23.628822402702703),\n", " ('bwinb', 23.673023192664093),\n", " ('bmtc', 23.783575303088803),\n", " ('egbn', 23.78503891003861),\n", " ('adtn', 23.847494206177608),\n", " ('achc', 24.04779533822394),\n", " ('cetv', 24.057965252509653),\n", " ('bdge', 24.12035132432432),\n", " ('car', 24.829617774131272),\n", " ('azpn', 24.926833974517375),\n", " ('dgas', 24.959196903088802),\n", " ('ecpg', 24.97440927104247),\n", " ('asrvp', 25.09542473243243),\n", " ('bstc', 25.102737436293435),\n", " ('emci', 25.21568724942085),\n", " ('becn', 25.59151352046332),\n", " ('arow', 25.715315076833978),\n", " ('ca', 25.74628186023166),\n", " ('efii', 25.840223945945947),\n", " ('bbox', 25.997579137451737),\n", " ('apog', 26.00773359150579),\n", " ('banfp', 26.415837825482622),\n", " ('chmg', 26.421312745173747),\n", " ('exls', 26.46239382084942),\n", " ('avav', 26.558296459060923),\n", " ('arcb', 26.582247134362934),\n", " ('banr', 26.604234801930502),\n", " ('afsi', 26.69982658918919),\n", " ('ewbc', 26.819362960231658),\n", " ('crai', 27.154254832432432),\n", " ('chfc', 27.265100385714284),\n", " ('adra', 27.35145173976834),\n", " ('acor', 27.47286873938224),\n", " ('flic', 27.732250961776064),\n", " ('alks', 28.143567575675675),\n", " ('ecol', 28.210664105405407),\n", " ('aciw', 28.27269496023166),\n", " ('dxcm', 28.520806964092667),\n", " ('chscp', 29.073046355984555),\n", " ('afam', 29.434312770656373),\n", " ('cvgw', 29.56466022934363),\n", " ('cnbka', 30.143177581081083),\n", " ('amsf', 30.34488032162162),\n", " ('bbsi', 30.425525077220076),\n", " ('ctws', 30.461830105405404),\n", " ('crmt', 30.543277994594593),\n", " ('flir', 30.795725856370655),\n", " ('cmtl', 30.963007716216218),\n", " ('bofi', 31.210980661776063),\n", " ('evep', 31.358648642471042),\n", " ('arii', 31.491413133590733),\n", " ('amed', 31.845227816216216),\n", " ('bjri', 31.854320508108106),\n", " ('atro', 31.862567476833977),\n", " ('cnmd', 31.917447902316603),\n", " ('cigi', 32.206258406177604),\n", " ('cash', 32.26195366332046),\n", " ('cffi', 32.433154460617764),\n", " ('amag', 32.49387646872587),\n", " ('ebix', 32.532169762934366),\n", " ('cgnx', 32.55762165714285),\n", " ('ctbi', 32.61787694054054),\n", " ('abmd', 33.22242086100386),\n", " ('blkb', 33.75537838185328),\n", " ('cake', 34.3126757027027),\n", " ('amwd', 34.320258717374514),\n", " ('abax', 34.57868337992278),\n", " ('crzo', 34.66379924324325),\n", " ('alco', 34.68778766100386),\n", " ('dorm', 34.767818543243244),\n", " ('faro', 34.87222776949807),\n", " ('eeft', 35.11525484749035),\n", " ('ebay', 35.18885618648648),\n", " ('cac', 35.50384555559845),\n", " ('cmcsa', 35.904505792277995),\n", " ('cree', 36.52946716216216),\n", " ('algn', 36.75162934864865),\n", " ('cprt', 37.017694950579155),\n", " ('csx', 37.15074516833977),\n", " ('aste', 37.29283010849421),\n", " ('ea', 37.33655212046332),\n", " ('endp', 37.34726641737452),\n", " ('crvl', 37.4438649034749),\n", " ('bobe', 37.68301545907336),\n", " ('dox', 37.75929727606178),\n", " ('ahgp', 38.20530885868726),\n", " ('calm', 38.32738610810811),\n", " ('dxpe', 38.61513902084942),\n", " ('fele', 38.77260231583011),\n", " ('cvlt', 39.00099612741313),\n", " ('adre', 39.14505407104247),\n", " ('alny', 39.17148648803089),\n", " ('disca', 39.234679803474904),\n", " ('dish', 39.2437143050193),\n", " ('bmrc', 39.3548107945946),\n", " ('chco', 39.56640153011583),\n", " ('discb', 39.65275737837838),\n", " ('ccmp', 39.67996139150579),\n", " ('esnd', 40.798293426640925),\n", " ('agii', 40.817575337065634),\n", " ('bcpc', 41.03619678301158),\n", " ('ande', 41.82902698030888),\n", " ('cass', 42.141633734749036),\n", " ('ffin', 42.178899534749036),\n", " ('adi', 42.24018144826255),\n", " ('adsk', 42.24759463281853),\n", " ('cinf', 42.25041697451738),\n", " ('cbsh', 42.690903429343635),\n", " ('akam', 42.81851348687258),\n", " ('expd', 42.86821235366795),\n", " ('bbry', 43.67659082355212),\n", " ('core', 44.28576448223938),\n", " ('aaww', 44.33160229034749),\n", " ('fast', 44.40756368957529),\n", " ('cpsi', 44.44345173899614),\n", " ('ctrp', 45.163220061389964),\n", " ('expo', 46.09936678262548),\n", " ('airm', 46.918258888030884),\n", " ('arlp', 46.942791493436296),\n", " ('abco', 47.64705796756757),\n", " ('atni', 47.67885716216216),\n", " ('banf', 49.64349804169884),\n", " ('bbby', 50.183324364864866),\n", " ('ctas', 50.47888414247104),\n", " ('bmrn', 50.52171040733591),\n", " ('cmpr', 51.058057920077225),\n", " ('chkp', 51.12600387451738),\n", " ('adbe', 51.199436284169884),\n", " ('cvco', 53.36543631042471),\n", " ('cohr', 53.71215058262549),\n", " ('colm', 53.72719691235521),\n", " ('expe', 53.78315830308881),\n", " ('cpla', 54.80040545714285),\n", " ('dwaq', 55.77838609343629),\n", " ('bokf', 56.16893048532818),\n", " ('dltr', 57.418077247490345),\n", " ('ctsh', 57.91491119652509),\n", " ('ctxs', 58.02012394942085),\n", " ('casy', 58.495737440926646),\n", " ('eslt', 58.57627412471042),\n", " ('asml', 59.040315206563704),\n", " ('adp', 61.03234735559845),\n", " ('chrw', 61.98583785675676),\n", " ('anss', 62.32520078146718),\n", " ('acgl', 63.325907376833975),\n", " ('alog', 64.74335521467181),\n", " ('cern', 65.04237453166023),\n", " ('esrx', 67.4280848891892),\n", " ('fisv', 67.52742853513513),\n", " ('chdn', 72.21778764864865),\n", " ('cbrl', 76.63736287992278),\n", " ('cswc', 77.7559074069498),\n", " ('coke', 80.56527417181468),\n", " ('algt', 83.70168345444016),\n", " ('celg', 85.09483015984556),\n", " ('ffiv', 86.29457917374518),\n", " ('bwld', 89.39383399150579),\n", " ('amgn', 92.2331003965251),\n", " ('cacc', 95.49895756602317),\n", " ('cost', 96.17006946409266),\n", " ('alxn', 97.1099267011583),\n", " ('anat', 97.93825093397683),\n", " ('csgp', 103.10355984362934),\n", " ('dhil', 104.54806553783784),\n", " ('djco', 110.25166789845561),\n", " ('bbh', 113.28309655096525),\n", " ('esgr', 114.26885330617759),\n", " ('biib', 164.53822006138998),\n", " ('eqix', 165.3847721150579),\n", " ('bidu', 193.53191124478764),\n", " ('fcnca', 200.25248278146717),\n", " ('atri', 228.38977615984555),\n", " ('cme', 230.2946601100386),\n", " ('aapl', 257.17654040231656),\n", " ('amzn', 275.13407757104244)]" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "closing_tuples = [(k,v) for k,v in average_closing.items()]\n", "sorted(closing_tuples, key=lambda x:x[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It appears the `AMZN` and `AAPL` have the highest average closing prices, while `BLFS`, and `APDN` have the lowest average closing prices." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Finding The Most Traded Stock Each Day" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [], "source": [ "trades = {}\n", "for k, v in prices_columns.items():\n", " for i,date in enumerate(v[\"date\"]):\n", " if date not in trades:\n", " trades[date] = []\n", " trades[date].append([k,v[\"volume\"][i]])" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[[datetime.datetime(2007, 1, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 1, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 15, 0, 0), 'bidu'],\n", " [datetime.datetime(2007, 2, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 2, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 8, 0, 0), 'cy'],\n", " [datetime.datetime(2007, 3, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 3, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 19, 0, 0), 'ebay'],\n", " [datetime.datetime(2007, 4, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 4, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 5, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 6, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 7, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 8, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 9, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 25, 0, 0), 'cmcsa'],\n", " [datetime.datetime(2007, 10, 26, 0, 0), 'cmcsa'],\n", " [datetime.datetime(2007, 10, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 10, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 11, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 5, 0, 0), 'cmcsa'],\n", " [datetime.datetime(2007, 12, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2007, 12, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 1, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 2, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 3, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 4, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 5, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 6, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 17, 0, 0), 'ebay'],\n", " [datetime.datetime(2008, 7, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 7, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 8, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 9, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 10, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 11, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2008, 12, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 1, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 2, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 3, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 4, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 5, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 6, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 23, 0, 0), 'ebay'],\n", " [datetime.datetime(2009, 7, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 7, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 8, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 9, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 1, 0, 0), 'cmcsa'],\n", " [datetime.datetime(2009, 10, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 5, 0, 0), 'brcd'],\n", " [datetime.datetime(2009, 10, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 10, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 12, 0, 0), 'amd'],\n", " [datetime.datetime(2009, 11, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 24, 0, 0), 'brcd'],\n", " [datetime.datetime(2009, 11, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 11, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 3, 0, 0), 'cmcsa'],\n", " [datetime.datetime(2009, 12, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2009, 12, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 21, 0, 0), 'ebay'],\n", " [datetime.datetime(2010, 1, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 1, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 23, 0, 0), 'brcd'],\n", " [datetime.datetime(2010, 2, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 2, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 8, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 3, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 3, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 4, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 5, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 6, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 7, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 12, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 8, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 16, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 8, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 8, 31, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 14, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 9, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 9, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 11, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 12, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 19, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 20, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 21, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 25, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 27, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 28, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 10, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 3, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 4, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 5, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 9, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 10, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 11, 11, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 11, 12, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 11, 15, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 11, 16, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 11, 17, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 18, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 19, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 11, 22, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 23, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 24, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 26, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 29, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 11, 30, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 1, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 2, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 3, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 12, 6, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 7, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 8, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 9, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 12, 10, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 13, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 14, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 15, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 16, 0, 0), 'aapl'],\n", " [datetime.datetime(2010, 12, 17, 0, 0), 'csco'],\n", " [datetime.datetime(2010, 12, 20, 0, 0), 'aapl'],\n", " ...]" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "most_traded = []\n", "for k, v in trades.items():\n", " ordered = sorted(v, key=lambda x: x[1])\n", " symbol = ordered[-1][0]\n", " most_traded.append([k, symbol])\n", "most_traded = sorted(most_traded, key=lambda x: x[0])\n", "\n", "most_traded" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Searching For High Volume Days" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [], "source": [ "daily_volumes = {}\n", "\n", "most_traded = []\n", "for k, v in trades.items():\n", " volume = sum([item[1] for item in v])\n", " daily_volumes[k] = volume" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[[datetime.datetime(2008, 1, 24, 0, 0), 1533363200.0],\n", " [datetime.datetime(2008, 1, 16, 0, 0), 1536176400.0],\n", " [datetime.datetime(2007, 11, 8, 0, 0), 1553880500.0],\n", " [datetime.datetime(2008, 9, 29, 0, 0), 1555072400.0],\n", " [datetime.datetime(2008, 2, 7, 0, 0), 1559032100.0],\n", " [datetime.datetime(2008, 1, 22, 0, 0), 1578877700.0],\n", " [datetime.datetime(2008, 10, 8, 0, 0), 1599183500.0],\n", " [datetime.datetime(2007, 7, 26, 0, 0), 1611272800.0],\n", " [datetime.datetime(2008, 10, 10, 0, 0), 1770266900.0],\n", " [datetime.datetime(2008, 1, 23, 0, 0), 1964583900.0]]" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "volume_tuples = [[k,v] for k,v in daily_volumes.items()]\n", "volume_tuples = sorted(volume_tuples, key=lambda x: x[1])\n", "\n", "volume_tuples[-10:]" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import math\n", "\n", "high_volume_days = [v[0] for v in volume_tuples[-10:]]\n", "\n", "def binary_search(array, search):\n", " m = 0\n", " i = 0\n", " z = len(array) - 1\n", " while i<= z:\n", " m = math.floor(i + ((z - i) / 2))\n", " if array[m] == search:\n", " return m\n", " elif array[m] < search:\n", " i = m + 1\n", " elif array[m] > search:\n", " z = m - 1\n", "\n", "high_volume_transactions = {}\n", "for k,v in prices_columns.items():\n", " for day in high_volume_days:\n", " ind = binary_search(v[\"date\"], day)\n", " if ind is None:\n", " continue\n", " if k not in high_volume_transactions:\n", " high_volume_transactions[k] = []\n", " high_volume_transactions[k].append(prices[k][ind])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Finding Profitable Stocks" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[['achc', 1330.0000666666667],\n", " ['bcli', 1339.2137535980346],\n", " ['cui', 1525.1625162516252],\n", " ['apdn', 1549.6700659868025],\n", " ['anip', 1707.3554472785033],\n", " ['amzn', 2230.7234281466817],\n", " ['blfs', 2437.4365640858978],\n", " ['arcw', 3898.60048982856],\n", " ['adxs', 4005.0000000000005],\n", " ['admp', 7483.8389225948395]]" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "profits = []\n", "for k,v in prices_columns.items():\n", " percentage = (v[\"close\"][-1] - v[\"close\"][0]) / v[\"close\"][0]\n", " profits.append([k,percentage * 100])\n", "\n", "profits = sorted(profits, key=lambda x: x[1])\n", "\n", "profits[-10:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The most profitable stock to buy in `2007` would have been `ADMP`, which appreciated from around `7` cents to its current price of `4.43`." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.2" } }, "nbformat": 4, "nbformat_minor": 2 }