Queer European MD passionate about IT
Răsfoiți Sursa

Add mission 177

Vik Paruchuri 8 ani în urmă
părinte
comite
ae037a7011
2 a modificat fișierele cu 1901 adăugiri și 1 ștergeri
  1. 1900 0
      Mission177Solutions.ipynb
  2. 1 1
      README.md

+ 1900 - 0
Mission177Solutions.ipynb

@@ -0,0 +1,1900 @@
+{
+ "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
+}

+ 1 - 1
README.md

@@ -21,4 +21,4 @@ Of course, there are always going to be multiple ways to solve any one problem,
 - [Guided Project: Exploring Gun Deaths in the US](https://github.com/dataquestio/solutions/blob/master/Mission218Solution.ipynb)
 - [Guided Project: Analyzing Thanksgiving Dinner](https://github.com/dataquestio/solutions/blob/master/Mission219Solution.ipynb)
 - [Guided Project: Analyzing Wikipedia Pages](https://github.com/dataquestio/solutions/blob/master/Mission227Solutions.ipynb)
-
+- [Guided Project: Analyzing Stock Prices](https://github.com/dataquestio/solutions/blob/master/Mission177Solutions.ipynb)