Skip to content

Instantly share code, notes, and snippets.

@EmbraceLife
Last active August 12, 2016 12:24
Show Gist options
  • Save EmbraceLife/14ba2eadaeba1767591e96102a7471a2 to your computer and use it in GitHub Desktop.
Save EmbraceLife/14ba2eadaeba1767591e96102a7471a2 to your computer and use it in GitHub Desktop.
license: gpl-3.0
Date Volume Close Average
14/01/2010 108223500 28.33 27.88904762
15/01/2010 148516900 27.86 27.9647619
19/01/2010 182501900 29.09 28.09380952
20/01/2010 153038200 28.64 28.22142857
21/01/2010 152038600 28.15 28.30285714
22/01/2010 220441900 26.75 28.29952381
25/01/2010 266424900 27.47 28.31666667
26/01/2010 466777500 27.86 28.34142857
27/01/2010 430642100 28.12 28.33380952
28/01/2010 293375600 26.96 28.25428571
29/01/2010 311488100 25.98 28.14428571
01/02/2010 187469100 26.34 28.0352381
02/02/2010 174585600 26.5 27.93952381
03/02/2010 153832000 26.95 27.84428571
04/02/2010 189413000 25.98 27.70047619
05/02/2010 212576700 26.44 27.60047619
08/02/2010 119567700 26.26 27.49428571
09/02/2010 158221700 26.54 27.39238095
10/02/2010 92590400 26.4 27.29619048
11/02/2010 137586400 26.88 27.23809524
12/02/2010 163867200 27.11 27.17190476
16/02/2010 135934400 27.52 27.13333333
17/02/2010 109099200 27.4 27.11142857
18/02/2010 105706300 27.45 27.03333333
19/02/2010 103867400 27.28 26.96857143
22/02/2010 97640900 27.11 26.91904762
23/02/2010 143773700 26.66 26.9147619
24/02/2010 115141600 27.15 26.89952381
25/02/2010 166281500 27.33 26.87428571
26/02/2010 126865200 27.68 26.85333333
01/03/2010 137523400 28.27 26.91571429
02/03/2010 141636600 28.25 27.02380952
03/03/2010 93013200 28.32 27.11809524
04/03/2010 91510300 28.51 27.21380952
05/03/2010 224905100 29.62 27.34095238
08/03/2010 107472400 29.64 27.5152381
09/03/2010 230064800 30.17 27.69285714
10/03/2010 149054500 30.42 27.89095238
11/03/2010 101425100 30.51 28.08
12/03/2010 104080900 30.66 28.28285714
15/03/2010 123375700 30.28 28.4447619
16/03/2010 111727000 30.36 28.59952381
17/03/2010 112739200 30.32 28.73285714
18/03/2010 85527400 30.39 28.8752381
19/03/2010 139861400 30.07 29
22/03/2010 114104900 30.4 29.14857143
23/03/2010 150607800 30.89 29.32857143
24/03/2010 149445100 31.03 29.53666667
25/03/2010 135571100 30.66 29.70380952
26/03/2010 160218800 31.24 29.89
29/03/2010 135186100 31.44 30.06904762
30/03/2010 131827500 31.91 30.24238095
31/03/2010 107664900 31.79 30.41095238
01/04/2010 150786300 31.92 30.58238095
05/04/2010 171126900 32.26 30.76095238
06/04/2010 111754300 32.41 30.89380952
07/04/2010 157125500 32.55 31.03238095
08/04/2010 143247300 32.46 31.14142857
09/04/2010 83545700 32.71 31.25047619
12/04/2010 83256600 32.78 31.35857143
13/04/2010 76552700 32.8 31.46047619
14/04/2010 101019100 33.24 31.60142857
15/04/2010 94196200 33.67 31.75904762
16/04/2010 187636400 33.47 31.90904762
19/04/2010 141731100 33.42 32.05333333
20/04/2010 184581600 33.09 32.19714286
21/04/2010 245597800 35.07 32.41952381
22/04/2010 198356200 36.05 32.6652381
23/04/2010 199238900 36.64 32.93238095
26/04/2010 119767200 36.46 33.20857143
27/04/2010 177335900 35.45 33.40904762
28/04/2010 189600600 35.39 33.59714286
29/04/2010 139710200 36.34 33.80809524
30/04/2010 135615900 35.32 33.97619048
03/05/2010 113585500 36.03 34.17190476
04/05/2010 180954900 34.99 34.30190476
05/05/2010 220775800 34.63 34.40761905
06/05/2010 321465200 33.31 34.44380952
07/05/2010 419004600 31.91 34.41761905
10/05/2010 246076600 34.36 34.49619048
11/05/2010 212226700 34.7 34.58761905
12/05/2010 163594900 35.46 34.71428571
13/05/2010 149928100 34.95 34.79571429
14/05/2010 189840700 34.34 34.82761905
17/05/2010 190708700 34.39 34.87142857
18/05/2010 195669600 34.14 34.90571429
19/05/2010 256431700 33.6 34.93
20/05/2010 320728800 32.16 34.79142857
21/05/2010 305972800 32.78 34.63571429
24/05/2010 188559700 33.38 34.48047619
25/05/2010 262001600 33.17 34.32380952
26/05/2010 212663500 33.02 34.20809524
27/05/2010 166570600 34.27 34.1547619
28/05/2010 203903700 34.75 34.07904762
01/06/2010 219118200 35.29 34.07761905
02/06/2010 172137000 35.71 34.06238095
03/06/2010 162526700 35.6 34.09142857
04/06/2010 189576100 34.63 34.09142857
07/06/2010 221735500 33.95 34.12190476
08/06/2010 250192600 33.73 34.20857143
09/06/2010 213657500 32.9 34.13904762
10/06/2010 194089000 33.89 34.10047619
11/06/2010 136439800 34.3 34.0452381
14/06/2010 150740100 34.4 34.01904762
15/06/2010 146268500 35.13 34.05666667
16/06/2010 195919500 36.15 34.14047619
17/06/2010 218213800 36.78 34.26619048
18/06/2010 196155400 37.08 34.43190476
21/06/2010 194122600 36.55 34.64095238
22/06/2010 179315500 37.05 34.84428571
23/06/2010 192114300 36.66 35.00047619
24/06/2010 178569300 36.39 35.15380952
25/06/2010 137485600 36.08 35.29952381
28/06/2010 146237000 36.3 35.39619048
29/06/2010 283336200 34.66 35.39190476
30/06/2010 184863000 34.03 35.33190476
01/07/2010 255724000 33.62 35.23238095
02/07/2010 173460700 33.41 35.12809524
06/07/2010 153808900 33.64 35.08095238
07/07/2010 163639000 34.99 35.13047619
08/07/2010 184536100 34.92 35.18714286
09/07/2010 108330600 35.12 35.29285714
12/07/2010 140719600 34.81 35.33666667
13/07/2010 297731000 34.06 35.3252381
14/07/2010 203011900 34.19 35.3152381
15/07/2010 206216500 34.02 35.26238095
16/07/2010 259964600 33.81 35.15095238
19/07/2010 256119500 33.22 34.98142857
20/07/2010 268737700 34.08 34.83857143
21/07/2010 296417800 34.39 34.73571429
22/07/2010 161329700 35.04 34.64
23/07/2010 133347200 35.17 34.56904762
26/07/2010 105137900 35.08 34.50666667
27/07/2010 146192900 35.73 34.49
28/07/2010 129996300 35.3 34.44238095
29/07/2010 160951700 34.92 34.4547619
30/07/2010 112052500 34.8 34.49142857
02/08/2010 107013900 35.42 34.57714286
03/08/2010 104413400 35.43 34.67333333
04/08/2010 105093800 35.58 34.76571429
05/08/2010 72274300 35.4 34.7852381
06/08/2010 111224400 35.19 34.79809524
09/08/2010 75782000 35.41 34.81190476
10/08/2010 112980000 35.09 34.8252381
11/08/2010 155013600 33.85 34.8152381
12/08/2010 133730100 34.06 34.80904762
13/08/2010 88717300 33.7 34.79380952
16/08/2010 79607500 33.5 34.77904762
17/08/2010 105660100 34.09 34.82047619
18/08/2010 84924000 34.24 34.82809524
19/08/2010 106676500 33.8 34.8
20/08/2010 96057500 33.77 34.73952381
23/08/2010 103510400 33.25 34.64809524
24/08/2010 150641400 32.46 34.52333333
25/08/2010 149216900 32.86 34.38666667
26/08/2010 116626300 32.51 34.25380952
27/08/2010 137097800 32.69 34.14761905
30/08/2010 95822300 32.81 34.05285714
31/08/2010 105196700 32.89 33.93238095
01/09/2010 174259400 33.87 33.85809524
02/09/2010 103856900 34.11 33.78809524
03/09/2010 130197200 35.01 33.76952381
07/09/2010 85639400 34.88 33.7547619
08/09/2010 131637800 35.57 33.76238095
09/09/2010 109643800 35.59 33.78619048
10/09/2010 96885600 35.63 33.87095238
13/09/2010 97195000 36.13 33.96952381
14/09/2010 102037600 36.26 34.09142857
15/09/2010 107342200 36.56 34.23714286
16/09/2010 163025800 37.42 34.39571429
17/09/2010 158619300 37.25 34.53904762
20/09/2010 164669400 38.32 34.75428571
21/09/2010 167018600 38.39 34.97428571
22/09/2010 146322400 38.93 35.2447619
23/09/2010 196529200 39.09 35.56047619
24/09/2010 162372000 39.55 35.87904762
27/09/2010 120708700 39.39 36.20666667
28/09/2010 258760600 38.81 36.49809524
29/09/2010 117411000 38.88 36.78714286
30/09/2010 168347900 38.39 37.04904762
01/10/2010 112035700 38.22 37.25619048
04/10/2010 108825500 37.7 37.42714286
05/10/2010 125491800 39.09 37.62142857
06/10/2010 167717200 39.12 37.82333333
07/10/2010 102099900 39.13 37.99285714
08/10/2010 164600800 39.78 38.19238095
11/10/2010 106938300 39.96 38.39857143
12/10/2010 139636000 40.39 38.60142857
13/10/2010 157523100 40.6 38.80809524
14/10/2010 108824100 40.9 39.0147619
15/10/2010 230548500 42.58 39.26047619
18/10/2010 273252700 43.02 39.5352381
19/10/2010 308196000 41.87 39.70428571
20/10/2010 180406100 42.01 39.87666667
21/10/2010 137865000 41.87 40.01666667
22/10/2010 93194500 41.6 40.13619048
25/10/2010 98115500 41.78 40.24238095
26/10/2010 98232400 41.67 40.35095238
27/10/2010 99750700 41.64 40.48571429
28/10/2010 137762800 41.29 40.60047619
29/10/2010 107627800 40.72 40.71142857
01/11/2010 105972300 41.15 40.85095238
02/11/2010 108482500 41.85 41.04857143
03/11/2010 127087100 42.32 41.20238095
04/11/2010 160622000 43.06 41.39
05/11/2010 90313300 42.9 41.56952381
08/11/2010 70439600 43.1 41.72761905
09/11/2010 95886000 42.76 41.86095238
10/11/2010 96056800 43.02 41.98619048
11/11/2010 90321000 42.84 42.09285714
12/11/2010 198961700 41.67 42.12952381
15/11/2010 100901500 41.54 42.08
16/11/2010 164412500 40.8 41.97428571
17/11/2010 119862400 40.65 41.91619048
18/11/2010 123622800 41.73 41.90285714
19/11/2010 96210800 41.5 41.8852381
22/11/2010 98268800 42.39 41.92285714
23/11/2010 129861900 41.77 41.92238095
24/11/2010 103431300 42.59 41.96619048
26/11/2010 59396400 42.61 42.01238095
29/11/2010 111446300 42.87 42.08761905
30/11/2010 125464500 42.09 42.15285714
01/12/2010 115437700 42.8 42.23142857
02/12/2010 115709300 43.04 42.28809524
03/12/2010 85523200 42.94 42.31761905
06/12/2010 112120400 43.31 42.32952381
07/12/2010 97863500 43.05 42.33666667
08/12/2010 80483900 43.43 42.35238095
09/12/2010 73537800 43.26 42.37619048
10/12/2010 65627800 43.37 42.39285714
13/12/2010 109953900 43.52 42.4252381
14/12/2010 87752000 43.33 42.50428571
15/12/2010 104328000 43.34 42.59
16/12/2010 80507700 43.46 42.71666667
17/12/2010 96732300 43.37 42.84619048
20/12/2010 96402600 43.59 42.9347619
21/12/2010 64088500 43.86 43.04714286
22/12/2010 66480400 43.99 43.12333333
23/12/2010 55789300 43.78 43.21904762
27/12/2010 62454000 43.92 43.28238095
28/12/2010 43981000 44.03 43.35
29/12/2010 40784800 44.01 43.40428571
30/12/2010 39373600 43.79 43.4852381
31/12/2010 48377000 43.64 43.5252381
03/01/2011 111284600 44.59 43.59904762
04/01/2011 77270200 44.82 43.68857143
05/01/2011 63879900 45.18 43.77761905
06/01/2011 75107200 45.15 43.87761905
07/01/2011 77982800 45.47 43.9747619
10/01/2011 112140000 46.33 44.12095238
11/01/2011 111027000 46.22 44.25666667
12/01/2011 75647600 46.59 44.40285714
13/01/2011 74195100 46.76 44.56619048
14/01/2011 77210000 47.14 44.74714286
18/01/2011 470249500 46.08 44.87190476
19/01/2011 283903200 45.84 44.98952381
20/01/2011 191197300 45.01 45.05714286
21/01/2011 188600300 44.2 45.07333333
24/01/2011 143670800 45.65 45.15238095
25/01/2011 136717000 46.19 45.26714286
26/01/2011 126718900 46.52 45.39095238
27/01/2011 71256500 46.43 45.5052381
28/01/2011 148014300 45.47 45.5747619
31/01/2011 94311700 45.9 45.6752381
01/02/2011 106658300 46.68 45.82
02/02/2011 64738800 46.58 45.9147619
03/02/2011 98449400 46.46 45.99285714
04/02/2011 80460100 46.88 46.07380952
07/02/2011 121255400 47.6 46.19047619
08/02/2011 95260200 48.05 46.31333333
09/02/2011 120686300 48.45 46.41428571
10/02/2011 232137500 47.96 46.49714286
11/02/2011 91893200 48.28 46.57761905
14/02/2011 77604100 48.59 46.6647619
15/02/2011 71043700 48.69 46.73857143
16/02/2011 120289400 49.13 46.88380952
17/02/2011 132645800 48.47 47.00904762
18/02/2011 204014300 47.42 47.12380952
22/02/2011 218138900 45.81 47.20047619
23/02/2011 167963600 46.35 47.23380952
24/02/2011 124975200 46.39 47.24333333
25/02/2011 95004700 47.1 47.27095238
28/02/2011 100768500 47.78 47.3352381
01/03/2011 114034200 47.26 47.42047619
02/03/2011 150647700 47.64 47.50333333
03/03/2011 125197100 48.64 47.59666667
04/03/2011 113316700 48.7 47.69761905
07/03/2011 136530800 48.07 47.77428571
08/03/2011 89079200 48.13 47.83380952
09/03/2011 113326500 47.68 47.83761905
10/03/2011 126884800 46.9 47.78285714
11/03/2011 117770100 47.62 47.74333333
14/03/2011 108989300 47.83 47.73714286
15/03/2011 180270300 46.73 47.66333333
16/03/2011 290502800 44.64 47.4752381
17/03/2011 164855600 45.27 47.31238095
18/03/2011 188303500 44.73 47.10285714
21/03/2011 102350500 45.9 46.98047619
22/03/2011 81480700 46.16 46.92047619
23/03/2011 93249100 45.89 46.92428571
24/03/2011 101178000 46.67 46.93952381
25/03/2011 112227500 47.56 46.9952381
28/03/2011 77338800 47.41 47.01
29/03/2011 88225200 47.48 46.99571429
30/03/2011 82351500 47.16 46.99095238
31/03/2011 68504800 47.15 46.96761905
01/04/2011 104665400 46.61 46.87095238
04/04/2011 115021200 46.16 46.75
05/04/2011 120682800 45.85 46.64428571
06/04/2011 100634800 45.73 46.53
07/04/2011 93361800 45.74 46.43761905
08/04/2011 94383800 45.33 46.36285714
11/04/2011 99736700 44.75 46.22619048
12/04/2011 106409800 44.97 46.09
13/04/2011 86555000 45.47 46.03
14/04/2011 75450200 44.97 46.04571429
15/04/2011 113401400 44.3 45.99952381
18/04/2011 152474700 44.89 46.00714286
19/04/2011 104844600 45.71 45.99809524
20/04/2011 175166600 46.32 46.00571429
21/04/2011 188452600 47.44 46.07952381
25/04/2011 66636500 47.76 46.13142857
26/04/2011 84700000 47.41 46.12428571
27/04/2011 89053300 47.37 46.12238095
28/04/2011 90239800 46.91 46.0952381
29/04/2011 251586300 47.37 46.1052381
02/05/2011 110678400 46.85 46.09095238
03/05/2011 78337000 47.11 46.1147619
04/05/2011 97312600 47.29 46.16857143
05/05/2011 83992300 46.91 46.21904762
06/05/2011 70033600 46.9 46.2747619
09/05/2011 51186800 47.02 46.33571429
10/05/2011 70522900 47.27 46.42809524
11/05/2011 84000000 46.97 46.53380952
12/05/2011 80500000 46.88 46.6247619
13/05/2011 81529000 46.06 46.65285714
16/05/2011 112443800 45.09 46.65857143
17/05/2011 113083600 45.47 46.71428571
18/05/2011 83694100 45.98 46.76619048
19/05/2011 65292500 46.07 46.78333333
20/05/2011 84492100 45.35 46.73714286
23/05/2011 95900000 45.24 46.63238095
24/05/2011 80481800 44.94 46.49809524
25/05/2011 73556000 45.56 46.41
26/05/2011 55640200 45.32 46.31238095
27/05/2011 50899800 45.65 46.25238095
31/05/2011 104438600 47.06 46.23761905
01/06/2011 138670700 46.74 46.23238095
02/06/2011 84695800 46.82 46.21857143
03/06/2011 78312500 46.46 46.17904762
06/06/2011 115485300 45.73 46.12285714
07/06/2011 132446300 44.92 46.02857143
08/06/2011 83430900 44.95 45.93
09/06/2011 68772200 44.84 45.81428571
10/06/2011 108488800 44.09 45.67714286
13/06/2011 82368300 44.18 45.54857143
14/06/2011 83642300 44.97 45.49666667
15/06/2011 99799000 44.2 45.45428571
16/06/2011 127647800 43.99 45.38380952
17/06/2011 153755000 43.33 45.25761905
20/06/2011 160161400 42.66 45.0952381
21/06/2011 123345600 44.01 45.03142857
22/06/2011 97645800 43.64 44.9552381
23/06/2011 139939800 44.81 44.94904762
24/06/2011 109951800 44.15 44.88190476
27/06/2011 84953400 44.92 44.86285714
28/06/2011 73574900 45.35 44.84857143
29/06/2011 88136300 45.19 44.75952381
30/06/2011 80738700 45.41 44.69619048
01/07/2011 108828300 46.44 44.67809524
05/07/2011 88763500 47.27 44.71666667
06/07/2011 111156500 47.59 44.8052381
07/07/2011 99915900 48.32 44.96714286
08/07/2011 122408300 48.66 45.14380952
11/07/2011 110668600 47.89 45.28904762
12/07/2011 112902300 47.86 45.46857143
13/07/2011 97909700 48.43 45.67095238
14/07/2011 107633400 48.4 45.83428571
15/07/2011 121116800 49.37 46.08047619
18/07/2011 143163300 50.57 46.39380952
19/07/2011 204786400 50.98 46.75809524
20/07/2011 235335100 52.34 47.21904762
21/07/2011 131633600 52.39 47.61809524
22/07/2011 129182200 53.21 48.07380952
25/07/2011 147451500 53.91 48.50714286
26/07/2011 119145600 54.57 49.00333333
27/07/2011 164831100 53.11 49.39333333
28/07/2011 148508500 53.01 49.75809524
29/07/2011 158146100 52.83 50.12190476
01/08/2011 153209000 53.67 50.5152381
02/08/2011 159884900 52.61 50.80904762
03/08/2011 183127000 53.11 51.08714286
04/08/2011 217851900 51.05 51.25190476
05/08/2011 301147700 50.54 51.35761905
08/08/2011 285958400 47.78 51.31571429
09/08/2011 270645900 50.6 51.4447619
10/08/2011 219664200 49.2 51.50857143
11/08/2011 185492300 50.56 51.61
12/08/2011 132244000 51 51.73380952
15/08/2011 115136000 51.87 51.85285714
16/08/2011 124687500 51.47 51.89571429
17/08/2011 110515300 51.47 51.91904762
18/08/2011 212858800 49.52 51.7847619
19/08/2011 193972100 48.16 51.58333333
22/08/2011 133828800 48.22 51.34571429
23/08/2011 164208800 50.54 51.1852381
24/08/2011 156566900 50.89 51.01
25/08/2011 217836500 50.56 50.88857143
26/08/2011 160369300 51.89 50.8352381
29/08/2011 101317300 52.76 50.83190476
30/08/2011 104480600 52.76 50.78857143
31/08/2011 130646600 52.06 50.76238095
01/09/2011 85931300 51.55 50.68809524
02/09/2011 109734800 50.6 50.66666667
06/09/2011 127424500 51.37 50.70619048
07/09/2011 87644200 51.94 50.90428571
08/09/2011 104039600 51.97 50.96952381
09/09/2011 141203300 51.07 51.05857143
12/09/2011 116958100 51.4 51.09857143
13/09/2011 110140100 52.03 51.14761905
14/09/2011 133681100 52.67 51.18571429
15/09/2011 104454700 53.16 51.26619048
16/09/2011 174628300 54.18 51.3952381
19/09/2011 205965200 55.69 51.68904762
20/09/2011 193938500 55.93 52.05904762
21/09/2011 151494000 55.76 52.41809524
22/09/2011 242120200 54.36 52.6
23/09/2011 136569300 54.69 52.78095238
26/09/2011 203219100 54.54 52.97047619
27/09/2011 158124400 54.01 53.07142857
28/09/2011 107409400 53.71 53.11666667
29/09/2011 162771700 52.84 53.12047619
30/09/2011 136910200 51.59 53.09809524
03/10/2011 167274800 50.68 53.05666667
04/10/2011 308419300 50.39 53.04666667
05/10/2011 196617400 51.17 53.03714286
06/10/2011 203145600 51.05 52.9947619
07/10/2011 133864500 50.03 52.90238095
10/10/2011 110628700 52.6 52.9752381
11/10/2011 151421900 54.15 53.10619048
12/10/2011 155571500 54.41 53.21952381
13/10/2011 106546300 55.25 53.34238095
14/10/2011 143341800 57.09 53.52952381
17/10/2011 171511200 56.82 53.6552381
18/10/2011 220400600 57.12 53.72333333
19/10/2011 276014900 53.93 53.62809524
20/10/2011 137317600 53.48 53.51952381
21/10/2011 155311100 53.15 53.46190476
24/10/2011 125534500 54.89 53.47142857
25/10/2011 107606800 53.81 53.43666667
26/10/2011 114076200 54.19 53.4452381
27/10/2011 123666200 54.75 53.4947619
28/10/2011 80710700 54.78 53.58714286
31/10/2011 96375300 54.76 53.73809524
01/11/2011 132947500 53.64 53.87904762
02/11/2011 81837700 53.76 54.03952381
03/11/2011 110346600 54.53 54.19952381
04/11/2011 75557300 54.15 54.34714286
07/11/2011 67568900 54.08 54.54
08/11/2011 100110500 54.96 54.65238095
09/11/2011 139671000 53.47 54.62
10/11/2011 186188100 52.11 54.51047619
11/11/2011 163446500 52.03 54.35714286
14/11/2011 108226300 51.31 54.08190476
15/11/2011 107702700 52.6 53.88095238
16/11/2011 87302600 52.05 53.63952381
17/11/2011 119975100 51.06 53.50285714
18/11/2011 92984500 50.72 53.37142857
21/11/2011 111995100 49.92 53.21761905
22/11/2011 102255300 50.94 53.02952381
23/11/2011 107067800 49.65 52.83142857
25/11/2011 63690200 49.18 52.59285714
28/11/2011 86603300 50.88 52.40857143
29/11/2011 93963800 50.49 52.20428571
30/11/2011 101484600 51.71 52.05904762
01/12/2011 96795300 52.48 52.00380952
02/12/2011 94763900 52.72 51.95428571
05/12/2011 89302500 53.17 51.88952381
06/12/2011 70899500 52.89 51.82952381
07/12/2011 76186600 52.64 51.76095238
08/12/2011 94089100 52.85 51.66047619
09/12/2011 74248300 53.25 51.65
12/12/2011 75266800 53.01 51.69285714
13/12/2011 84732200 52.6 51.72
14/12/2011 101721900 51.43 51.72571429
15/12/2011 64050000 51.26 51.66190476
16/12/2011 105369600 51.55 51.63809524
19/12/2011 58882600 51.71 51.66904762
20/12/2011 84303800 53.57 51.8047619
21/12/2011 65737000 53.63 51.98142857
22/12/2011 50589700 53.92 52.12333333
23/12/2011 67349800 54.56 52.35714286
27/12/2011 66269000 55 52.63428571
28/12/2011 57165500 54.47 52.8052381
29/12/2011 53994500 54.81 53.01095238
30/12/2011 44915500 54.79 53.15761905
03/01/2012 75555200 55.63 53.30761905
04/01/2012 65005500 55.93 53.46047619
05/01/2012 67817400 56.55 53.62142857
06/01/2012 79573200 57.14 53.82380952
09/01/2012 98506100 57.05 54.03380952
10/01/2012 64549100 57.26 54.24380952
11/01/2012 53771200 57.16 54.43
12/01/2012 53146800 57.01 54.62047619
13/01/2012 56505400 56.79 54.82
17/01/2012 60724300 57.45 55.10666667
18/01/2012 69197800 58.05 55.43
19/01/2012 65434600 57.87 55.73095238
20/01/2012 103493600 56.86 55.97619048
23/01/2012 76515600 57.82 56.17857143
24/01/2012 136909500 56.87 56.33285714
25/01/2012 239578500 60.43 56.64285714
26/01/2012 80996300 60.15 56.90904762
27/01/2012 74927300 60.51 57.17142857
30/01/2012 94835300 61.28 57.49571429
31/01/2012 97920900 61.75 57.82619048
01/02/2012 67511500 61.71 58.15571429
02/02/2012 46699100 61.57 58.43857143
03/02/2012 71649900 62.19 58.73666667
06/02/2012 62353200 62.77 59.03285714
07/02/2012 79055900 63.42 59.33190476
08/02/2012 101972500 64.49 59.68619048
09/02/2012 221053700 66.72 60.13666667
10/02/2012 157825500 66.75 60.59333333
13/02/2012 129304000 67.99 61.11619048
14/02/2012 115099600 68.92 61.69380952
15/02/2012 376530000 67.33 62.16428571
16/02/2012 236138000 67.94 62.6352381
17/02/2012 133951300 67.93 63.11428571
21/02/2012 151398800 69.65 63.72333333
22/02/2012 120825600 69.41 64.2752381
23/02/2012 142006900 69.86 64.89380952
24/02/2012 103768000 70.67 65.38142857
27/02/2012 136895500 71.13 65.90428571
28/02/2012 150096800 72.43 66.47190476
29/02/2012 238002800 73.38 67.04809524
01/03/2012 170817500 73.66 67.6152381
02/03/2012 107928100 73.75 68.18857143
05/03/2012 202281100 72.13 68.69142857
06/03/2012 202559700 71.74 69.14619048
07/03/2012 199630200 71.79 69.57571429
08/03/2012 129114300 73.32 70.04714286
09/03/2012 104729800 73.75 70.48809524
12/03/2012 101820600 74.68 70.86714286
13/03/2012 172713800 76.85 71.34809524
14/03/2012 354711000 79.76 71.90857143
15/03/2012 289929500 79.22 72.39904762
16/03/2012 206371900 79.22 72.9652381
19/03/2012 225309000 81.32 73.60238095
20/03/2012 204165500 81.98 74.27142857
21/03/2012 161010500 81.51 74.83619048
22/03/2012 155967700 81.08 75.39190476
23/03/2012 107622200 80.64 75.9052381
26/03/2012 148935500 82.11 76.45
27/03/2012 151782400 83.13 77.02142857
28/03/2012 163865100 83.55 77.55095238
29/03/2012 152059600 82.5 77.9852381
30/03/2012 182759500 81.11 78.34
02/04/2012 149587900 83.69 78.81333333
03/04/2012 208639900 85.14 79.43285714
04/04/2012 143245200 84.46 80.03857143
05/04/2012 160324500 85.73 80.70238095
09/04/2012 149384200 86.07 81.30952381
10/04/2012 222431300 85.02 81.84619048
11/04/2012 174153700 84.71 82.32380952
12/04/2012 153584200 84.25 82.67619048
13/04/2012 214911200 81.88 82.77714286
16/04/2012 262696700 78.48 82.74190476
17/04/2012 256382000 82.48 82.89714286
18/04/2012 238632800 82.3 82.94380952
19/04/2012 208679800 79.47 82.82428571
20/04/2012 257746300 77.51 82.63380952
23/04/2012 241632300 77.34 82.45571429
24/04/2012 269037300 75.8 82.2252381
25/04/2012 226444400 82.52 82.2447619
26/04/2012 134017100 82.21 82.20095238
27/04/2012 101680600 81.58 82.10714286
30/04/2012 126536200 79 81.94047619
01/05/2012 152749800 78.75 81.82809524
02/05/2012 106847300 79.27 81.61761905
03/05/2012 97637400 78.71 81.31142857
04/05/2012 132498100 76.47 80.93095238
07/05/2012 115029600 77.04 80.51714286
08/05/2012 124313000 76.86 80.07857143
09/05/2012 120176000 77 79.69666667
10/05/2012 83300000 77.18 79.33809524
11/05/2012 99886500 76.67 78.97714286
14/05/2012 88156600 75.52 78.67428571
15/05/2012 119084000 74.83 78.50047619
16/05/2012 140224000 73.88 78.09095238
17/05/2012 179305000 71.72 77.58714286
18/05/2012 183073100 71.75 77.21952381
21/05/2012 157776500 75.93 77.14428571
22/05/2012 173717600 75.35 77.04952381
23/05/2012 146224400 77.19 77.11571429
24/05/2012 124057500 76.48 76.82809524
25/05/2012 82126800 76.07 76.53571429
29/05/2012 95127200 77.42 76.33761905
30/05/2012 132357400 78.35 76.30666667
31/05/2012 122918600 78.16 76.27857143
01/06/2012 130246900 75.89 76.11761905
04/06/2012 139248900 76.34 76.0047619
05/06/2012 97053600 76.14 75.98904762
06/06/2012 100363900 77.31 76.00190476
07/06/2012 94941700 77.34 76.0247619
08/06/2012 86879100 78.51 76.09666667
11/06/2012 147816200 77.27 76.10095238
12/06/2012 108845100 77.94 76.16142857
13/06/2012 73395000 77.4 76.25095238
14/06/2012 86393300 77.32 76.36952381
15/06/2012 83813800 77.67 76.55
18/06/2012 110103000 79.25 76.90857143
19/06/2012 90351100 79.47 77.27619048
20/06/2012 89735800 79.24 77.43380952
21/06/2012 81587800 78.15 77.56714286
22/06/2012 71117900 78.75 77.64142857
25/06/2012 76095600 77.22 77.67666667
26/06/2012 69134100 77.39 77.73952381
27/06/2012 50749300 77.72 77.75380952
28/06/2012 70709100 76.98 77.68857143
29/06/2012 105375200 79.01 77.72904762
02/07/2012 100023000 80.16 77.93238095
03/07/2012 60428200 81.09 78.15857143
05/07/2012 121095800 82.51 78.46190476
06/07/2012 104732600 81.97 78.68380952
09/07/2012 94851400 83.05 78.95571429
10/07/2012 127989400 82.28 79.1352381
11/07/2012 117330500 81.77 79.34952381
12/07/2012 107010400 81.02 79.49619048
13/07/2012 77856800 81.84 79.70761905
16/07/2012 75315100 82.1 79.9352381
17/07/2012 73406200 82.11 80.14666667
18/07/2012 63175000 82.02 80.27857143
19/07/2012 109215400 83.11 80.45190476
20/07/2012 99367800 81.75 80.57142857
23/07/2012 121993900 81.69 80.74
24/07/2012 141283100 81.29 80.86095238
25/07/2012 219328200 77.78 80.88761905
26/07/2012 101658200 77.77 80.90571429
27/07/2012 100984100 79.16 80.97428571
30/07/2012 94785600 80.5 81.14190476
31/07/2012 115581900 82.63 81.31428571
01/08/2012 96125400 82.09 81.40619048
02/08/2012 83039600 82.22 81.46
03/08/2012 86230200 83.29 81.49714286
06/08/2012 75525800 84.22 81.60428571
07/08/2012 72611700 84 81.64952381
08/08/2012 61176500 83.86 81.7247619
09/08/2012 55410600 84.33 81.84666667
10/08/2012 48734700 84.47 82.01095238
13/08/2012 69708100 85.59 82.18952381
14/08/2012 85042300 85.82 82.36666667
15/08/2012 64335600 85.71 82.53809524
16/08/2012 63633500 86.46 82.74952381
17/08/2012 110690300 88.05 82.9847619
20/08/2012 153346200 90.37 83.3952381
21/08/2012 203179900 89.13 83.74952381
22/08/2012 141330700 90.88 84.20619048
23/08/2012 105032200 90.03 84.78952381
24/08/2012 109335100 90.11 85.37714286
27/08/2012 106752100 91.8 85.97904762
28/08/2012 66854200 91.68 86.51142857
29/08/2012 50701700 91.5 86.93380952
30/08/2012 75674900 90.2 87.32
31/08/2012 84580300 90.38 87.70857143
04/09/2012 91973000 91.7 88.10904762
05/09/2012 84093800 91.06 88.4347619
06/09/2012 97799100 91.88 88.81
07/09/2012 82416600 92.45 89.21904762
10/09/2012 121999500 90.04 89.49095238
11/09/2012 125995800 89.75 89.74238095
12/09/2012 178058300 91 90
13/09/2012 149590000 92.79 90.33190476
14/09/2012 150118500 93.92 90.72285714
17/09/2012 99507800 95.07 91.13285714
18/09/2012 93375800 95.36 91.48095238
19/09/2012 81718700 95.39 91.72
20/09/2012 84142100 94.93 91.99619048
21/09/2012 142897300 95.12 92.19809524
24/09/2012 159941600 93.85 92.38
25/09/2012 129697400 91.51 92.44666667
26/09/2012 144125800 90.37 92.37857143
27/09/2012 148522500 92.57 92.42095238
28/09/2012 133777700 90.63 92.37952381
01/10/2012 135898700 89.59 92.35047619
02/10/2012 156998100 89.85 92.3252381
03/10/2012 106070300 91.23 92.30285714
04/10/2012 92681400 90.59 92.28047619
05/10/2012 148501500 88.66 92.12714286
08/10/2012 159498500 86.7 91.85333333
09/10/2012 209649300 86.39 91.67952381
10/10/2012 127589000 87.08 91.55238095
11/10/2012 136520300 85.34 91.28285714
12/10/2012 115003700 85.55 90.93809524
15/10/2012 108125500 86.24 90.57238095
16/10/2012 137442900 88.28 90.24904762
17/10/2012 97259400 87.58 89.87857143
18/10/2012 119156100 85.95 89.42904762
19/10/2012 186021500 82.86 88.85428571
22/10/2012 136682700 86.14 88.42666667
23/10/2012 176786400 83.33 87.92571429
24/10/2012 139631800 83.8 87.55857143
25/10/2012 164081400 82.81 87.19857143
26/10/2012 254608200 82.06 86.69809524
31/10/2012 127500800 80.88 86.23380952
01/11/2012 90324500 81.05 85.82714286
02/11/2012 149843400 78.37 85.28047619
05/11/2012 132283900 79.43 84.71857143
06/11/2012 93729300 79.19 84.17571429
07/11/2012 198412200 76.16 83.58047619
08/11/2012 264036500 73.39 82.94666667
09/11/2012 232478400 74.66 82.38809524
12/11/2012 128950500 74.09 81.76952381
13/11/2012 133237300 74.1 81.23428571
14/11/2012 119292600 73.28 80.65
15/11/2012 197477700 71.74 79.95952381
16/11/2012 316723400 72.02 79.1852381
19/11/2012 205829400 77.21 78.69142857
20/11/2012 160688500 76.56 78.24428571
21/11/2012 93250500 76.66 77.94904762
23/11/2012 68206600 78 77.56142857
26/11/2012 157644900 80.46 77.4247619
27/11/2012 133332500 79.81 77.2347619
28/11/2012 130216100 79.56 77.08
29/11/2012 128674700 80.44 77.00285714
30/11/2012 97829900 79.88 76.9552381
03/12/2012 91070000 80.01 76.90571429
04/12/2012 139267100 78.59 76.91619048
05/12/2012 261159500 73.54 76.63571429
06/12/2012 294303100 74.69 76.42142857
07/12/2012 196760200 72.78 76.26047619
10/12/2012 157621100 72.31 76.20904762
11/12/2012 148086400 73.89 76.17238095
12/12/2012 121786000 73.56 76.14714286
13/12/2012 156314900 72.29 76.06095238
14/12/2012 252394800 69.58 75.8847619
17/12/2012 189401800 70.81 75.84047619
18/12/2012 156421300 72.87 75.88095238
19/12/2012 112342300 71.83 75.6247619
20/12/2012 120422400 71.21 75.37
21/12/2012 149067100 70.88 75.0947619
24/12/2012 43938300 70.99 74.76095238
26/12/2012 75609100 70.02 74.26380952
27/12/2012 113780100 70.3 73.81095238
28/12/2012 88569600 69.55 73.33428571
31/12/2012 164873100 72.63 72.96238095
02/01/2013 140129500 74.93 72.72666667
03/01/2013 88241300 73.99 72.44
04/01/2013 148583400 71.93 72.12285714
07/01/2013 121039100 71.5 72.02571429
08/01/2013 114676800 71.7 71.88333333
09/01/2013 101901100 70.58 71.77857143
10/01/2013 150286500 71.45 71.73761905
11/01/2013 87626700 71.01 71.60047619
14/01/2013 183551900 68.48 71.35857143
15/01/2013 219193100 66.32 71.07428571
16/01/2013 172701200 69.07 71.05
17/01/2013 113419600 68.61 70.9452381
18/01/2013 118230700 68.24 70.7247619
22/01/2013 115386600 68.89 70.5847619
23/01/2013 215377400 70.15 70.53428571
24/01/2013 365213100 61.49 70.08714286
25/01/2013 302006600 60.04 69.56571429
28/01/2013 196379400 61.39 69.1547619
29/01/2013 142789500 62.55 68.78571429
30/01/2013 104288800 62.35 68.44285714
31/01/2013 79833600 62.17 67.9447619
01/02/2013 134871100 61.91 67.3247619
04/02/2013 119279300 60.37 66.67619048
05/02/2013 143336900 62.49 66.22666667
06/02/2013 148426600 62.42 65.79428571
07/02/2013 176145200 64.28 65.44095238
08/02/2013 158289600 65.21 65.1852381
11/02/2013 129372600 65.88 64.92
12/02/2013 152263300 64.23 64.59714286
13/02/2013 118801900 64.11 64.38904762
14/02/2013 88818800 64.05 64.28095238
15/02/2013 97936300 63.17 64
19/02/2013 108945900 63.15 63.74
20/02/2013 119075600 61.62 63.4247619
21/02/2013 111795600 61.23 63.06
22/02/2013 82663700 61.89 62.66666667
25/02/2013 93144800 60.79 62.63333333
26/02/2013 125374900 61.63 62.70904762
27/02/2013 146837600 61.03 62.69190476
28/02/2013 80628800 60.6 62.59904762
01/03/2013 138112100 59.09 62.44380952
04/03/2013 145688900 57.66 62.22904762
05/03/2013 159608400 59.19 62.09952381
06/03/2013 115062500 58.43 62.00714286
07/03/2013 117118400 59.11 61.84619048
08/03/2013 97870500 59.27 61.69619048
11/03/2013 118559000 60.11 61.49761905
12/03/2013 116477900 58.81 61.19285714
13/03/2013 101387300 58.8 60.85571429
14/03/2013 75968900 59.37 60.62428571
15/03/2013 160990200 60.91 60.47190476
18/03/2013 151549300 62.56 60.40095238
19/03/2013 131693800 62.39 60.36380952
20/03/2013 77165200 62.06 60.31190476
21/03/2013 95813900 62.15 60.33714286
22/03/2013 98776300 63.41 60.44095238
25/03/2013 125283900 63.64 60.52428571
26/03/2013 73573500 63.31 60.64428571
27/03/2013 82809300 62.06 60.6647619
28/03/2013 110709900 60.77 60.65238095
01/04/2013 97433000 58.88 60.57047619
02/04/2013 132379800 59 60.56619048
03/04/2013 90804000 59.3 60.64428571
04/04/2013 89611900 58.72 60.62190476
05/04/2013 95923800 58.1 60.60619048
08/04/2013 75207300 58.51 60.57761905
09/04/2013 76653500 58.62 60.54666667
10/04/2013 93982000 59.81 60.53238095
11/04/2013 82091100 59.62 60.57095238
12/04/2013 59653300 59 60.58047619
15/04/2013 79380000 57.64 60.49809524
16/04/2013 76442800 58.51 60.38380952
17/04/2013 236264000 55.3 60.03809524
18/04/2013 166574800 53.82 59.63
19/04/2013 152318600 53.61 59.22761905
22/04/2013 107480100 54.73 58.87428571
23/04/2013 166059600 55.75 58.50952381
24/04/2013 242412800 55.66 58.12952381
25/04/2013 96209400 56.06 57.78428571
26/04/2013 191024400 57.27 57.55619048
29/04/2013 160081600 59.05 57.47428571
30/04/2013 172884600 60.78 57.5647619
01/05/2013 126727300 60.31 57.62714286
02/05/2013 105457100 61.16 57.71571429
03/05/2013 90325200 61.77 57.86095238
06/05/2013 124160400 63.25 58.10619048
07/05/2013 120938300 62.96 58.31809524
08/05/2013 118149500 63.68 58.55904762
09/05/2013 99621900 63.12 58.71666667
10/05/2013 83713000 62.6 58.85857143
13/05/2013 79237200 62.84 59.04142857
14/05/2013 111779500 61.34 59.21761905
15/05/2013 185403400 59.26 59.25333333
16/05/2013 150801000 60.05 59.47952381
17/05/2013 106976100 59.87 59.76761905
20/05/2013 112894600 61.21 60.12952381
21/05/2013 114005500 60.76 60.41666667
22/05/2013 110759600 60.99 60.66619048
23/05/2013 88255300 61.1 60.9252381
24/05/2013 69041700 61.51 61.1847619
28/05/2013 96536300 61 61.36238095
29/05/2013 82644100 61.49 61.47857143
30/05/2013 88379900 62.4 61.55571429
31/05/2013 96075700 62.15 61.64333333
03/06/2013 93088100 62.28 61.69666667
04/06/2013 73182200 62.09 61.71190476
05/06/2013 72647400 61.51 61.62904762
06/06/2013 104233500 60.59 61.51619048
07/06/2013 101133900 61.05 61.39095238
10/06/2013 112538300 60.65 61.27333333
11/06/2013 71528100 60.47 61.17190476
12/06/2013 66306800 59.72 61.02333333
13/06/2013 71458100 60.24 60.97095238
14/06/2013 67966500 59.43 60.97904762
17/06/2013 64853600 59.7 60.96238095
18/06/2013 48756400 59.67 60.95285714
19/06/2013 77735000 58.45 60.82142857
20/06/2013 89327700 57.6 60.67095238
21/06/2013 120279600 57.14 60.48761905
24/06/2013 120186500 55.63 60.22714286
25/06/2013 78540700 55.64 59.94761905
26/06/2013 91931000 55.01 59.66238095
27/06/2013 84311500 54.42 59.32571429
28/06/2013 144629100 54.8 58.96380952
01/07/2013 97763400 56.55 58.69714286
02/07/2013 117466300 57.83 58.4852381
03/07/2013 60232200 58.15 58.29761905
05/07/2013 68506200 57.68 58.1152381
08/07/2013 74534600 57.36 57.96142857
09/07/2013 88146100 58.36 57.83333333
10/07/2013 70351400 58.14 57.71380952
11/07/2013 81573100 59.05 57.64619048
12/07/2013 69890800 58.94 57.60904762
15/07/2013 60479300 59.07 57.55333333
16/07/2013 54134500 59.45 57.55428571
17/07/2013 49747600 59.46 57.54285714
18/07/2013 54719700 59.66 57.54238095
19/07/2013 67180400 58.72 57.5552381
22/07/2013 51949100 58.91 57.61761905
23/07/2013 92348900 57.9 57.65380952
24/07/2013 147984200 60.87 57.90333333
25/07/2013 57373400 60.6 58.13952381
26/07/2013 50038100 60.94 58.42190476
29/07/2013 62014400 61.88 58.77714286
30/07/2013 77355600 62.64 59.15047619
31/07/2013 80739400 62.53 59.4352381
01/08/2013 51562700 63.11 59.68666667
02/08/2013 68695900 63.92 59.96142857
05/08/2013 79713900 64.87 60.30380952
06/08/2013 83714400 64.29 60.63380952
07/08/2013 74714500 64.25 60.91428571
08/08/2013 63944300 64.13 61.19952381
09/08/2013 66716300 63.21 61.39761905
12/08/2013 91108500 65.01 61.68666667
13/08/2013 220485300 68.1 62.11666667
14/08/2013 189093100 69.34 62.58761905
15/08/2013 122573500 69.26 63.05428571
16/08/2013 90576500 69.87 63.54047619
19/08/2013 127629600 70.63 64.10761905
20/08/2013 89672100 69.7 64.62142857
21/08/2013 83969900 69.88 65.19190476
22/08/2013 61051900 69.96 65.6247619
23/08/2013 55682900 69.69 66.05761905
26/08/2013 82741400 69.96 66.48714286
27/08/2013 106047200 67.96 66.77666667
28/08/2013 76902000 68.28 67.0452381
29/08/2013 59914400 68.4 67.3247619
30/08/2013 68074300 67.77 67.54666667
03/09/2013 82982200 67.96 67.73904762
04/09/2013 86258200 69.37 67.95333333
05/09/2013 59091900 68.89 68.17238095
06/09/2013 89881400 69.3 68.41285714
09/09/2013 85171800 70.41 68.71190476
10/09/2013 185798900 68.8 68.97809524
11/09/2013 224674100 65.06 68.98047619
12/09/2013 101012800 65.75 68.86857143
13/09/2013 74708900 64.67 68.64619048
16/09/2013 135926700 62.61 68.32952381
17/09/2013 99845200 63.34 68.01857143
18/09/2013 114215500 64.64 67.73333333
19/09/2013 101135300 65.7 67.54285714
20/09/2013 174825700 65.02 67.31142857
23/09/2013 190526700 68.25 67.23
24/09/2013 91086100 68.03 67.15095238
25/09/2013 79239300 66.98 67.00904762
26/09/2013 59305400 67.63 66.99333333
27/09/2013 57010100 67.15 66.93952381
30/09/2013 65039100 66.32 66.84047619
01/10/2013 88470900 67.88 66.84571429
02/10/2013 72296000 68.1 66.85238095
03/10/2013 80688300 67.24 66.75095238
04/10/2013 64717100 67.19 66.67
07/10/2013 78073100 67.85 66.60095238
08/10/2013 72729300 66.9 66.43380952
09/10/2013 75431300 67.68 66.38047619
10/10/2013 69650700 68.11 66.52571429
11/10/2013 66934700 68.55 66.65904762
14/10/2013 65474500 69 66.8652381
15/10/2013 80018400 69.37 67.18714286
16/10/2013 62775300 69.7 67.49
17/10/2013 63398300 70.18 67.75380952
18/10/2013 72635500 70.79 67.99619048
21/10/2013 99526700 72.52 68.35333333
22/10/2013 133515900 72.31 68.54666667
23/10/2013 78430800 73.02 68.78428571
24/10/2013 96191200 73.99 69.11809524
25/10/2013 84448000 73.16 69.38142857
28/10/2013 137610200 73.71 69.69380952
29/10/2013 158951800 71.87 69.95809524
30/10/2013 88540900 73.01 70.20238095
31/10/2013 68924100 72.71 70.42190476
01/11/2013 68722500 72.34 70.6647619
04/11/2013 61156900 73.27 70.95428571
05/11/2013 66303300 73.09 71.20380952
06/11/2013 55843900 72.88 71.48857143
07/11/2013 65655100 71.7 71.68
08/11/2013 69829200 72.83 71.9047619
11/11/2013 56863100 72.62 72.09857143
12/11/2013 51069200 72.76 72.27761905
13/11/2013 49305200 72.84 72.44285714
14/11/2013 70604800 73.9 72.64285714
15/11/2013 79480100 73.45 72.79857143
18/11/2013 61236000 72.56 72.88285714
19/11/2013 52234700 72.69 72.89095238
20/11/2013 48479200 72.06 72.87904762
21/11/2013 65506700 72.91 72.87380952
22/11/2013 55931400 72.73 72.81380952
25/11/2013 57327900 73.28 72.81952381
26/11/2013 100345700 74.63 72.86333333
27/11/2013 90862100 76.39 73.07857143
29/11/2013 79531900 77.8 73.30666667
02/12/2013 118136200 77.12 73.51666667
03/12/2013 112742000 79.24 73.8452381
04/12/2013 94452400 79.05 74.12047619
05/12/2013 111895000 79.46 74.42380952
06/12/2013 86088100 78.35 74.68428571
09/12/2013 80123400 79.25 75.04380952
10/12/2013 69567400 79.13 75.34380952
11/12/2013 89929700 78.54 75.62571429
12/12/2013 65572500 78.43 75.89571429
13/12/2013 83205500 77.57 76.12095238
16/12/2013 70648200 78 76.31619048
17/12/2013 57475600 77.65 76.51619048
18/12/2013 141465800 77.06 76.73047619
19/12/2013 80077200 76.18 76.89666667
20/12/2013 109103400 76.81 77.12285714
23/12/2013 125326600 79.76 77.44904762
24/12/2013 41888700 79.42 77.76761905
26/12/2013 51002000 78.9 78.0352381
27/12/2013 56471100 78.36 78.21285714
30/12/2013 63407400 77.58 78.26952381
31/12/2013 55771100 78.49 78.30238095
02/01/2014 58671200 77.39 78.3152381
03/01/2014 98116900 75.69 78.14619048
06/01/2014 103152700 76.1 78.00571429
07/01/2014 79302300 75.56 77.82
08/01/2014 64632400 76.04 77.71
09/01/2014 69787200 75.07 77.51095238
10/01/2014 76244000 74.57 77.29380952
13/01/2014 94623200 74.96 77.12333333
14/01/2014 83140400 76.45 77.02904762
15/01/2014 97909700 77.98 77.04857143
16/01/2014 57319500 77.55 77.02714286
17/01/2014 106684900 75.65 76.93190476
21/01/2014 82131700 76.82 76.92047619
22/01/2014 94996300 77.16 76.96714286
23/01/2014 100809800 77.82 77.0152381
24/01/2014 107338700 76.4 76.8552381
27/01/2014 138719700 77.02 76.74095238
28/01/2014 266380800 70.87 76.35857143
29/01/2014 125702500 70.06 75.96333333
30/01/2014 169625400 69.93 75.59904762
31/01/2014 116199300 70.04 75.19666667
03/02/2014 100366000 70.17 74.85285714
04/02/2014 94170300 71.19 74.63857143
05/02/2014 82086200 71.72 74.43
06/02/2014 64441300 72.14 74.26714286
07/02/2014 92570100 73.15 74.12952381
10/02/2014 86389800 74.46 74.10047619
11/02/2014 70564200 75.44 74.14190476
12/02/2014 77025200 75.43 74.16428571
13/02/2014 76849500 76.63 74.17285714
14/02/2014 68231100 76.57 74.10571429
18/02/2014 65062900 76.85 74.07238095
19/02/2014 78442000 75.63 74.07142857
20/02/2014 76464500 74.76 73.97333333
21/02/2014 69696200 73.93 73.81952381
24/02/2014 72227400 74.25 73.64952381
25/02/2014 57988000 73.48 73.51047619
26/02/2014 69054300 72.82 73.31047619
27/02/2014 75470500 74.27 73.47238095
28/02/2014 92992200 74.07 73.66333333
03/03/2014 59695300 74.28 73.87047619
04/03/2014 64785000 74.77 74.09571429
05/03/2014 50015700 74.93 74.32238095
06/03/2014 46372200 74.7 74.48952381
07/03/2014 55182400 74.66 74.62952381
10/03/2014 44646000 74.73 74.75285714
11/03/2014 69806100 75.45 74.86238095
12/03/2014 49831600 75.53 74.91333333
13/03/2014 64435700 74.69 74.87761905
14/03/2014 59299800 73.85 74.80238095
17/03/2014 49886200 74.14 74.68380952
18/03/2014 52411800 74.79 74.59904762
19/03/2014 56189000 74.77 74.5
20/03/2014 52099600 74.41 74.44190476
21/03/2014 93511600 75 74.45333333
24/03/2014 88925200 75.89 74.54666667
25/03/2014 70573300 76.71 74.66380952
26/03/2014 74942000 75.97 74.78238095
27/03/2014 55507900 75.65 74.91714286
28/03/2014 50141000 75.56 74.97857143
31/03/2014 42167300 75.55 75.04904762
01/04/2014 50190000 76.24 75.14238095
02/04/2014 45105200 76.36 75.21809524
03/04/2014 40586000 75.83 75.26095238
04/04/2014 68812800 74.85 75.26809524
07/04/2014 72462600 73.68 75.22142857
08/04/2014 60972100 73.67 75.17095238
09/04/2014 51542400 74.64 75.13238095
10/04/2014 59913000 73.68 75.04428571
11/04/2014 67929400 73.14 74.97047619
14/04/2014 51418500 73.43 74.95047619
15/04/2014 66622500 72.9 74.89142857
16/04/2014 53691400 73.05 74.80857143
17/04/2014 71083600 73.89 74.76666667
21/04/2014 45637200 74.76 74.78333333
22/04/2014 50640800 74.84 74.77571429
23/04/2014 98735000 73.86 74.67904762
24/04/2014 189977900 79.91 74.83142857
25/04/2014 97568800 80.5 75.04714286
28/04/2014 167371400 83.62 75.42666667
29/04/2014 84344400 83.37 75.79857143
30/04/2014 114160200 83.06 76.15619048
01/05/2014 61012000 83.25 76.49
02/05/2014 47878600 83.41 76.82571429
05/05/2014 71766800 84.59 77.24285714
06/05/2014 93641100 83.66 77.66238095
07/05/2014 70716100 83.37 78.12380952
08/05/2014 57574300 83.22 78.57857143
09/05/2014 72899400 82.88 78.97095238
12/05/2014 53302200 83.91 79.45809524
13/05/2014 39934300 84.04 79.97714286
14/05/2014 41601000 84.05 80.48285714
15/05/2014 57711500 83.34 80.98
16/05/2014 69064100 84.57 81.52857143
19/05/2014 79438800 85.57 82.0847619
20/05/2014 58709000 85.59 82.60047619
21/05/2014 49214900 85.81 83.12285714
22/05/2014 50190000 85.95 83.69857143
23/05/2014 58052400 86.92 84.03238095
27/05/2014 87216500 88.55 84.41571429
28/05/2014 78870400 88.32 84.63952381
29/05/2014 94118500 89.93 84.95190476
30/05/2014 141005200 89.59 85.26285714
02/06/2014 92337700 88.98 85.53571429
03/06/2014 73177300 90.24 85.86095238
04/06/2014 83870500 91.27 86.17904762
05/06/2014 75951400 91.62 86.55809524
06/06/2014 87484600 91.37 86.93904762
09/06/2014 75415000 92.83 87.39666667
10/06/2014 62777000 93.38 87.89666667
11/06/2014 45681000 92.99 88.32904762
12/06/2014 54749000 91.44 88.68142857
13/06/2014 54525000 90.44 88.98571429
16/06/2014 35561000 91.35 89.36714286
17/06/2014 29726000 91.23 89.68428571
18/06/2014 33514000 91.33 89.95857143
19/06/2014 35528000 91.01 90.21666667
20/06/2014 100898000 90.07 90.41952381
23/06/2014 43694000 89.99 90.61190476
24/06/2014 39036000 89.45 90.73238095
25/06/2014 36869000 89.52 90.77857143
26/06/2014 32629000 90.06 90.86142857
27/06/2014 64029000 91.13 90.91857143
30/06/2014 49589000 92.07 91.03666667
01/07/2014 38223000 92.66 91.21190476
02/07/2014 28465000 92.62 91.3252381
03/07/2014 22891800 93.16 91.4152381
07/07/2014 56468000 95.08 91.58
08/07/2014 65222000 94.47 91.72761905
09/07/2014 36436000 94.51 91.80761905
10/07/2014 39686000 94.16 91.8447619
11/07/2014 34018000 94.34 91.90904762
14/07/2014 42810000 95.56 92.1052381
15/07/2014 45477900 94.44 92.29571429
16/07/2014 53502000 93.9 92.41714286
17/07/2014 57298000 92.23 92.4647619
18/07/2014 49988000 93.56 92.57095238
21/07/2014 39079000 93.07 92.66904762
22/07/2014 55197000 93.84 92.84857143
23/07/2014 92918000 96.29 93.14857143
24/07/2014 45729000 96.13 93.46666667
25/07/2014 43469000 96.77 93.81190476
28/07/2014 55318000 98.1 94.1947619
29/07/2014 43143000 97.47 94.49666667
30/07/2014 33010000 97.24 94.74285714
31/07/2014 56843000 94.72 94.84095238
01/08/2014 48511000 95.24 94.96571429
04/08/2014 39958000 94.71 95.03952381
05/08/2014 55933000 94.24 94.99952381
06/08/2014 38558000 94.08 94.98095238
07/08/2014 46711000 94.07 94.96
08/08/2014 41865000 94.33 94.96809524
11/08/2014 36585000 95.58 95.02714286
12/08/2014 33795000 95.56 95.02714286
13/08/2014 31916000 96.82 95.14047619
14/08/2014 28116000 97.08 95.29190476
15/08/2014 48951000 97.56 95.54571429
18/08/2014 47572000 98.73 95.79190476
19/08/2014 69399000 100.1 96.12666667
20/08/2014 52699000 100.14 96.42666667
21/08/2014 33478000 100.15 96.61047619
22/08/2014 44184000 100.88 96.83666667
25/08/2014 40270000 101.1 97.04285714
26/08/2014 33152000 100.45 97.1547619
27/08/2014 52369000 101.69 97.35571429
28/08/2014 68460000 101.81 97.57333333
29/08/2014 44595000 102.06 97.92285714
02/09/2014 53564000 102.85 98.2852381
03/09/2014 125421000 98.51 98.46619048
04/09/2014 85718000 97.7 98.63095238
05/09/2014 58457000 98.54 98.84333333
08/09/2014 46356700 97.94 99.02761905
09/09/2014 189846300 97.57 99.18190476
10/09/2014 100869600 100.56 99.41904762
11/09/2014 62353100 100.99 99.67761905
12/09/2014 64096900 101.22 99.88714286
15/09/2014 61316500 101.19 100.0828571
16/09/2014 66908100 100.42 100.2190476
17/09/2014 60926500 101.14 100.3338095
18/09/2014 37299400 101.35 100.3933333
19/09/2014 70902400 100.52 100.4114286
22/09/2014 52788400 100.62 100.4338095
23/09/2014 63402200 102.2 100.4966667
24/09/2014 60171800 101.31 100.5066667
25/09/2014 100092000 97.45 100.3638095
26/09/2014 62370500 100.32 100.2985714
29/09/2014 49766300 99.68 100.1971429
30/09/2014 55264100 100.32 100.1142857
01/10/2014 51491300 98.75 99.91904762
02/10/2014 47757800 99.47 99.9647619
03/10/2014 43469600 99.19 100.0357143
06/10/2014 37051200 99.19 100.0666667
07/10/2014 42094200 98.32 100.0847619
08/10/2014 57404700 100.36 100.217619
09/10/2014 77376500 100.58 100.2185714
10/10/2014 66331600 100.3 100.1857143
13/10/2014 53583400 99.38 100.0980952
14/10/2014 63688600 98.32 99.96142857
15/10/2014 100933600 97.12 99.80428571
16/10/2014 72154500 95.84 99.55190476
17/10/2014 68179700 97.25 99.35666667
20/10/2014 77517300 99.33 99.3
21/10/2014 94623900 102.03 99.36714286
22/10/2014 68263100 102.55 99.38380952
23/10/2014 71074700 104.38 99.53
24/10/2014 47053900 104.77 99.87857143
27/10/2014 34187700 104.66 100.0852381
28/10/2014 47939900 106.28 100.3995238
29/10/2014 52687900 106.88 100.7119048
30/10/2014 40654800 106.52 101.0819048
31/10/2014 44639300 107.53 101.4657143
03/11/2014 52282600 108.93 101.9295238
04/11/2014 41574400 108.13 102.3552381
05/11/2014 37435900 108.39 102.8347619
06/11/2014 34968500 108.7 103.2319048
07/11/2014 33691500 109.01 103.6333333
10/11/2014 27195500 108.83 104.0395238
11/11/2014 27442300 109.7 104.5309524
12/11/2014 46942400 111.25 105.1466667
13/11/2014 59522900 112.82 105.8942857
14/11/2014 44063600 114.18 106.767619
17/11/2014 46746700 113.99 107.5647619
18/11/2014 44224000 115.47 108.3333333
19/11/2014 41869200 114.67 108.9352381
20/11/2014 43395500 116.31 109.5904762
21/11/2014 57179300 116.47 110.1661905
24/11/2014 47450800 118.63 110.8261905
25/11/2014 68840400 117.6 111.442381
26/11/2014 40768300 119 112.0480952
28/11/2014 24814400 118.93 112.6219048
01/12/2014 83814000 115.07 113.0290476
02/12/2014 59075100 114.63 113.3671429
03/12/2014 43063400 115.93 113.7004762
04/12/2014 42044500 115.49 114.0509524
05/12/2014 38318900 115 114.3657143
08/12/2014 57664900 112.4 114.5419048
09/12/2014 60208000 114.12 114.7852381
10/12/2014 44565300 111.95 114.9338095
11/12/2014 41401700 111.62 115.0252381
12/12/2014 56028100 109.73 114.9528571
15/12/2014 67218100 108.23 114.7342857
16/12/2014 60790700 106.75 114.3804762
17/12/2014 53411800 109.41 114.162381
18/12/2014 59006200 112.65 114.0280952
19/12/2014 85708100 111.78 113.8904762
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>D3.chart Boilerplate Example</title>
<link rel=stylesheet href="style.css" type="text/css" media=screen>
<script src='http://d3js.org/d3.v4.min.js' charset="utf-8"></script>
<!-- <script src='https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js' charset="utf-8"></script> -->
</head>
<body>
<!-- <script src="script.js"></script> -->
<script>
/* global d3, _ */
// (function() {
var margin = {top: 30, right: 20, bottom: 100, left: 50},
margin2 = {top: 210, right: 20, bottom: 20, left: 50},
width = 764 - margin.left - margin.right,
height = 483 - margin.top - margin.bottom -60,
height2 = 283 - margin2.top - margin2.bottom;
var parseDate = d3.timeParse('%d/%m/%Y'),
bisectDate = d3.bisector(function(d) { return d.date; }).left;
var x = d3.scaleTime().range([0, width]),
x2 = d3.scaleTime().range([0, width]),
y = d3.scaleLinear().range([height, 0]),
y1 = d3.scaleLinear().range([height, 0]),
y2 = d3.scaleLinear().range([height2, 0]),
y3 = d3.scaleLinear().range([60, 0]);
var xAxis = d3.axisBottom(x),
xAxis2 = d3.axisBottom(x2),
yAxis = d3.axisLeft(y);
var priceLine = d3.line()
// check out line.curve and curve factor or curves
.curve(d3.curveMonotoneX)
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.price); });
var avgLine = d3.line()
.curve(d3.curveMonotoneX)
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.average); });
var area2 = d3.area()
.curve(d3.curveMonotoneX)
.x(function(d) { return x2(d.date); })
.y0(height2)
.y1(function(d) { return y2(d.price); });
var svg = d3.select('body').append('svg')
.attr('class', 'chart')
.attr('width', width + margin.left + margin.right)
.attr('height', height + margin.top + margin.bottom + 60);
svg.append('defs').append('clipPath')
.attr('id', 'clip')
.append('rect')
.attr('width', width)
.attr('height', height);
var make_y_axis = function () {
return d3.axisLeft(y)
.ticks(3);
};
var focus = svg.append('g')
.attr('class', 'focus')
.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
var barsGroup = svg.append('g')
.attr('class', 'volume')
.attr('clip-path', 'url(#clip)') // added clip-path css
.attr('transform', 'translate(' + margin.left + ',' + (margin.top + 60 + 20 + 150) + ')');
var context = svg.append('g')
.attr('class', 'context')
.attr('transform', 'translate(' + margin2.left + ',' + (margin2.top + 60 + 150) + ')');
var legend = svg.append('g')
.attr('class', 'chart__legend')
.attr('width', width)
.attr('height', 30)
.attr('transform', 'translate(' + margin2.left + ', 10)');
legend.append('text')
.attr('class', 'chart__symbol')
.text('NASDAQ: AAPL')
var rangeSelection = legend
.append('g')
.attr('class', 'chart__range-selection')
.attr('transform', 'translate(110, 0)');
d3.csv('aapl.csv', type, function(err, data) {
// var brush = d3.svg.brush()
// .x(x2)
// .on('brush', brushed);
var brush = d3.brushX()
.extent([[0, 0], [width, height2]])
.on("brush", brushed);
// console.log(brush.extent()());
var xRange = d3.extent(data.map(function(d) { return d.date; }));
// console.log(xRange)
x.domain(xRange);
y.domain(d3.extent(data.map(function(d) { return d.price; })));
y3.domain(d3.extent(data.map(function(d) { return d.volume; })));
x2.domain(x.domain());
y2.domain(y.domain());
var min = d3.min(data.map(function(d) { return d.price; }));
var max = d3.max(data.map(function(d) { return d.price; }));
var range = legend.append('text')
.text((new Date(xRange[0])).toDateString() + ' - ' + (new Date(xRange[1]).toDateString()))
.style('text-anchor', 'end')
.attr('transform', 'translate(' + width + ', 0)');
focus.append('g')
.attr('class', 'chart__grid')
.call(make_y_axis()
// .tickSizeInner(-width)
// .tickSizeOuter(-width)
.tickSize(-width)
.tickFormat(''));
var averageChart = focus.append('path')
.datum(data)
.attr('class', 'chart__line chart__average--focus line')
.attr('d', avgLine);
var priceChart = focus.append('path')
.datum(data)
.attr('class', 'chart__line chart__price--focus line')
.attr('d', priceLine);
focus.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0 ,' + height + ')')
.call(xAxis);
focus.append('g')
.attr('class', 'y axis')
.attr('transform', 'translate(12, 0)')
.call(yAxis);
// volume bars, no x-axis for bars
var focusGraph = barsGroup.selectAll('rect')
.data(data)
.enter().append('rect')
.attr('class', 'chart__bars')
.attr('x', function(d, i) { return x(d.date); })
.attr('y', function(d) { return 155 - y3(d.volume); })
.attr('width', 1)
.attr('height', function(d) { return y3(d.volume); });
var helper = focus.append('g')
.attr('class', 'chart__helper')
.style('text-anchor', 'end')
.attr('transform', 'translate(' + width + ', 0)');
var helperText = helper.append('text')
var priceTooltip = focus.append('g')
.attr('class', 'chart__tooltip--price')
.append('circle')
.style('display', "none")
.attr('r', 2.5);
var averageTooltip = focus.append('g')
.attr('class', 'chart__tooltip--average')
.append('circle')
.style('display', "none")
.attr('r', 2.5);
var mouseArea = svg.append('g')
.attr('class', 'chart__mouse')
.append('rect')
.attr('class', 'chart__overlay')
.attr('width', width)
.attr('height', height)
.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
.on('mouseover', function() {
helper.style('display', null);
priceTooltip.style('display', null);
averageTooltip.style('display', null);
})
.on('mouseout', function() {
helper.style('display', 'none');
priceTooltip.style('display', "none");
averageTooltip.style('display', 'none');
})
.on('mousemove', mousemove);
context.append('path')
.datum(data)
.attr('class', 'chart__area area')
.attr('d', area2);
context.append('g')
.attr('class', 'x axis chart__axis--context')
.attr('y', 0)
.attr('transform', 'translate(0,' + (height2 - 22) + ')')
.call(xAxis2);
context.append('g')
.attr('class', 'x-brush')
.call(brush)
.call(brush.move, x2.range())
.selectAll('rect')
.attr('y', -6)
.attr('height', height2 + 7);
function mousemove() {
// convert mouse (x,y)'s x to date
var x0 = x.invert(d3.mouse(this)[0]);
// console.log(d3.mouse(this)[0])
// console.log("x0 is ", x0)
var i = bisectDate(data, x0, 1);
// var i = bisectDate(data, data[2].date, 1);
// console.log(i);
var d0 = data[i - 1];
var d1 = data[i];
// if mouse is at the first date, let d be d0; if mouse is beyond the first date, let d be d1
var d = x0 - d0.date > d1.date - x0 ? d1 : d0;
// console.log(d.date);
helperText.text((new Date(d.date)).toDateString() + ' - Price: ' + d.price + ' Avg: ' + d.average);
priceTooltip.attr('transform', 'translate(' + x(d.date) + ',' + y(d.price) + ')');
averageTooltip.attr('transform', 'translate(' + x(d.date) + ',' + y(d.average) + ')');
}
function brushed() {
// if (d3.event.sourceEvent && d3.event.sourceEvent.type === "zoom") return;
var s = d3.event.selection || x2.range();
x.domain(s.map(x2.invert, x2));
// console.log(d3.extent(data, function(d){return d.date})); // total width date range
// console.log(x.domain());// brushed area dates
y.domain([
d3.min(data.map(function(d) { return (d.date >= x.domain()[0] && d.date <= x.domain()[1]) ? d.price : min; })), // min here is minimum price of data
d3.max(data.map(function(d) { return (d.date >= x.domain()[0] && d.date <= x.domain()[1]) ? d.price : max; })) // max here is maximum price of data
]);
range.text((new Date(x.domain()[0])).toDateString() + ' - ' + (new Date(x.domain()[1])).toDateString())
// focusGraph has many rects, binding data, but x is updated with new domain
// therefore, x(d.date) will only reflect brushed dataset
focusGraph.attr('x', function(d, i) { return x(d.date); });
var days = Math.ceil((x.domain()[1] - x.domain()[0]) / (24 * 3600 * 1000))
// if zoom in on period of less 40 days, set barwidth to be (40-days)*5/6
// if zoom in n period over 40 days, set barwidth to be 5px
focusGraph.attr('width', (40 > days) ? (40 - days) * 5 / 6 : 5)
// }
priceChart.attr('d', priceLine);
averageChart.attr('d', avgLine);
focus.select('.x.axis').call(xAxis);
focus.select('.y.axis').call(yAxis);
}
var dateRange = ['1w', '1m', '3m', '6m', '1y', '5y'],
rangeName;//added
for (var i = 0, l = dateRange.length; i < l; i ++) {
var v = dateRange[i];
rangeSelection
.append('text')
.attr('class', 'chart__range-selection')
.text(v)
.attr('transform', 'translate(' + (18 * i) + ', 0)')
.on('click', function(d) {
rangeName = this.textContent
focusOnRange(rangeName);
// console.log("rangeName is ", rangeName);
// console.log("rangeName is string?", typeof rangeName)
// select the string on range
});
}
function focusOnRange(rangeName) {
var today = new Date(data[data.length - 1].date)
var ext = new Date(data[data.length - 1].date)
if (rangeName === '1m')
ext.setMonth(ext.getMonth() - 1)
if (rangeName === '1w')
ext.setDate(ext.getDate() - 7)
if (rangeName === '3m')
ext.setMonth(ext.getMonth() - 3)
if (rangeName === '6m')
ext.setMonth(ext.getMonth() - 6)
if (rangeName === '1y')
ext.setFullYear(ext.getFullYear() - 1)
if (rangeName === '5y')
ext.setFullYear(ext.getFullYear() - 5)
x.domain([ext, today]);
// console.log(x.domain());
// x2.domain(x.domain());
context.select(".x-brush").call(brush.move, [x2(x.domain()[0]), x2(x.domain()[1])]);
}
})// end Data
function type(d) {
return {
date : parseDate(d.Date),
price : +d.Close,
average : +d.Average,
volume : +d.Volume, // scale volume smaller
}
}
// }());
</script>
</body>
</html>
/* global d3, _ */
// (function() {
var margin = {top: 30, right: 20, bottom: 100, left: 50},
margin2 = {top: 210, right: 20, bottom: 20, left: 50},
width = 764 - margin.left - margin.right,
height = 483 - margin.top - margin.bottom -60,
height2 = 283 - margin2.top - margin2.bottom;
var parseDate = d3.timeParse('%d/%m/%Y'),
bisectDate = d3.bisector(function(d) { return d.date; }).left;
var x = d3.scaleTime().range([0, width]),
x2 = d3.scaleTime().range([0, width]),
y = d3.scaleLinear().range([height, 0]),
y1 = d3.scaleLinear().range([height, 0]),
y2 = d3.scaleLinear().range([height2, 0]),
y3 = d3.scaleLinear().range([60, 0]);
var xAxis = d3.axisBottom(x),
xAxis2 = d3.axisBottom(x2),
yAxis = d3.axisLeft(y);
var priceLine = d3.line()
// check out line.curve and curve factor or curves
.curve(d3.curveMonotoneX)
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.price); });
var avgLine = d3.line()
.curve(d3.curveMonotoneX)
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.average); });
var area2 = d3.area()
.curve(d3.curveMonotoneX)
.x(function(d) { return x2(d.date); })
.y0(height2)
.y1(function(d) { return y2(d.price); });
var svg = d3.select('body').append('svg')
.attr('class', 'chart')
.attr('width', width + margin.left + margin.right)
.attr('height', height + margin.top + margin.bottom + 60);
svg.append('defs').append('clipPath')
.attr('id', 'clip')
.append('rect')
.attr('width', width)
.attr('height', height);
var make_y_axis = function () {
return d3.axisLeft(y)
.ticks(3);
};
var focus = svg.append('g')
.attr('class', 'focus')
.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')');
var barsGroup = svg.append('g')
.attr('class', 'volume')
.attr('clip-path', 'url(#clip)') // added clip-path css
.attr('transform', 'translate(' + margin.left + ',' + (margin.top + 60 + 20 + 150) + ')');
var context = svg.append('g')
.attr('class', 'context')
.attr('transform', 'translate(' + margin2.left + ',' + (margin2.top + 60 + 150) + ')');
var legend = svg.append('g')
.attr('class', 'chart__legend')
.attr('width', width)
.attr('height', 30)
.attr('transform', 'translate(' + margin2.left + ', 10)');
legend.append('text')
.attr('class', 'chart__symbol')
.text('NASDAQ: AAPL')
var rangeSelection = legend
.append('g')
.attr('class', 'chart__range-selection')
.attr('transform', 'translate(110, 0)');
d3.csv('aapl.csv', type, function(err, data) {
// var brush = d3.svg.brush()
// .x(x2)
// .on('brush', brushed);
var brush = d3.brushX()
.extent([[0, 0], [width, height2]])
.on("brush", brushed);
// console.log(brush.extent()());
var xRange = d3.extent(data.map(function(d) { return d.date; }));
// console.log(xRange)
x.domain(xRange);
y.domain(d3.extent(data.map(function(d) { return d.price; })));
y3.domain(d3.extent(data.map(function(d) { return d.volume; })));
x2.domain(x.domain());
y2.domain(y.domain());
var min = d3.min(data.map(function(d) { return d.price; }));
var max = d3.max(data.map(function(d) { return d.price; }));
var range = legend.append('text')
.text((new Date(xRange[0])).toDateString() + ' - ' + (new Date(xRange[1]).toDateString()))
.style('text-anchor', 'end')
.attr('transform', 'translate(' + width + ', 0)');
focus.append('g')
.attr('class', 'y chart__grid')
.call(make_y_axis()
// .tickSizeInner(-width)
// .tickSizeOuter(-width)
.tickSize(-width)
.tickFormat(''));
var averageChart = focus.append('path')
.datum(data)
.attr('class', 'chart__line chart__average--focus line')
.attr('d', avgLine);
var priceChart = focus.append('path')
.datum(data)
.attr('class', 'chart__line chart__price--focus line')
.attr('d', priceLine);
focus.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0 ,' + height + ')')
.call(xAxis);
focus.append('g')
.attr('class', 'y axis')
.attr('transform', 'translate(12, 0)')
.call(yAxis);
// volume bars, no x-axis for bars
var focusGraph = barsGroup.selectAll('rect')
.data(data)
.enter().append('rect')
.attr('class', 'chart__bars')
.attr('x', function(d, i) { return x(d.date); })
.attr('y', function(d) { return 155 - y3(d.volume); })
.attr('width', 1)
.attr('height', function(d) { return y3(d.volume); });
var helper = focus.append('g')
.attr('class', 'chart__helper')
.style('text-anchor', 'end')
.attr('transform', 'translate(' + width + ', 0)');
var helperText = helper.append('text')
var priceTooltip = focus.append('g')
.attr('class', 'chart__tooltip--price')
.append('circle')
.style('display', "none")
.attr('r', 2.5);
var averageTooltip = focus.append('g')
.attr('class', 'chart__tooltip--average')
.append('circle')
.style('display', "none")
.attr('r', 2.5);
var mouseArea = svg.append('g')
.attr('class', 'chart__mouse')
.append('rect')
.attr('class', 'chart__overlay')
.attr('width', width)
.attr('height', height)
.attr('transform', 'translate(' + margin.left + ',' + margin.top + ')')
.on('mouseover', function() {
helper.style('display', null);
priceTooltip.style('display', null);
averageTooltip.style('display', null);
})
.on('mouseout', function() {
helper.style('display', 'none');
priceTooltip.style('display', "none");
averageTooltip.style('display', 'none');
})
.on('mousemove', mousemove);
context.append('path')
.datum(data)
.attr('class', 'chart__area area')
.attr('d', area2);
context.append('g')
.attr('class', 'x axis chart__axis--context')
.attr('y', 0)
.attr('transform', 'translate(0,' + (height2 - 22) + ')')
.call(xAxis2);
context.append('g')
.attr('class', 'x-brush')
.call(brush)
.call(brush.move, x2.range())
.selectAll('rect')
.attr('y', -6)
.attr('height', height2 + 7);
function mousemove() {
// convert mouse (x,y)'s x to date
var x0 = x.invert(d3.mouse(this)[0]);
// console.log(d3.mouse(this)[0])
// console.log("x0 is ", x0)
var i = bisectDate(data, x0, 1);
// var i = bisectDate(data, data[2].date, 1);
// console.log(i);
var d0 = data[i - 1];
var d1 = data[i];
// if mouse is at the first date, let d be d0; if mouse is beyond the first date, let d be d1
var d = x0 - d0.date > d1.date - x0 ? d1 : d0;
// console.log(d.date);
helperText.text((new Date(d.date)).toDateString() + ' - Price: ' + d.price + ' Avg: ' + d.average);
priceTooltip.attr('transform', 'translate(' + x(d.date) + ',' + y(d.price) + ')');
averageTooltip.attr('transform', 'translate(' + x(d.date) + ',' + y(d.average) + ')');
}
function brushed() {
// if (d3.event.sourceEvent && d3.event.sourceEvent.type === "zoom") return;
var s = d3.event.selection || x2.range();
x.domain(s.map(x2.invert, x2));
// console.log(d3.extent(data, function(d){return d.date})); // total width date range
// console.log(x.domain());// brushed area dates
y.domain([
d3.min(data.map(function(d) { return (d.date >= x.domain()[0] && d.date <= x.domain()[1]) ? d.price : min; })), // min here is minimum price of data
d3.max(data.map(function(d) { return (d.date >= x.domain()[0] && d.date <= x.domain()[1]) ? d.price : max; })) // max here is maximum price of data
]);
range.text((new Date(x.domain()[0])).toDateString() + ' - ' + (new Date(x.domain()[1])).toDateString())
// focusGraph has many rects, binding data, but x is updated with new domain
// therefore, x(d.date) will only reflect brushed dataset
focusGraph.attr('x', function(d, i) { return x(d.date); });
var days = Math.ceil((x.domain()[1] - x.domain()[0]) / (24 * 3600 * 1000))
// if zoom in on period of less 40 days, set barwidth to be (40-days)*5/6
// if zoom in n period over 40 days, set barwidth to be 5px
focusGraph.attr('width', (40 > days) ? (40 - days) * 5 / 6 : 5)
// }
priceChart.attr('d', priceLine);
averageChart.attr('d', avgLine);
focus.select('.x.axis').call(xAxis);
focus.select('.y.axis').call(yAxis);
}
var dateRange = ['1w', '1m', '3m', '6m', '1y', '5y'],
rangeName;//added
for (var i = 0, l = dateRange.length; i < l; i ++) {
var v = dateRange[i];
rangeSelection
.append('text')
.attr('class', 'chart__range-selection')
.text(v)
.attr('transform', 'translate(' + (18 * i) + ', 0)')
.on('click', function(d) {
rangeName = this.textContent
focusOnRange(rangeName);
// console.log("rangeName is ", rangeName);
// console.log("rangeName is string?", typeof rangeName)
// select the string on range
});
}
function focusOnRange(rangeName) {
var today = new Date(data[data.length - 1].date)
var ext = new Date(data[data.length - 1].date)
if (rangeName === '1m')
ext.setMonth(ext.getMonth() - 1)
if (rangeName === '1w')
ext.setDate(ext.getDate() - 7)
if (rangeName === '3m')
ext.setMonth(ext.getMonth() - 3)
if (rangeName === '6m')
ext.setMonth(ext.getMonth() - 6)
if (rangeName === '1y')
ext.setFullYear(ext.getFullYear() - 1)
if (rangeName === '5y')
ext.setFullYear(ext.getFullYear() - 5)
x.domain([ext, today]);
// console.log(x.domain());
// x2.domain(x.domain());
context.select(".x-brush").call(brush.move, [x2(x.domain()[0]), x2(x.domain()[1])]);
}
})// end Data
function type(d) {
return {
date : parseDate(d.Date),
price : +d.Close,
average : +d.Average,
volume : +d.Volume, // scale volume smaller
}
}
// }());
.chart__grid {
fill: "green";
opacity: 0.5;
}
svg {
font: 10px sans-serif;
}
/* no apparent change */
.area {
fill: rgba(255,0,0,0.9);
clip-path: url("#clip");
}
/* control axis-path and axis-line */
.axis path,
.axis line {
fill: none;
stroke: #65b86e;
shape-rendering: crispEdges;
}
/* .brush .extent {
stroke: #e50000;
fill-opacity: 0.125;
shape-rendering: crispEdges;
}
*/
/*.chart is for svg
svg's texts control
*/
.chart text {
fill: #ae7e94;
}
/* path created both price and avg-price
1. fill: none to get rid of area
2. not sure meaning of clip-path: url("#clip");
*/
.chart__line {
fill: none;
stroke-width: 2px;
clip-path: url("#clip");
}
/* price line control */
.chart__price--focus {
stroke-width: 1.5px;
stroke: #28b86b;
}
/* avg line control */
.chart__average--focus {
stroke-width: 5px;
stroke: #ff0c00;
opacity: 0.3;
}
/* same to focus panel */
.chart__overlay {
opacity: 0;
pointer-events: all;
}
/* control brush context region*/
.x brush {
cursor: move;
fill: none;
pointer-events: all;
}
/* control price circle */
.chart__tooltip--price {
fill: none;
stroke: #b70080;
}
/* control avg-price circle */
.chart__tooltip--average {
fill: none;
stroke: #00feff;
}
/* Volume bar controls */
.chart__bars {
fill: #9adf9c;
opacity: 1;
}
/* rangeName controls 1w, 1m 3m 6m, 5y */
.chart__range-selection text {
cursor: pointer;
text-decoration: underline;
fill: #b82869;
}
/* context x-axis text */
.chart__axis--context text {
fill: #ae7e89;
}
/* hide x-axis on context */
.chart__axis--context path,
.chart__axis--context line {
display: none;
}
/* hide years of context x-axis */
.chart__axis--context .tick:nth-child(odd) {
display: none;
}
/* control context area (include bottom line) color */
.chart__area {
fill: #6cc9f8;
stroke: #34ba39;
}
/* .extent {
fill: #e2f0ff;
fill: #3587bc;
fill-opacity: 0.3;
}
*/
/* yes */
.y.axis .tick text {
text-anchor: start !important;
fill: #965e8e;
}
/* .y.axis .tick line {
display: none;
} */
.y.axis path {
display: none;
}
.chart__grid
stroke #e7eef4
opacity 0.3
svg
font 10px sans-serif
.area
fill rgba(255,100,100,0.5)
clip-path url("#clip")
.axis path,
.axis line
fill none
stroke #e7eef4
shape-rendering crispEdges
.brush .extent
stroke #fff
fill-opacity 0.125
shape-rendering crispEdges
/*New*/
.chart
text
fill #7F8FAF
&__line
fill none
stroke-width 1.2px
clip-path url("#clip")
&__price--focus
stroke-width 2px
stroke #2980b9
&__average--focus
stroke-width 2px
stroke red
opacity 0.3
&__overlay
opacity 0
pointer-events: all
&__tooltip--price
fill none
stroke red
&__tooltip--average
fill none
stroke red
&__bars
fill #99C5DF
opacity 1
&__range-selection
text
cursor pointer
text-decoration underline
fill #2980B9
.chart__axis--context
text
fill #7F8FAF
.chart__axis--context .tick:nth-child(odd)
display: none
.chart__axis--context path,
.chart__axis--context line
display: none
.chart__area
fill: #E6F6FE
stroke: #3587BC
.extent
fill: #E2F0FF
fill: #3587BC
fill-opacity: 0.3
.y.axis
.tick
text
text-anchor start !important
fill #7F8FAF
line
display none
path
display none
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment