ml-finance-python
python scripts for finance machine learning
git clone https://9o.is/git/ml-finance-python.git
notebook.ipynb
(111168B)
1 {
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "metadata": {
6 "collapsed": true
7 },
8 "source": [
9 "# EventVestor: 13D Filings\n",
10 "\n",
11 "In this notebook, we'll take a look at EventVestor's *13D Filings* dataset, available on the [Quantopian Store](https://www.quantopian.com/store). This dataset spans January 01, 2007 through the current day, and documents 13D filings with the SEC by activist shareholders disclosing a beneficial ownership of 5% or more.\n",
12 "\n",
13 "## Notebook Contents\n",
14 "\n",
15 "There are two ways to access the data and you'll find both of them listed below. Just click on the section you'd like to read through.\n",
16 "\n",
17 "- <a href='#interactive'><strong>Interactive overview</strong></a>: This is only available on Research and uses blaze to give you access to large amounts of data. Recommended for exploration and plotting.\n",
18 "- <a href='#pipeline'><strong>Pipeline overview</strong></a>: Data is made available through pipeline which is available on both the Research & Backtesting environment. Recommended for custom factor development and moving back & forth between research/backtesting.\n",
19 "\n",
20 "### Free samples and limits\n",
21 "One key caveat: we limit the number of results returned from any given expression to 10,000 to protect against runaway memory usage. To be clear, you have access to all the data server side. We are limiting the size of the responses back from Blaze.\n",
22 "\n",
23 "There is a *free* version of this dataset as well as a paid one. The free sample includes data until 2 months prior to the current date.\n",
24 "\n",
25 "To access the most up-to-date values for this data set for trading a live algorithm (as with other partner sets), you need to purchase acess to the full set.\n",
26 "\n",
27 "With preamble in place, let's get started:\n",
28 "\n",
29 "<a id='interactive'></a>\n",
30 "#Interactive Overview\n",
31 "### Accessing the data with Blaze and Interactive on Research\n",
32 "Partner datasets are available on Quantopian Research through an API service known as [Blaze](http://blaze.pydata.org). Blaze provides the Quantopian user with a convenient interface to access very large datasets, in an interactive, generic manner.\n",
33 "\n",
34 "Blaze provides an important function for accessing these datasets. Some of these sets are many millions of records. Bringing that data directly into Quantopian Research directly just is not viable. So Blaze allows us to provide a simple querying interface and shift the burden over to the server side.\n",
35 "\n",
36 "It is common to use Blaze to reduce your dataset in size, convert it over to Pandas and then to use Pandas for further computation, manipulation and visualization.\n",
37 "\n",
38 "Helpful links:\n",
39 "* [Query building for Blaze](http://blaze.readthedocs.io/en/latest/queries.html)\n",
40 "* [Pandas-to-Blaze dictionary](http://blaze.readthedocs.io/en/latest/rosetta-pandas.html)\n",
41 "* [SQL-to-Blaze dictionary](http://blaze.readthedocs.io/en/latest/rosetta-sql.html).\n",
42 "\n",
43 "\n",
44 "Once you've limited the size of your Blaze object, you can convert it to a Pandas DataFrames using:\n",
45 "> `from odo import odo` \n",
46 "> `odo(expr, pandas.DataFrame)`\n",
47 "\n",
48 "\n",
49 "###To see how this data can be used in your algorithm, search for the `Pipeline Overview` section of this notebook or head straight to <a href='#pipeline'>Pipeline Overview</a>"
50 ]
51 },
52 {
53 "cell_type": "code",
54 "execution_count": 3,
55 "metadata": {
56 "collapsed": false
57 },
58 "outputs": [],
59 "source": [
60 "# import the dataset\n",
61 "# from quantopian.interactive.data.eventvestor import _13d_filings as dataset\n",
62 "# or if you want to import the free dataset, use:\n",
63 "from quantopian.interactive.data.eventvestor import _13d_filings_free as dataset\n",
64 "\n",
65 "# import data operations\n",
66 "from odo import odo\n",
67 "# import other libraries we will use\n",
68 "import pandas as pd"
69 ]
70 },
71 {
72 "cell_type": "code",
73 "execution_count": 4,
74 "metadata": {
75 "collapsed": false
76 },
77 "outputs": [
78 {
79 "data": {
80 "text/plain": [
81 "dshape(\"\"\"var * {\n",
82 " event_id: ?float64,\n",
83 " asof_date: datetime,\n",
84 " trade_date: ?datetime,\n",
85 " symbol: ?string,\n",
86 " event_type: ?string,\n",
87 " event_headline: ?string,\n",
88 " percent_shares: ?float64,\n",
89 " number_shares: ?float64,\n",
90 " acquiring_entity: ?string,\n",
91 " event_rating: ?float64,\n",
92 " timestamp: datetime,\n",
93 " sid: ?int64\n",
94 " }\"\"\")"
95 ]
96 },
97 "execution_count": 4,
98 "metadata": {},
99 "output_type": "execute_result"
100 }
101 ],
102 "source": [
103 "# Let's use blaze to understand the data a bit using Blaze dshape()\n",
104 "dataset.dshape"
105 ]
106 },
107 {
108 "cell_type": "code",
109 "execution_count": 6,
110 "metadata": {
111 "collapsed": false
112 },
113 "outputs": [
114 {
115 "data": {
116 "text/html": [
117 "1960"
118 ],
119 "text/plain": [
120 "1960"
121 ]
122 },
123 "execution_count": 6,
124 "metadata": {},
125 "output_type": "execute_result"
126 }
127 ],
128 "source": [
129 "# And how many rows are there?\n",
130 "# N.B. we're using a Blaze function to do this, not len()\n",
131 "dataset.count()"
132 ]
133 },
134 {
135 "cell_type": "code",
136 "execution_count": 7,
137 "metadata": {
138 "collapsed": false
139 },
140 "outputs": [
141 {
142 "data": {
143 "text/html": [
144 "<table border=\"1\" class=\"dataframe\">\n",
145 " <thead>\n",
146 " <tr style=\"text-align: right;\">\n",
147 " <th></th>\n",
148 " <th>event_id</th>\n",
149 " <th>asof_date</th>\n",
150 " <th>trade_date</th>\n",
151 " <th>symbol</th>\n",
152 " <th>event_type</th>\n",
153 " <th>event_headline</th>\n",
154 " <th>percent_shares</th>\n",
155 " <th>number_shares</th>\n",
156 " <th>acquiring_entity</th>\n",
157 " <th>event_rating</th>\n",
158 " <th>timestamp</th>\n",
159 " <th>sid</th>\n",
160 " </tr>\n",
161 " </thead>\n",
162 " <tbody>\n",
163 " <tr>\n",
164 " <th>0</th>\n",
165 " <td>60996</td>\n",
166 " <td>2007-08-21</td>\n",
167 " <td>2007-08-21</td>\n",
168 " <td>GGP</td>\n",
169 " <td>13D Issuer</td>\n",
170 " <td>General Trust Co. Discloses 23.9% Stake in Gen...</td>\n",
171 " <td>23.90</td>\n",
172 " <td>69644773</td>\n",
173 " <td>General Trust Company</td>\n",
174 " <td>1</td>\n",
175 " <td>2007-08-22</td>\n",
176 " <td>8817</td>\n",
177 " </tr>\n",
178 " <tr>\n",
179 " <th>1</th>\n",
180 " <td>60998</td>\n",
181 " <td>2007-08-24</td>\n",
182 " <td>2007-08-24</td>\n",
183 " <td>JNC</td>\n",
184 " <td>13D Issuer</td>\n",
185 " <td>UBS Discloses 6.3% stake in Nuveen Investments</td>\n",
186 " <td>6.30</td>\n",
187 " <td>5031458</td>\n",
188 " <td>UBS</td>\n",
189 " <td>1</td>\n",
190 " <td>2007-08-25</td>\n",
191 " <td>4150</td>\n",
192 " </tr>\n",
193 " <tr>\n",
194 " <th>2</th>\n",
195 " <td>61003</td>\n",
196 " <td>2007-08-30</td>\n",
197 " <td>2007-08-30</td>\n",
198 " <td>PDE</td>\n",
199 " <td>13D Issuer</td>\n",
200 " <td>SKAGEN Funds discloses 9.03% Stake in Pride In...</td>\n",
201 " <td>9.03</td>\n",
202 " <td>15053900</td>\n",
203 " <td>SKAGEN Funds</td>\n",
204 " <td>1</td>\n",
205 " <td>2007-08-31</td>\n",
206 " <td>6151</td>\n",
207 " </tr>\n",
208 " </tbody>\n",
209 "</table>"
210 ],
211 "text/plain": [
212 " event_id asof_date trade_date symbol event_type \\\n",
213 "0 60996 2007-08-21 2007-08-21 GGP 13D Issuer \n",
214 "1 60998 2007-08-24 2007-08-24 JNC 13D Issuer \n",
215 "2 61003 2007-08-30 2007-08-30 PDE 13D Issuer \n",
216 "\n",
217 " event_headline percent_shares \\\n",
218 "0 General Trust Co. Discloses 23.9% Stake in Gen... 23.90 \n",
219 "1 UBS Discloses 6.3% stake in Nuveen Investments 6.30 \n",
220 "2 SKAGEN Funds discloses 9.03% Stake in Pride In... 9.03 \n",
221 "\n",
222 " number_shares acquiring_entity event_rating timestamp sid \n",
223 "0 69644773 General Trust Company 1 2007-08-22 8817 \n",
224 "1 5031458 UBS 1 2007-08-25 4150 \n",
225 "2 15053900 SKAGEN Funds 1 2007-08-31 6151 "
226 ]
227 },
228 "execution_count": 7,
229 "metadata": {},
230 "output_type": "execute_result"
231 }
232 ],
233 "source": [
234 "# Let's see what the data looks like. We'll grab the first three rows.\n",
235 "dataset[:3]"
236 ]
237 },
238 {
239 "cell_type": "markdown",
240 "metadata": {},
241 "source": [
242 "Let's go over the columns:\n",
243 "- **event_id**: the unique identifier for this event.\n",
244 "- **asof_date**: EventVestor's timestamp of event capture.\n",
245 "- **trade_date**: for event announcements made before trading ends, trade_date is the same as event_date. For announcements issued after market close, trade_date is next market open day.\n",
246 "- **symbol**: stock ticker symbol of the affected company.\n",
247 "- **event_type**: this should always be *13D Issuer*.\n",
248 "- **event_headline**: a brief description of the event\n",
249 "- **percent_shares**: the percent of shares owned by the investor as per the 13D\n",
250 "- **number_shares**: the number of shares owned by the investor as per the 13D. Note: these shares are not split-adjusted in the way that the rest of our equity data is. We suggest using `percent_shares` with `market cap` (from Fundamentals) to get the total value of shares owned, and dividing by the `close_price` (from price data) to get the number of shares.\n",
251 "- **acquiring_entity**: the investor filing the 13D\n",
252 "- **event_rating**: this is always 1. The meaning of this is uncertain.\n",
253 "- **timestamp**: this is our timestamp on when we registered the data.\n",
254 "- **sid**: the equity's unique identifier. Use this instead of the symbol. Note: this sid represents the company the shares of which are being purchased, not the acquiring entity.\n",
255 "\n",
256 "We've done much of the data processing for you. Fields like `timestamp` and `sid` are standardized across all our Store Datasets, so the datasets are easy to combine. We have standardized the `sid` across all our equity databases.\n",
257 "\n",
258 "We can select columns and rows with ease. Below, we'll fetch all 13D filings by Carl Icahn."
259 ]
260 },
261 {
262 "cell_type": "code",
263 "execution_count": 9,
264 "metadata": {
265 "collapsed": false
266 },
267 "outputs": [
268 {
269 "data": {
270 "text/plain": [
271 "{u'Carl C. Icahn',\n",
272 " u'Carl C. Icahn',\n",
273 " u'Carl C. Icahn ',\n",
274 " u'Carl Icahn',\n",
275 " u'Icahn Group'}"
276 ]
277 },
278 "execution_count": 9,
279 "metadata": {},
280 "output_type": "execute_result"
281 }
282 ],
283 "source": [
284 "# first we find how Icahn is represented exactly in the `acquiring_entity` column\n",
285 "icahns = set(filter(lambda x: \"Icahn\" in x, dataset.acquiring_entity))\n",
286 "icahns"
287 ]
288 },
289 {
290 "cell_type": "code",
291 "execution_count": 10,
292 "metadata": {
293 "collapsed": false
294 },
295 "outputs": [
296 {
297 "data": {
298 "text/html": [
299 "<table border=\"1\" class=\"dataframe\">\n",
300 " <thead>\n",
301 " <tr style=\"text-align: right;\">\n",
302 " <th></th>\n",
303 " <th>timestamp</th>\n",
304 " <th>percent_shares</th>\n",
305 " <th>sid</th>\n",
306 " <th>acquiring_entity</th>\n",
307 " </tr>\n",
308 " </thead>\n",
309 " <tbody>\n",
310 " <tr>\n",
311 " <th>0</th>\n",
312 " <td>2008-05-23</td>\n",
313 " <td>6.54</td>\n",
314 " <td>374</td>\n",
315 " <td>Icahn Group</td>\n",
316 " </tr>\n",
317 " <tr>\n",
318 " <th>1</th>\n",
319 " <td>2008-08-12</td>\n",
320 " <td>6.03</td>\n",
321 " <td>3806</td>\n",
322 " <td>Carl C. Icahn</td>\n",
323 " </tr>\n",
324 " <tr>\n",
325 " <th>2</th>\n",
326 " <td>2009-12-18</td>\n",
327 " <td>11.28</td>\n",
328 " <td>16820</td>\n",
329 " <td>Carl C. Icahn</td>\n",
330 " </tr>\n",
331 " <tr>\n",
332 " <th>3</th>\n",
333 " <td>2010-05-14</td>\n",
334 " <td>11.92</td>\n",
335 " <td>10649</td>\n",
336 " <td>Carl C. Icahn</td>\n",
337 " </tr>\n",
338 " <tr>\n",
339 " <th>4</th>\n",
340 " <td>2010-05-28</td>\n",
341 " <td>6.86</td>\n",
342 " <td>4794</td>\n",
343 " <td>Carl C. Icahn</td>\n",
344 " </tr>\n",
345 " <tr>\n",
346 " <th>5</th>\n",
347 " <td>2010-06-09</td>\n",
348 " <td>9.67</td>\n",
349 " <td>23311</td>\n",
350 " <td>Carl C. Icahn</td>\n",
351 " </tr>\n",
352 " <tr>\n",
353 " <th>6</th>\n",
354 " <td>2010-12-18</td>\n",
355 " <td>5.80</td>\n",
356 " <td>8461</td>\n",
357 " <td>Carl C. Icahn</td>\n",
358 " </tr>\n",
359 " <tr>\n",
360 " <th>7</th>\n",
361 " <td>2011-02-12</td>\n",
362 " <td>9.08</td>\n",
363 " <td>1616</td>\n",
364 " <td>Carl C. Icahn</td>\n",
365 " </tr>\n",
366 " <tr>\n",
367 " <th>8</th>\n",
368 " <td>2011-06-18</td>\n",
369 " <td>6.95</td>\n",
370 " <td>3014</td>\n",
371 " <td>Carl C. Icahn</td>\n",
372 " </tr>\n",
373 " <tr>\n",
374 " <th>9</th>\n",
375 " <td>2011-07-01</td>\n",
376 " <td>9.51</td>\n",
377 " <td>5719</td>\n",
378 " <td>Carl C. Icahn</td>\n",
379 " </tr>\n",
380 " <tr>\n",
381 " <th>10</th>\n",
382 " <td>2011-07-29</td>\n",
383 " <td>9.98</td>\n",
384 " <td>1636</td>\n",
385 " <td>Carl C. Icahn</td>\n",
386 " </tr>\n",
387 " </tbody>\n",
388 "</table>"
389 ],
390 "text/plain": [
391 " timestamp percent_shares sid acquiring_entity\n",
392 "0 2008-05-23 6.54 374 Icahn Group\n",
393 "1 2008-08-12 6.03 3806 Carl C. Icahn\n",
394 "2 2009-12-18 11.28 16820 Carl C. Icahn \n",
395 "3 2010-05-14 11.92 10649 Carl C. Icahn\n",
396 "4 2010-05-28 6.86 4794 Carl C. Icahn\n",
397 "5 2010-06-09 9.67 23311 Carl C. Icahn\n",
398 "6 2010-12-18 5.80 8461 Carl C. Icahn\n",
399 "7 2011-02-12 9.08 1616 Carl C. Icahn\n",
400 "8 2011-06-18 6.95 3014 Carl C. Icahn\n",
401 "9 2011-07-01 9.51 5719 Carl C. Icahn\n",
402 "..."
403 ]
404 },
405 "execution_count": 10,
406 "metadata": {},
407 "output_type": "execute_result"
408 }
409 ],
410 "source": [
411 "# Since Carl Icahn is represented in several ways, we use `like` to capture all those ways\n",
412 "names = dataset[dataset.acquiring_entity.like(\"*Icahn*\")] \n",
413 "# now let's filter down to the percentage of shares, timestamp, and sid \n",
414 "names = names[['timestamp', 'percent_shares', 'sid', 'acquiring_entity']] \n",
415 "# # When displaying a Blaze Data Object, the printout is automatically truncated to ten rows. \n",
416 "names.sort('timestamp')"
417 ]
418 },
419 {
420 "cell_type": "markdown",
421 "metadata": {},
422 "source": [
423 "Finally, suppose we want a DataFrame of all 13D Filings in June 2013:"
424 ]
425 },
426 {
427 "cell_type": "code",
428 "execution_count": 13,
429 "metadata": {
430 "collapsed": false
431 },
432 "outputs": [
433 {
434 "data": {
435 "text/html": [
436 "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
437 "<table border=\"1\" class=\"dataframe\">\n",
438 " <thead>\n",
439 " <tr style=\"text-align: right;\">\n",
440 " <th></th>\n",
441 " <th>event_id</th>\n",
442 " <th>asof_date</th>\n",
443 " <th>trade_date</th>\n",
444 " <th>symbol</th>\n",
445 " <th>event_type</th>\n",
446 " <th>event_headline</th>\n",
447 " <th>percent_shares</th>\n",
448 " <th>number_shares</th>\n",
449 " <th>acquiring_entity</th>\n",
450 " <th>event_rating</th>\n",
451 " <th>timestamp</th>\n",
452 " <th>sid</th>\n",
453 " </tr>\n",
454 " </thead>\n",
455 " <tbody>\n",
456 " <tr>\n",
457 " <th>1740</th>\n",
458 " <td>1593869</td>\n",
459 " <td>2013-06-07</td>\n",
460 " <td>2013-06-07</td>\n",
461 " <td>STEI</td>\n",
462 " <td>13D Issuer</td>\n",
463 " <td>President and Fellows of Harvard College Discl...</td>\n",
464 " <td>6.17</td>\n",
465 " <td>5049950</td>\n",
466 " <td>President and Fellows of Harvard College</td>\n",
467 " <td>1</td>\n",
468 " <td>2013-06-08</td>\n",
469 " <td>7146</td>\n",
470 " </tr>\n",
471 " <tr>\n",
472 " <th>1741</th>\n",
473 " <td>1594348</td>\n",
474 " <td>2013-06-10</td>\n",
475 " <td>2013-06-10</td>\n",
476 " <td>BAXS</td>\n",
477 " <td>13D Issuer</td>\n",
478 " <td>James M. Shapiro Discloses 6.9% Stake in Baxan...</td>\n",
479 " <td>6.90</td>\n",
480 " <td>3111419</td>\n",
481 " <td>James M. Shapiro</td>\n",
482 " <td>1</td>\n",
483 " <td>2013-06-11</td>\n",
484 " <td>34871</td>\n",
485 " </tr>\n",
486 " <tr>\n",
487 " <th>1742</th>\n",
488 " <td>1594365</td>\n",
489 " <td>2013-06-10</td>\n",
490 " <td>2013-06-11</td>\n",
491 " <td>BAXS</td>\n",
492 " <td>13D Issuer</td>\n",
493 " <td>David Schnell Discloses 11.8% Stake in Baxano ...</td>\n",
494 " <td>11.80</td>\n",
495 " <td>5340616</td>\n",
496 " <td>David Schnell</td>\n",
497 " <td>1</td>\n",
498 " <td>2013-06-11</td>\n",
499 " <td>34871</td>\n",
500 " </tr>\n",
501 " <tr>\n",
502 " <th>1743</th>\n",
503 " <td>1594789</td>\n",
504 " <td>2013-06-10</td>\n",
505 " <td>2013-06-11</td>\n",
506 " <td>BAXS</td>\n",
507 " <td>13D Issuer</td>\n",
508 " <td>Wilfred E. Jaeger Discloses 8.2% Stake in Baxa...</td>\n",
509 " <td>8.20</td>\n",
510 " <td>3687896</td>\n",
511 " <td>Wilfred E. Jaeger</td>\n",
512 " <td>1</td>\n",
513 " <td>2013-06-11</td>\n",
514 " <td>34871</td>\n",
515 " </tr>\n",
516 " <tr>\n",
517 " <th>1744</th>\n",
518 " <td>1594802</td>\n",
519 " <td>2013-06-12</td>\n",
520 " <td>2013-06-12</td>\n",
521 " <td>ASI</td>\n",
522 " <td>13D Issuer</td>\n",
523 " <td>V. Prem Watsa Discloses 12.6% Stake in America...</td>\n",
524 " <td>12.60</td>\n",
525 " <td>1236214</td>\n",
526 " <td>V. Prem Watsa</td>\n",
527 " <td>1</td>\n",
528 " <td>2013-06-13</td>\n",
529 " <td>18233</td>\n",
530 " </tr>\n",
531 " <tr>\n",
532 " <th>1745</th>\n",
533 " <td>1595162</td>\n",
534 " <td>2013-06-17</td>\n",
535 " <td>2013-06-17</td>\n",
536 " <td>SFD</td>\n",
537 " <td>13D Issuer</td>\n",
538 " <td>Jeffrey C. Smith Discloses 5.7% Stake in Smith...</td>\n",
539 " <td>5.70</td>\n",
540 " <td>7962300</td>\n",
541 " <td>Jeffrey C. Smith</td>\n",
542 " <td>1</td>\n",
543 " <td>2013-06-18</td>\n",
544 " <td>6803</td>\n",
545 " </tr>\n",
546 " <tr>\n",
547 " <th>1746</th>\n",
548 " <td>1595164</td>\n",
549 " <td>2013-06-17</td>\n",
550 " <td>2013-06-17</td>\n",
551 " <td>AYR</td>\n",
552 " <td>13D Issuer</td>\n",
553 " <td>Marubeni Corporation Discloses 15.25% Stake in...</td>\n",
554 " <td>15.25</td>\n",
555 " <td>12320000</td>\n",
556 " <td>Marubeni Corporation</td>\n",
557 " <td>1</td>\n",
558 " <td>2013-06-18</td>\n",
559 " <td>32475</td>\n",
560 " </tr>\n",
561 " <tr>\n",
562 " <th>1747</th>\n",
563 " <td>1595165</td>\n",
564 " <td>2013-06-17</td>\n",
565 " <td>2013-06-18</td>\n",
566 " <td>CCBG</td>\n",
567 " <td>13D Issuer</td>\n",
568 " <td>Douglas W. Smith & E. Drew Mitchell Discloses ...</td>\n",
569 " <td>11.60</td>\n",
570 " <td>2011989</td>\n",
571 " <td>Douglas W. Smith & E. Drew Mitchell</td>\n",
572 " <td>1</td>\n",
573 " <td>2013-06-18</td>\n",
574 " <td>16448</td>\n",
575 " </tr>\n",
576 " <tr>\n",
577 " <th>1748</th>\n",
578 " <td>1595166</td>\n",
579 " <td>2013-06-17</td>\n",
580 " <td>2013-06-18</td>\n",
581 " <td>THI</td>\n",
582 " <td>13D Issuer</td>\n",
583 " <td>Adam Weiss Discloses 5.5% Stake in Tim Hortons</td>\n",
584 " <td>5.50</td>\n",
585 " <td>8400000</td>\n",
586 " <td>Adam Weiss</td>\n",
587 " <td>1</td>\n",
588 " <td>2013-06-18</td>\n",
589 " <td>28231</td>\n",
590 " </tr>\n",
591 " <tr>\n",
592 " <th>1749</th>\n",
593 " <td>1595180</td>\n",
594 " <td>2013-06-18</td>\n",
595 " <td>2013-06-19</td>\n",
596 " <td>BLC</td>\n",
597 " <td>13D Issuer</td>\n",
598 " <td>Gannett Co. Discloses 10.2% Series A Stake in ...</td>\n",
599 " <td>10.20</td>\n",
600 " <td>10734097</td>\n",
601 " <td>GCI</td>\n",
602 " <td>1</td>\n",
603 " <td>2013-06-19</td>\n",
604 " <td>931</td>\n",
605 " </tr>\n",
606 " <tr>\n",
607 " <th>1750</th>\n",
608 " <td>1595201</td>\n",
609 " <td>2013-06-18</td>\n",
610 " <td>2013-06-19</td>\n",
611 " <td>CYTK</td>\n",
612 " <td>13D Issuer</td>\n",
613 " <td>Amgen Discloses 7.58% Stake in Cytokinetics</td>\n",
614 " <td>7.58</td>\n",
615 " <td>11909406</td>\n",
616 " <td>AMGN</td>\n",
617 " <td>1</td>\n",
618 " <td>2013-06-19</td>\n",
619 " <td>26232</td>\n",
620 " </tr>\n",
621 " <tr>\n",
622 " <th>1751</th>\n",
623 " <td>1595216</td>\n",
624 " <td>2013-06-19</td>\n",
625 " <td>2013-06-19</td>\n",
626 " <td>PLUG</td>\n",
627 " <td>13D Issuer</td>\n",
628 " <td>Hans P. Black Discloses 9.72% Stake in Plug Power</td>\n",
629 " <td>9.72</td>\n",
630 " <td>7839000</td>\n",
631 " <td>Hans P. Black</td>\n",
632 " <td>1</td>\n",
633 " <td>2013-06-20</td>\n",
634 " <td>20776</td>\n",
635 " </tr>\n",
636 " <tr>\n",
637 " <th>1752</th>\n",
638 " <td>1596045</td>\n",
639 " <td>2013-06-21</td>\n",
640 " <td>2013-06-21</td>\n",
641 " <td>EVBS</td>\n",
642 " <td>13D Issuer</td>\n",
643 " <td>Castle Creek Capital Partners IV Discloses 9.9...</td>\n",
644 " <td>9.90</td>\n",
645 " <td>1061225</td>\n",
646 " <td>Castle Creek Capital Partners IV, LP</td>\n",
647 " <td>1</td>\n",
648 " <td>2013-06-22</td>\n",
649 " <td>18155</td>\n",
650 " </tr>\n",
651 " <tr>\n",
652 " <th>1753</th>\n",
653 " <td>1596343</td>\n",
654 " <td>2013-06-24</td>\n",
655 " <td>2013-06-25</td>\n",
656 " <td>BLC</td>\n",
657 " <td>13D Issuer</td>\n",
658 " <td>Dunia A. Shive Discloses 5.7% Stake in Belo Corp.</td>\n",
659 " <td>5.70</td>\n",
660 " <td>550900</td>\n",
661 " <td>Dunia A. Shive</td>\n",
662 " <td>1</td>\n",
663 " <td>2013-06-25</td>\n",
664 " <td>931</td>\n",
665 " </tr>\n",
666 " <tr>\n",
667 " <th>1754</th>\n",
668 " <td>1596589</td>\n",
669 " <td>2013-06-25</td>\n",
670 " <td>2013-06-25</td>\n",
671 " <td>PRKR</td>\n",
672 " <td>13D Issuer</td>\n",
673 " <td>Daniel M. Lewis Discloses 7.7% Stake in Parker...</td>\n",
674 " <td>7.70</td>\n",
675 " <td>6782862</td>\n",
676 " <td>Daniel M. Lewis</td>\n",
677 " <td>1</td>\n",
678 " <td>2013-06-26</td>\n",
679 " <td>10485</td>\n",
680 " </tr>\n",
681 " </tbody>\n",
682 "</table>\n",
683 "</div>"
684 ],
685 "text/plain": [
686 " event_id asof_date trade_date symbol event_type \\\n",
687 "1740 1593869 2013-06-07 2013-06-07 STEI 13D Issuer \n",
688 "1741 1594348 2013-06-10 2013-06-10 BAXS 13D Issuer \n",
689 "1742 1594365 2013-06-10 2013-06-11 BAXS 13D Issuer \n",
690 "1743 1594789 2013-06-10 2013-06-11 BAXS 13D Issuer \n",
691 "1744 1594802 2013-06-12 2013-06-12 ASI 13D Issuer \n",
692 "1745 1595162 2013-06-17 2013-06-17 SFD 13D Issuer \n",
693 "1746 1595164 2013-06-17 2013-06-17 AYR 13D Issuer \n",
694 "1747 1595165 2013-06-17 2013-06-18 CCBG 13D Issuer \n",
695 "1748 1595166 2013-06-17 2013-06-18 THI 13D Issuer \n",
696 "1749 1595180 2013-06-18 2013-06-19 BLC 13D Issuer \n",
697 "1750 1595201 2013-06-18 2013-06-19 CYTK 13D Issuer \n",
698 "1751 1595216 2013-06-19 2013-06-19 PLUG 13D Issuer \n",
699 "1752 1596045 2013-06-21 2013-06-21 EVBS 13D Issuer \n",
700 "1753 1596343 2013-06-24 2013-06-25 BLC 13D Issuer \n",
701 "1754 1596589 2013-06-25 2013-06-25 PRKR 13D Issuer \n",
702 "\n",
703 " event_headline percent_shares \\\n",
704 "1740 President and Fellows of Harvard College Discl... 6.17 \n",
705 "1741 James M. Shapiro Discloses 6.9% Stake in Baxan... 6.90 \n",
706 "1742 David Schnell Discloses 11.8% Stake in Baxano ... 11.80 \n",
707 "1743 Wilfred E. Jaeger Discloses 8.2% Stake in Baxa... 8.20 \n",
708 "1744 V. Prem Watsa Discloses 12.6% Stake in America... 12.60 \n",
709 "1745 Jeffrey C. Smith Discloses 5.7% Stake in Smith... 5.70 \n",
710 "1746 Marubeni Corporation Discloses 15.25% Stake in... 15.25 \n",
711 "1747 Douglas W. Smith & E. Drew Mitchell Discloses ... 11.60 \n",
712 "1748 Adam Weiss Discloses 5.5% Stake in Tim Hortons 5.50 \n",
713 "1749 Gannett Co. Discloses 10.2% Series A Stake in ... 10.20 \n",
714 "1750 Amgen Discloses 7.58% Stake in Cytokinetics 7.58 \n",
715 "1751 Hans P. Black Discloses 9.72% Stake in Plug Power 9.72 \n",
716 "1752 Castle Creek Capital Partners IV Discloses 9.9... 9.90 \n",
717 "1753 Dunia A. Shive Discloses 5.7% Stake in Belo Corp. 5.70 \n",
718 "1754 Daniel M. Lewis Discloses 7.7% Stake in Parker... 7.70 \n",
719 "\n",
720 " number_shares acquiring_entity event_rating \\\n",
721 "1740 5049950 President and Fellows of Harvard College 1 \n",
722 "1741 3111419 James M. Shapiro 1 \n",
723 "1742 5340616 David Schnell 1 \n",
724 "1743 3687896 Wilfred E. Jaeger 1 \n",
725 "1744 1236214 V. Prem Watsa 1 \n",
726 "1745 7962300 Jeffrey C. Smith 1 \n",
727 "1746 12320000 Marubeni Corporation 1 \n",
728 "1747 2011989 Douglas W. Smith & E. Drew Mitchell 1 \n",
729 "1748 8400000 Adam Weiss 1 \n",
730 "1749 10734097 GCI 1 \n",
731 "1750 11909406 AMGN 1 \n",
732 "1751 7839000 Hans P. Black 1 \n",
733 "1752 1061225 Castle Creek Capital Partners IV, LP 1 \n",
734 "1753 550900 Dunia A. Shive 1 \n",
735 "1754 6782862 Daniel M. Lewis 1 \n",
736 "\n",
737 " timestamp sid \n",
738 "1740 2013-06-08 7146 \n",
739 "1741 2013-06-11 34871 \n",
740 "1742 2013-06-11 34871 \n",
741 "1743 2013-06-11 34871 \n",
742 "1744 2013-06-13 18233 \n",
743 "1745 2013-06-18 6803 \n",
744 "1746 2013-06-18 32475 \n",
745 "1747 2013-06-18 16448 \n",
746 "1748 2013-06-18 28231 \n",
747 "1749 2013-06-19 931 \n",
748 "1750 2013-06-19 26232 \n",
749 "1751 2013-06-20 20776 \n",
750 "1752 2013-06-22 18155 \n",
751 "1753 2013-06-25 931 \n",
752 "1754 2013-06-26 10485 "
753 ]
754 },
755 "execution_count": 13,
756 "metadata": {},
757 "output_type": "execute_result"
758 }
759 ],
760 "source": [
761 "# we can call odo on the entire dataset\n",
762 "filings_df = odo(dataset, pd.DataFrame)\n",
763 "june = filings_df[(filings_df.timestamp < '2013-07-01') & ('2013-05-31'< filings_df.timestamp)]\n",
764 "june"
765 ]
766 },
767 {
768 "cell_type": "markdown",
769 "metadata": {},
770 "source": [
771 "<a id='pipeline'></a>\n",
772 "\n",
773 "#Pipeline Overview\n",
774 "\n",
775 "### Accessing the data in your algorithms & research\n",
776 "The only method for accessing partner data within algorithms running on Quantopian is via the pipeline API. Different data sets work differently but in the case of this data, you can add this data to your pipeline as follows:\n",
777 "\n",
778 "Import the data set here\n",
779 "> `from quantopian.pipeline.data.eventvestor import _13DFilings`\n",
780 "\n",
781 "Then in intialize() you could do something simple like adding the raw value of one of the fields to your pipeline:\n",
782 "> `pipe.add(_13DFilings.disclosure_date.latest, 'disclosure_date')`\n",
783 "\n",
784 "Pipeline usage is very similar between the backtester and Research so let's go over how to import this data through pipeline and view its outputs."
785 ]
786 },
787 {
788 "cell_type": "code",
789 "execution_count": 14,
790 "metadata": {
791 "collapsed": true
792 },
793 "outputs": [],
794 "source": [
795 "# Import necessary Pipeline modules\n",
796 "from quantopian.pipeline import Pipeline\n",
797 "from quantopian.research import run_pipeline\n",
798 "from quantopian.pipeline.factors import AverageDollarVolume"
799 ]
800 },
801 {
802 "cell_type": "code",
803 "execution_count": 15,
804 "metadata": {
805 "collapsed": false
806 },
807 "outputs": [],
808 "source": [
809 "# Import the datasets available\n",
810 "from quantopian.pipeline.data.eventvestor import _13DFilings\n",
811 "\n",
812 "# Builtin Factors for easy access\n",
813 "from quantopian.pipeline.factors.eventvestor import BusinessDaysSince13DFilingsDate"
814 ]
815 },
816 {
817 "cell_type": "markdown",
818 "metadata": {},
819 "source": [
820 "Now that we've imported the data, let's take a look at which fields are available for each dataset.\n",
821 "\n",
822 "You'll find the dataset, the available fields, and the datatypes for each of those fields."
823 ]
824 },
825 {
826 "cell_type": "code",
827 "execution_count": 70,
828 "metadata": {
829 "collapsed": false
830 },
831 "outputs": [
832 {
833 "name": "stdout",
834 "output_type": "stream",
835 "text": [
836 "Here are the list of available fields per dataset:\n",
837 "---------------------------------------------------\n",
838 "\n",
839 "Dataset: _13DFilings\n",
840 "\n",
841 "Fields:\n",
842 "disclosure_date - datetime64[ns]\n",
843 "percent_shares - float64\n",
844 "number_shares - float64\n",
845 "\n",
846 "\n",
847 "---------------------------------------------------\n",
848 "\n"
849 ]
850 }
851 ],
852 "source": [
853 "print \"Here are the list of available fields per dataset:\"\n",
854 "print \"---------------------------------------------------\\n\"\n",
855 "\n",
856 "def _print_fields(dataset):\n",
857 " print \"Dataset: %s\\n\" % dataset.__name__\n",
858 " print \"Fields:\"\n",
859 " for field in list(dataset.columns):\n",
860 " print \"%s - %s\" % (field.name, field.dtype)\n",
861 " print \"\\n\"\n",
862 "\n",
863 "_print_fields(_13DFilings)\n",
864 "\n",
865 "\n",
866 "print \"---------------------------------------------------\\n\""
867 ]
868 },
869 {
870 "cell_type": "markdown",
871 "metadata": {},
872 "source": [
873 "Now that we know what fields we have access to, let's see what this data looks like when we run it through Pipeline.\n",
874 "\n",
875 "\n",
876 "This is constructed the same way as you would in the backtester. For more information on using Pipeline in Research view this thread:\n",
877 "https://www.quantopian.com/posts/pipeline-in-research-build-test-and-visualize-your-factors-and-filters"
878 ]
879 },
880 {
881 "cell_type": "code",
882 "execution_count": 65,
883 "metadata": {
884 "collapsed": true
885 },
886 "outputs": [],
887 "source": [
888 "pipe = Pipeline()\n",
889 " \n",
890 "pipe.add(_13DFilings.disclosure_date.latest, \"last_disclosure_date\")\n",
891 "pipe.add(_13DFilings.percent_shares.latest, \"percent_shares\")\n",
892 "pipe.add(_13DFilings.number_shares.latest, \"number_shares\")\n",
893 "pipe.add(BusinessDaysSince13DFilingsDate(), \"business_days_since_last_filing\")"
894 ]
895 },
896 {
897 "cell_type": "code",
898 "execution_count": 66,
899 "metadata": {
900 "collapsed": false
901 },
902 "outputs": [],
903 "source": [
904 "# Setting some basic liquidity strings (just for good habit)\n",
905 "dollar_volume = AverageDollarVolume(window_length=20)\n",
906 "top_1000_most_liquid = dollar_volume.rank(ascending=False) < 1000\n",
907 "\n",
908 "pipe.set_screen(top_1000_most_liquid & BusinessDaysSince13DFilingsDate().notnan())"
909 ]
910 },
911 {
912 "cell_type": "code",
913 "execution_count": 67,
914 "metadata": {
915 "collapsed": false
916 },
917 "outputs": [
918 {
919 "data": {
920 "image/png": "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\npv923kx989mH6jXkiVTLN23dUZK0Z/umVK/t+3OLRg16wKl4D+xKvDO9+4BHLAXouNhYm33r332P\nJGnXlt+s17Fzm83+ro71q9nTdGDXVnXo1kc1kt1J36RVB5tx7dyywer1jHBm/zirSs16Kl2hsi5F\nnte7E0eqYbPWqYrZrtq2pKlqLkf+NyXN0UN7Mxy7I5w9/hWr1ZQknT9zyqo9LjZWr494SC3vfSDN\nO+iTdOjWR/55A1I9+0FKnELKPyDQ8kyA5C7cGbdC1RrpjgEA7kCRHgAAAAAAF1j9wyK17xpm9/XQ\nIsXU4O57FB8Xp3U/fWv1WvP2nVW8VFmdOXlMCbdvq1HztqmW7/fYSJUoU14z33pBG1f/qKirl3Xj\nerS2blit/3v5WQ1+erxT8das30SStPiT6YqJuqaoa1c0b/pbNvtGPDpCgcEh+vT9Sdq9daNuXo/R\n/p1btfzbBTb7ZzZWs9msmKhr2rl5g14fOVQLZkxWx+4RGv78pFTjFCleyhLXjevR2r11o+a9/5aK\nFC+liEdHOLVPknNm/2RE0rmydcNqm4VjV21bvaaJd45/O2+mYqKjdOrYEa36fqHLtsMWZ49/0gcO\nR/bvtmqfOuFp7d2xWQtmTFbXhqVT/ZdSwcJF9djY13Vg1zZ9PGWirl25pGtXLmnW5Jd1cPd2DR/3\nhtX8+kkO79slSbqr1b2u2gUA4BSTOeXEYQCQxe3bt0+1atXS3r17VbNmTaPDAZxiMpn01VdfKSzM\n/ht4AMiKJk6cqMWLF2vfvn1Gh4JcpGbNmurdu7cmTpzo8bHDwsJ05vINjX17hkP9kxcM6zZpoddn\nfJlmnyTJp+pY/vV8fThpvEa+Pk2t7+tuc5zoa1f11Zz3tGndCl08d0ZBIflVpVZ9hT30pKrWbuDw\nWFLinOZz3n1dOzb9qpioqypZpoL6DntGb48bbnOZE38f1ifvva59OzbLZPJSrYZNNWzURD3SrYVM\nXl76Yav1POOZiVWS/PMGKLRIcdWo31idevSz+0DWK5ci9fnMqdqyfpWuXrqofAVD1aRle/V7fJTV\n1Ckpx0naNnvtzuwfR/Z3SpcvXtDgTo1VsHBRfbJsk9W8767aNkmWIvXOzRt06+YN1WncXI+Pe11D\nOt/l8L5wtl1y/PhLUnxcnIZ1a64ixUvp7Tn/fYDlyNRCtvbzn3+s16JP3teRA3skSZWr11HY0KdU\n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\n0dJNCWYeUwAAAABJRU5ErkJggg==\n",
921 "text/plain": [
922 "<IPython.core.display.Image object>"
923 ]
924 },
925 "execution_count": 67,
926 "metadata": {},
927 "output_type": "execute_result"
928 }
929 ],
930 "source": [
931 "# The show_graph() method of pipeline objects produces a graph to show how it is being calculated.\n",
932 "pipe.show_graph(format='png')"
933 ]
934 },
935 {
936 "cell_type": "code",
937 "execution_count": 68,
938 "metadata": {
939 "collapsed": false
940 },
941 "outputs": [
942 {
943 "data": {
944 "text/html": [
945 "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
946 "<table border=\"1\" class=\"dataframe\">\n",
947 " <thead>\n",
948 " <tr style=\"text-align: right;\">\n",
949 " <th></th>\n",
950 " <th></th>\n",
951 " <th>business_days_since_last_filing</th>\n",
952 " <th>last_disclosure_date</th>\n",
953 " <th>number_shares</th>\n",
954 " <th>percent_shares</th>\n",
955 " </tr>\n",
956 " </thead>\n",
957 " <tbody>\n",
958 " <tr>\n",
959 " <th rowspan=\"30\" valign=\"top\">2013-11-01 00:00:00+00:00</th>\n",
960 " <th>Equity(717 [BAMM])</th>\n",
961 " <td>425</td>\n",
962 " <td>2012-03-16</td>\n",
963 " <td>8490139</td>\n",
964 " <td>53.200</td>\n",
965 " </tr>\n",
966 " <tr>\n",
967 " <th>Equity(2389 [COBR])</th>\n",
968 " <td>1036</td>\n",
969 " <td>2009-11-12</td>\n",
970 " <td>377947</td>\n",
971 " <td>5.800</td>\n",
972 " </tr>\n",
973 " <tr>\n",
974 " <th>Equity(2508 [ELSE])</th>\n",
975 " <td>1020</td>\n",
976 " <td>2009-12-04</td>\n",
977 " <td>181805</td>\n",
978 " <td>5.390</td>\n",
979 " </tr>\n",
980 " <tr>\n",
981 " <th>Equity(2586 [EQS])</th>\n",
982 " <td>1064</td>\n",
983 " <td>2009-10-05</td>\n",
984 " <td>737569</td>\n",
985 " <td>8.320</td>\n",
986 " </tr>\n",
987 " <tr>\n",
988 " <th>Equity(2902 [STRS])</th>\n",
989 " <td>472</td>\n",
990 " <td>2012-01-11</td>\n",
991 " <td>1405000</td>\n",
992 " <td>18.900</td>\n",
993 " </tr>\n",
994 " <tr>\n",
995 " <th>Equity(3536 [HFFC])</th>\n",
996 " <td>1027</td>\n",
997 " <td>2009-11-25</td>\n",
998 " <td>645000</td>\n",
999 " <td>9.860</td>\n",
1000 " </tr>\n",
1001 " <tr>\n",
1002 " <th>Equity(3778 [ICCC])</th>\n",
1003 " <td>1239</td>\n",
1004 " <td>2009-02-02</td>\n",
1005 " <td>189111</td>\n",
1006 " <td>6.300</td>\n",
1007 " </tr>\n",
1008 " <tr>\n",
1009 " <th>Equity(3947 [INS])</th>\n",
1010 " <td>1114</td>\n",
1011 " <td>2009-07-27</td>\n",
1012 " <td>2042800</td>\n",
1013 " <td>22.700</td>\n",
1014 " </tr>\n",
1015 " <tr>\n",
1016 " <th>Equity(4153 [JOB])</th>\n",
1017 " <td>1121</td>\n",
1018 " <td>2009-07-16</td>\n",
1019 " <td>9735287</td>\n",
1020 " <td>65.300</td>\n",
1021 " </tr>\n",
1022 " <tr>\n",
1023 " <th>Equity(4292 [KOSS])</th>\n",
1024 " <td>13</td>\n",
1025 " <td>2013-10-15</td>\n",
1026 " <td>2214476</td>\n",
1027 " <td>30.000</td>\n",
1028 " </tr>\n",
1029 " <tr>\n",
1030 " <th>Equity(4351 [LAKE])</th>\n",
1031 " <td>1443</td>\n",
1032 " <td>2008-04-22</td>\n",
1033 " <td>395661</td>\n",
1034 " <td>7.270</td>\n",
1035 " </tr>\n",
1036 " <tr>\n",
1037 " <th>Equity(5281 [NEN])</th>\n",
1038 " <td>1055</td>\n",
1039 " <td>2009-10-16</td>\n",
1040 " <td>220000</td>\n",
1041 " <td>20.780</td>\n",
1042 " </tr>\n",
1043 " <tr>\n",
1044 " <th>Equity(5928 [PFIN])</th>\n",
1045 " <td>1075</td>\n",
1046 " <td>2009-09-18</td>\n",
1047 " <td>258209</td>\n",
1048 " <td>7.100</td>\n",
1049 " </tr>\n",
1050 " <tr>\n",
1051 " <th>Equity(6270 [PWX])</th>\n",
1052 " <td>1136</td>\n",
1053 " <td>2009-06-25</td>\n",
1054 " <td>253400</td>\n",
1055 " <td>5.270</td>\n",
1056 " </tr>\n",
1057 " <tr>\n",
1058 " <th>Equity(6593 [KID])</th>\n",
1059 " <td>521</td>\n",
1060 " <td>2011-11-03</td>\n",
1061 " <td>1102796</td>\n",
1062 " <td>5.090</td>\n",
1063 " </tr>\n",
1064 " <tr>\n",
1065 " <th>Equity(7317 [TBAC])</th>\n",
1066 " <td>1332</td>\n",
1067 " <td>2008-09-24</td>\n",
1068 " <td>597524</td>\n",
1069 " <td>8.500</td>\n",
1070 " </tr>\n",
1071 " <tr>\n",
1072 " <th>Equity(7510 [PULS])</th>\n",
1073 " <td>366</td>\n",
1074 " <td>2012-06-07</td>\n",
1075 " <td>2124860</td>\n",
1076 " <td>5.000</td>\n",
1077 " </tr>\n",
1078 " <tr>\n",
1079 " <th>Equity(7975 [VIRC])</th>\n",
1080 " <td>1260</td>\n",
1081 " <td>2009-01-02</td>\n",
1082 " <td>780300</td>\n",
1083 " <td>5.410</td>\n",
1084 " </tr>\n",
1085 " <tr>\n",
1086 " <th>Equity(9014 [NTZ])</th>\n",
1087 " <td>1441</td>\n",
1088 " <td>2008-04-24</td>\n",
1089 " <td>29358089</td>\n",
1090 " <td>53.500</td>\n",
1091 " </tr>\n",
1092 " <tr>\n",
1093 " <th>Equity(9400 [KTEC])</th>\n",
1094 " <td>1039</td>\n",
1095 " <td>2009-11-09</td>\n",
1096 " <td>254242</td>\n",
1097 " <td>5.100</td>\n",
1098 " </tr>\n",
1099 " <tr>\n",
1100 " <th>Equity(10314 [WVFC])</th>\n",
1101 " <td>1098</td>\n",
1102 " <td>2009-08-18</td>\n",
1103 " <td>111190</td>\n",
1104 " <td>5.300</td>\n",
1105 " </tr>\n",
1106 " <tr>\n",
1107 " <th>Equity(10833 [RGCO])</th>\n",
1108 " <td>864</td>\n",
1109 " <td>2010-07-12</td>\n",
1110 " <td>117236</td>\n",
1111 " <td>5.200</td>\n",
1112 " </tr>\n",
1113 " <tr>\n",
1114 " <th>Equity(11695 [THRD])</th>\n",
1115 " <td>242</td>\n",
1116 " <td>2012-11-28</td>\n",
1117 " <td>143894</td>\n",
1118 " <td>5.100</td>\n",
1119 " </tr>\n",
1120 " <tr>\n",
1121 " <th>Equity(11823 [PNBK])</th>\n",
1122 " <td>1200</td>\n",
1123 " <td>2009-03-27</td>\n",
1124 " <td>473100</td>\n",
1125 " <td>9.970</td>\n",
1126 " </tr>\n",
1127 " <tr>\n",
1128 " <th>Equity(12667 [ALLB])</th>\n",
1129 " <td>1212</td>\n",
1130 " <td>2009-03-11</td>\n",
1131 " <td>360475</td>\n",
1132 " <td>5.200</td>\n",
1133 " </tr>\n",
1134 " <tr>\n",
1135 " <th>Equity(13156 [ATEA])</th>\n",
1136 " <td>1346</td>\n",
1137 " <td>2008-09-04</td>\n",
1138 " <td>215500</td>\n",
1139 " <td>6.000</td>\n",
1140 " </tr>\n",
1141 " <tr>\n",
1142 " <th>Equity(13207 [GVP])</th>\n",
1143 " <td>427</td>\n",
1144 " <td>2012-03-14</td>\n",
1145 " <td>1716525</td>\n",
1146 " <td>9.400</td>\n",
1147 " </tr>\n",
1148 " <tr>\n",
1149 " <th>Equity(14098 [LTRE])</th>\n",
1150 " <td>264</td>\n",
1151 " <td>2012-10-29</td>\n",
1152 " <td>793771</td>\n",
1153 " <td>6.000</td>\n",
1154 " </tr>\n",
1155 " <tr>\n",
1156 " <th>Equity(14410 [OVBC])</th>\n",
1157 " <td>168</td>\n",
1158 " <td>2013-03-12</td>\n",
1159 " <td>289623</td>\n",
1160 " <td>7.100</td>\n",
1161 " </tr>\n",
1162 " <tr>\n",
1163 " <th>Equity(14996 [PFBI])</th>\n",
1164 " <td>1397</td>\n",
1165 " <td>2008-06-25</td>\n",
1166 " <td>506095</td>\n",
1167 " <td>7.920</td>\n",
1168 " </tr>\n",
1169 " <tr>\n",
1170 " <th>...</th>\n",
1171 " <th>...</th>\n",
1172 " <td>...</td>\n",
1173 " <td>...</td>\n",
1174 " <td>...</td>\n",
1175 " <td>...</td>\n",
1176 " </tr>\n",
1177 " <tr>\n",
1178 " <th rowspan=\"30\" valign=\"top\">2013-11-25 00:00:00+00:00</th>\n",
1179 " <th>Equity(11823 [PNBK])</th>\n",
1180 " <td>1216</td>\n",
1181 " <td>2009-03-27</td>\n",
1182 " <td>473100</td>\n",
1183 " <td>9.970</td>\n",
1184 " </tr>\n",
1185 " <tr>\n",
1186 " <th>Equity(13156 [ATEA])</th>\n",
1187 " <td>1362</td>\n",
1188 " <td>2008-09-04</td>\n",
1189 " <td>215500</td>\n",
1190 " <td>6.000</td>\n",
1191 " </tr>\n",
1192 " <tr>\n",
1193 " <th>Equity(14410 [OVBC])</th>\n",
1194 " <td>184</td>\n",
1195 " <td>2013-03-12</td>\n",
1196 " <td>289623</td>\n",
1197 " <td>7.100</td>\n",
1198 " </tr>\n",
1199 " <tr>\n",
1200 " <th>Equity(15133 [FRBK])</th>\n",
1201 " <td>1416</td>\n",
1202 " <td>2008-06-20</td>\n",
1203 " <td>923077</td>\n",
1204 " <td>7.800</td>\n",
1205 " </tr>\n",
1206 " <tr>\n",
1207 " <th>Equity(15703 [PRLS])</th>\n",
1208 " <td>1189</td>\n",
1209 " <td>2009-05-05</td>\n",
1210 " <td>3599320</td>\n",
1211 " <td>21.300</td>\n",
1212 " </tr>\n",
1213 " <tr>\n",
1214 " <th>Equity(16176 [CASM])</th>\n",
1215 " <td>1385</td>\n",
1216 " <td>2008-08-04</td>\n",
1217 " <td>2212449</td>\n",
1218 " <td>20.220</td>\n",
1219 " </tr>\n",
1220 " <tr>\n",
1221 " <th>Equity(16420 [UNTY])</th>\n",
1222 " <td>1422</td>\n",
1223 " <td>2008-06-12</td>\n",
1224 " <td>357551</td>\n",
1225 " <td>5.000</td>\n",
1226 " </tr>\n",
1227 " <tr>\n",
1228 " <th>Equity(17281 [PRPH])</th>\n",
1229 " <td>311</td>\n",
1230 " <td>2012-09-14</td>\n",
1231 " <td>1453427</td>\n",
1232 " <td>9.800</td>\n",
1233 " </tr>\n",
1234 " <tr>\n",
1235 " <th>Equity(17810 [BASI])</th>\n",
1236 " <td>1210</td>\n",
1237 " <td>2009-04-06</td>\n",
1238 " <td>1275967</td>\n",
1239 " <td>26.000</td>\n",
1240 " </tr>\n",
1241 " <tr>\n",
1242 " <th>Equity(19588 [CFBK])</th>\n",
1243 " <td>1027</td>\n",
1244 " <td>2009-12-17</td>\n",
1245 " <td>366701</td>\n",
1246 " <td>8.900</td>\n",
1247 " </tr>\n",
1248 " <tr>\n",
1249 " <th>Equity(20767 [ORBT])</th>\n",
1250 " <td>1109</td>\n",
1251 " <td>2009-08-25</td>\n",
1252 " <td>515198</td>\n",
1253 " <td>11.080</td>\n",
1254 " </tr>\n",
1255 " <tr>\n",
1256 " <th>Equity(20791 [SBSA])</th>\n",
1257 " <td>286</td>\n",
1258 " <td>2012-10-19</td>\n",
1259 " <td>386879</td>\n",
1260 " <td>9.284</td>\n",
1261 " </tr>\n",
1262 " <tr>\n",
1263 " <th>Equity(20847 [CTIB])</th>\n",
1264 " <td>1244</td>\n",
1265 " <td>2009-02-17</td>\n",
1266 " <td>582140</td>\n",
1267 " <td>20.730</td>\n",
1268 " </tr>\n",
1269 " <tr>\n",
1270 " <th>Equity(20974 [FBSS])</th>\n",
1271 " <td>1209</td>\n",
1272 " <td>2009-04-07</td>\n",
1273 " <td>116237</td>\n",
1274 " <td>3.200</td>\n",
1275 " </tr>\n",
1276 " <tr>\n",
1277 " <th>Equity(20987 [HPOL])</th>\n",
1278 " <td>1145</td>\n",
1279 " <td>2009-07-06</td>\n",
1280 " <td>3428861</td>\n",
1281 " <td>6.400</td>\n",
1282 " </tr>\n",
1283 " <tr>\n",
1284 " <th>Equity(21566 [TORM])</th>\n",
1285 " <td>1140</td>\n",
1286 " <td>2009-07-13</td>\n",
1287 " <td>1549200</td>\n",
1288 " <td>15.200</td>\n",
1289 " </tr>\n",
1290 " <tr>\n",
1291 " <th>Equity(21850 [ARL])</th>\n",
1292 " <td>1223</td>\n",
1293 " <td>2009-03-18</td>\n",
1294 " <td>579958</td>\n",
1295 " <td>5.160</td>\n",
1296 " </tr>\n",
1297 " <tr>\n",
1298 " <th>Equity(21903 [LTRX])</th>\n",
1299 " <td>1309</td>\n",
1300 " <td>2008-11-18</td>\n",
1301 " <td>22252663</td>\n",
1302 " <td>36.800</td>\n",
1303 " </tr>\n",
1304 " <tr>\n",
1305 " <th>Equity(26914 [OSHC])</th>\n",
1306 " <td>149</td>\n",
1307 " <td>2013-04-30</td>\n",
1308 " <td>486508</td>\n",
1309 " <td>7.000</td>\n",
1310 " </tr>\n",
1311 " <tr>\n",
1312 " <th>Equity(26990 [SMMF])</th>\n",
1313 " <td>489</td>\n",
1314 " <td>2012-01-10</td>\n",
1315 " <td>516540</td>\n",
1316 " <td>6.730</td>\n",
1317 " </tr>\n",
1318 " <tr>\n",
1319 " <th>Equity(27605 [XTLB])</th>\n",
1320 " <td>1397</td>\n",
1321 " <td>2008-07-17</td>\n",
1322 " <td>58618420</td>\n",
1323 " <td>20.030</td>\n",
1324 " </tr>\n",
1325 " <tr>\n",
1326 " <th>Equity(27701 [PTEK])</th>\n",
1327 " <td>1026</td>\n",
1328 " <td>2009-12-18</td>\n",
1329 " <td>1289576</td>\n",
1330 " <td>9.200</td>\n",
1331 " </tr>\n",
1332 " <tr>\n",
1333 " <th>Equity(28829 [CXM])</th>\n",
1334 " <td>322</td>\n",
1335 " <td>2012-08-30</td>\n",
1336 " <td>10304401</td>\n",
1337 " <td>8.610</td>\n",
1338 " </tr>\n",
1339 " <tr>\n",
1340 " <th>Equity(29087 [CZFC])</th>\n",
1341 " <td>1072</td>\n",
1342 " <td>2009-10-15</td>\n",
1343 " <td>397661</td>\n",
1344 " <td>19.700</td>\n",
1345 " </tr>\n",
1346 " <tr>\n",
1347 " <th>Equity(31229 [VSBN])</th>\n",
1348 " <td>1217</td>\n",
1349 " <td>2009-03-26</td>\n",
1350 " <td>94683</td>\n",
1351 " <td>5.080</td>\n",
1352 " </tr>\n",
1353 " <tr>\n",
1354 " <th>Equity(32347 [NECB])</th>\n",
1355 " <td>795</td>\n",
1356 " <td>2010-11-08</td>\n",
1357 " <td>715193</td>\n",
1358 " <td>5.410</td>\n",
1359 " </tr>\n",
1360 " <tr>\n",
1361 " <th>Equity(32624 [PBIB])</th>\n",
1362 " <td>880</td>\n",
1363 " <td>2010-07-12</td>\n",
1364 " <td>1069703</td>\n",
1365 " <td>9.900</td>\n",
1366 " </tr>\n",
1367 " <tr>\n",
1368 " <th>Equity(32818 [SONA])</th>\n",
1369 " <td>1057</td>\n",
1370 " <td>2009-11-05</td>\n",
1371 " <td>1000000</td>\n",
1372 " <td>8.600</td>\n",
1373 " </tr>\n",
1374 " <tr>\n",
1375 " <th>Equity(34191 [LABC])</th>\n",
1376 " <td>170</td>\n",
1377 " <td>2013-04-01</td>\n",
1378 " <td>272603</td>\n",
1379 " <td>9.000</td>\n",
1380 " </tr>\n",
1381 " <tr>\n",
1382 " <th>Equity(36240 [VRS])</th>\n",
1383 " <td>726</td>\n",
1384 " <td>2011-02-11</td>\n",
1385 " <td>2623467</td>\n",
1386 " <td>5.000</td>\n",
1387 " </tr>\n",
1388 " </tbody>\n",
1389 "</table>\n",
1390 "<p>973 rows × 4 columns</p>\n",
1391 "</div>"
1392 ],
1393 "text/plain": [
1394 " business_days_since_last_filing \\\n",
1395 "2013-11-01 00:00:00+00:00 Equity(717 [BAMM]) 425 \n",
1396 " Equity(2389 [COBR]) 1036 \n",
1397 " Equity(2508 [ELSE]) 1020 \n",
1398 " Equity(2586 [EQS]) 1064 \n",
1399 " Equity(2902 [STRS]) 472 \n",
1400 " Equity(3536 [HFFC]) 1027 \n",
1401 " Equity(3778 [ICCC]) 1239 \n",
1402 " Equity(3947 [INS]) 1114 \n",
1403 " Equity(4153 [JOB]) 1121 \n",
1404 " Equity(4292 [KOSS]) 13 \n",
1405 " Equity(4351 [LAKE]) 1443 \n",
1406 " Equity(5281 [NEN]) 1055 \n",
1407 " Equity(5928 [PFIN]) 1075 \n",
1408 " Equity(6270 [PWX]) 1136 \n",
1409 " Equity(6593 [KID]) 521 \n",
1410 " Equity(7317 [TBAC]) 1332 \n",
1411 " Equity(7510 [PULS]) 366 \n",
1412 " Equity(7975 [VIRC]) 1260 \n",
1413 " Equity(9014 [NTZ]) 1441 \n",
1414 " Equity(9400 [KTEC]) 1039 \n",
1415 " Equity(10314 [WVFC]) 1098 \n",
1416 " Equity(10833 [RGCO]) 864 \n",
1417 " Equity(11695 [THRD]) 242 \n",
1418 " Equity(11823 [PNBK]) 1200 \n",
1419 " Equity(12667 [ALLB]) 1212 \n",
1420 " Equity(13156 [ATEA]) 1346 \n",
1421 " Equity(13207 [GVP]) 427 \n",
1422 " Equity(14098 [LTRE]) 264 \n",
1423 " Equity(14410 [OVBC]) 168 \n",
1424 " Equity(14996 [PFBI]) 1397 \n",
1425 "... ... \n",
1426 "2013-11-25 00:00:00+00:00 Equity(11823 [PNBK]) 1216 \n",
1427 " Equity(13156 [ATEA]) 1362 \n",
1428 " Equity(14410 [OVBC]) 184 \n",
1429 " Equity(15133 [FRBK]) 1416 \n",
1430 " Equity(15703 [PRLS]) 1189 \n",
1431 " Equity(16176 [CASM]) 1385 \n",
1432 " Equity(16420 [UNTY]) 1422 \n",
1433 " Equity(17281 [PRPH]) 311 \n",
1434 " Equity(17810 [BASI]) 1210 \n",
1435 " Equity(19588 [CFBK]) 1027 \n",
1436 " Equity(20767 [ORBT]) 1109 \n",
1437 " Equity(20791 [SBSA]) 286 \n",
1438 " Equity(20847 [CTIB]) 1244 \n",
1439 " Equity(20974 [FBSS]) 1209 \n",
1440 " Equity(20987 [HPOL]) 1145 \n",
1441 " Equity(21566 [TORM]) 1140 \n",
1442 " Equity(21850 [ARL]) 1223 \n",
1443 " Equity(21903 [LTRX]) 1309 \n",
1444 " Equity(26914 [OSHC]) 149 \n",
1445 " Equity(26990 [SMMF]) 489 \n",
1446 " Equity(27605 [XTLB]) 1397 \n",
1447 " Equity(27701 [PTEK]) 1026 \n",
1448 " Equity(28829 [CXM]) 322 \n",
1449 " Equity(29087 [CZFC]) 1072 \n",
1450 " Equity(31229 [VSBN]) 1217 \n",
1451 " Equity(32347 [NECB]) 795 \n",
1452 " Equity(32624 [PBIB]) 880 \n",
1453 " Equity(32818 [SONA]) 1057 \n",
1454 " Equity(34191 [LABC]) 170 \n",
1455 " Equity(36240 [VRS]) 726 \n",
1456 "\n",
1457 " last_disclosure_date \\\n",
1458 "2013-11-01 00:00:00+00:00 Equity(717 [BAMM]) 2012-03-16 \n",
1459 " Equity(2389 [COBR]) 2009-11-12 \n",
1460 " Equity(2508 [ELSE]) 2009-12-04 \n",
1461 " Equity(2586 [EQS]) 2009-10-05 \n",
1462 " Equity(2902 [STRS]) 2012-01-11 \n",
1463 " Equity(3536 [HFFC]) 2009-11-25 \n",
1464 " Equity(3778 [ICCC]) 2009-02-02 \n",
1465 " Equity(3947 [INS]) 2009-07-27 \n",
1466 " Equity(4153 [JOB]) 2009-07-16 \n",
1467 " Equity(4292 [KOSS]) 2013-10-15 \n",
1468 " Equity(4351 [LAKE]) 2008-04-22 \n",
1469 " Equity(5281 [NEN]) 2009-10-16 \n",
1470 " Equity(5928 [PFIN]) 2009-09-18 \n",
1471 " Equity(6270 [PWX]) 2009-06-25 \n",
1472 " Equity(6593 [KID]) 2011-11-03 \n",
1473 " Equity(7317 [TBAC]) 2008-09-24 \n",
1474 " Equity(7510 [PULS]) 2012-06-07 \n",
1475 " Equity(7975 [VIRC]) 2009-01-02 \n",
1476 " Equity(9014 [NTZ]) 2008-04-24 \n",
1477 " Equity(9400 [KTEC]) 2009-11-09 \n",
1478 " Equity(10314 [WVFC]) 2009-08-18 \n",
1479 " Equity(10833 [RGCO]) 2010-07-12 \n",
1480 " Equity(11695 [THRD]) 2012-11-28 \n",
1481 " Equity(11823 [PNBK]) 2009-03-27 \n",
1482 " Equity(12667 [ALLB]) 2009-03-11 \n",
1483 " Equity(13156 [ATEA]) 2008-09-04 \n",
1484 " Equity(13207 [GVP]) 2012-03-14 \n",
1485 " Equity(14098 [LTRE]) 2012-10-29 \n",
1486 " Equity(14410 [OVBC]) 2013-03-12 \n",
1487 " Equity(14996 [PFBI]) 2008-06-25 \n",
1488 "... ... \n",
1489 "2013-11-25 00:00:00+00:00 Equity(11823 [PNBK]) 2009-03-27 \n",
1490 " Equity(13156 [ATEA]) 2008-09-04 \n",
1491 " Equity(14410 [OVBC]) 2013-03-12 \n",
1492 " Equity(15133 [FRBK]) 2008-06-20 \n",
1493 " Equity(15703 [PRLS]) 2009-05-05 \n",
1494 " Equity(16176 [CASM]) 2008-08-04 \n",
1495 " Equity(16420 [UNTY]) 2008-06-12 \n",
1496 " Equity(17281 [PRPH]) 2012-09-14 \n",
1497 " Equity(17810 [BASI]) 2009-04-06 \n",
1498 " Equity(19588 [CFBK]) 2009-12-17 \n",
1499 " Equity(20767 [ORBT]) 2009-08-25 \n",
1500 " Equity(20791 [SBSA]) 2012-10-19 \n",
1501 " Equity(20847 [CTIB]) 2009-02-17 \n",
1502 " Equity(20974 [FBSS]) 2009-04-07 \n",
1503 " Equity(20987 [HPOL]) 2009-07-06 \n",
1504 " Equity(21566 [TORM]) 2009-07-13 \n",
1505 " Equity(21850 [ARL]) 2009-03-18 \n",
1506 " Equity(21903 [LTRX]) 2008-11-18 \n",
1507 " Equity(26914 [OSHC]) 2013-04-30 \n",
1508 " Equity(26990 [SMMF]) 2012-01-10 \n",
1509 " Equity(27605 [XTLB]) 2008-07-17 \n",
1510 " Equity(27701 [PTEK]) 2009-12-18 \n",
1511 " Equity(28829 [CXM]) 2012-08-30 \n",
1512 " Equity(29087 [CZFC]) 2009-10-15 \n",
1513 " Equity(31229 [VSBN]) 2009-03-26 \n",
1514 " Equity(32347 [NECB]) 2010-11-08 \n",
1515 " Equity(32624 [PBIB]) 2010-07-12 \n",
1516 " Equity(32818 [SONA]) 2009-11-05 \n",
1517 " Equity(34191 [LABC]) 2013-04-01 \n",
1518 " Equity(36240 [VRS]) 2011-02-11 \n",
1519 "\n",
1520 " number_shares percent_shares \n",
1521 "2013-11-01 00:00:00+00:00 Equity(717 [BAMM]) 8490139 53.200 \n",
1522 " Equity(2389 [COBR]) 377947 5.800 \n",
1523 " Equity(2508 [ELSE]) 181805 5.390 \n",
1524 " Equity(2586 [EQS]) 737569 8.320 \n",
1525 " Equity(2902 [STRS]) 1405000 18.900 \n",
1526 " Equity(3536 [HFFC]) 645000 9.860 \n",
1527 " Equity(3778 [ICCC]) 189111 6.300 \n",
1528 " Equity(3947 [INS]) 2042800 22.700 \n",
1529 " Equity(4153 [JOB]) 9735287 65.300 \n",
1530 " Equity(4292 [KOSS]) 2214476 30.000 \n",
1531 " Equity(4351 [LAKE]) 395661 7.270 \n",
1532 " Equity(5281 [NEN]) 220000 20.780 \n",
1533 " Equity(5928 [PFIN]) 258209 7.100 \n",
1534 " Equity(6270 [PWX]) 253400 5.270 \n",
1535 " Equity(6593 [KID]) 1102796 5.090 \n",
1536 " Equity(7317 [TBAC]) 597524 8.500 \n",
1537 " Equity(7510 [PULS]) 2124860 5.000 \n",
1538 " Equity(7975 [VIRC]) 780300 5.410 \n",
1539 " Equity(9014 [NTZ]) 29358089 53.500 \n",
1540 " Equity(9400 [KTEC]) 254242 5.100 \n",
1541 " Equity(10314 [WVFC]) 111190 5.300 \n",
1542 " Equity(10833 [RGCO]) 117236 5.200 \n",
1543 " Equity(11695 [THRD]) 143894 5.100 \n",
1544 " Equity(11823 [PNBK]) 473100 9.970 \n",
1545 " Equity(12667 [ALLB]) 360475 5.200 \n",
1546 " Equity(13156 [ATEA]) 215500 6.000 \n",
1547 " Equity(13207 [GVP]) 1716525 9.400 \n",
1548 " Equity(14098 [LTRE]) 793771 6.000 \n",
1549 " Equity(14410 [OVBC]) 289623 7.100 \n",
1550 " Equity(14996 [PFBI]) 506095 7.920 \n",
1551 "... ... ... \n",
1552 "2013-11-25 00:00:00+00:00 Equity(11823 [PNBK]) 473100 9.970 \n",
1553 " Equity(13156 [ATEA]) 215500 6.000 \n",
1554 " Equity(14410 [OVBC]) 289623 7.100 \n",
1555 " Equity(15133 [FRBK]) 923077 7.800 \n",
1556 " Equity(15703 [PRLS]) 3599320 21.300 \n",
1557 " Equity(16176 [CASM]) 2212449 20.220 \n",
1558 " Equity(16420 [UNTY]) 357551 5.000 \n",
1559 " Equity(17281 [PRPH]) 1453427 9.800 \n",
1560 " Equity(17810 [BASI]) 1275967 26.000 \n",
1561 " Equity(19588 [CFBK]) 366701 8.900 \n",
1562 " Equity(20767 [ORBT]) 515198 11.080 \n",
1563 " Equity(20791 [SBSA]) 386879 9.284 \n",
1564 " Equity(20847 [CTIB]) 582140 20.730 \n",
1565 " Equity(20974 [FBSS]) 116237 3.200 \n",
1566 " Equity(20987 [HPOL]) 3428861 6.400 \n",
1567 " Equity(21566 [TORM]) 1549200 15.200 \n",
1568 " Equity(21850 [ARL]) 579958 5.160 \n",
1569 " Equity(21903 [LTRX]) 22252663 36.800 \n",
1570 " Equity(26914 [OSHC]) 486508 7.000 \n",
1571 " Equity(26990 [SMMF]) 516540 6.730 \n",
1572 " Equity(27605 [XTLB]) 58618420 20.030 \n",
1573 " Equity(27701 [PTEK]) 1289576 9.200 \n",
1574 " Equity(28829 [CXM]) 10304401 8.610 \n",
1575 " Equity(29087 [CZFC]) 397661 19.700 \n",
1576 " Equity(31229 [VSBN]) 94683 5.080 \n",
1577 " Equity(32347 [NECB]) 715193 5.410 \n",
1578 " Equity(32624 [PBIB]) 1069703 9.900 \n",
1579 " Equity(32818 [SONA]) 1000000 8.600 \n",
1580 " Equity(34191 [LABC]) 272603 9.000 \n",
1581 " Equity(36240 [VRS]) 2623467 5.000 \n",
1582 "\n",
1583 "[973 rows x 4 columns]"
1584 ]
1585 },
1586 "execution_count": 68,
1587 "metadata": {},
1588 "output_type": "execute_result"
1589 }
1590 ],
1591 "source": [
1592 "# run_pipeline will show the output of your pipeline\n",
1593 "pipe_output = run_pipeline(pipe, start_date='2013-11-01', end_date='2013-11-25')\n",
1594 "pipe_output"
1595 ]
1596 },
1597 {
1598 "cell_type": "markdown",
1599 "metadata": {},
1600 "source": [
1601 "Taking what we've seen from above, let's see how we'd move that into the backtester."
1602 ]
1603 },
1604 {
1605 "cell_type": "code",
1606 "execution_count": 75,
1607 "metadata": {
1608 "collapsed": false
1609 },
1610 "outputs": [],
1611 "source": [
1612 "# This section is only importable in the backtester\n",
1613 "from quantopian.algorithm import attach_pipeline, pipeline_output\n",
1614 "\n",
1615 "# General pipeline imports\n",
1616 "from quantopian.pipeline import Pipeline\n",
1617 "from quantopian.pipeline.factors import AverageDollarVolume\n",
1618 "\n",
1619 "# Import the datasets available\n",
1620 "from quantopian.pipeline.data.eventvestor import _13DFilings\n",
1621 "\n",
1622 "# Builtin Factors for easy access\n",
1623 "from quantopian.pipeline.factors.eventvestor import BusinessDaysSince13DFilingsDate\n",
1624 "\n",
1625 "def make_pipeline():\n",
1626 " # Create our pipeline\n",
1627 " pipe = Pipeline()\n",
1628 " \n",
1629 " # Screen out penny stocks and low liquidity securities.\n",
1630 " dollar_volume = AverageDollarVolume(window_length=20)\n",
1631 " is_liquid = dollar_volume.rank(ascending=False) < 1000\n",
1632 " \n",
1633 " # Create the mask that we will use for our percentile methods.\n",
1634 " base_universe = (is_liquid)\n",
1635 "\n",
1636 " # Add pipeline factors\n",
1637 " pipe.add(_13DFilings.disclosure_date.latest, \"last_disclosure_date\")\n",
1638 " pipe.add(_13DFilings.percent_shares.latest, \"percent_shares\")\n",
1639 " pipe.add(_13DFilings.number_shares.latest, \"number_shares\")\n",
1640 " pipe.add(BusinessDaysSince13DFilingsDate(), \"business_days_since_last_filing\")\n",
1641 "\n",
1642 " # Set our pipeline screens\n",
1643 " pipe.set_screen(is_liquid)\n",
1644 " return pipe\n",
1645 "\n",
1646 "def initialize(context):\n",
1647 " attach_pipeline(make_pipeline(), \"pipeline\")\n",
1648 " \n",
1649 "def before_trading_start(context, data):\n",
1650 " results = pipeline_output('pipeline')"
1651 ]
1652 },
1653 {
1654 "cell_type": "markdown",
1655 "metadata": {},
1656 "source": [
1657 "Now you can take that and begin to use it as a building block for your algorithms, for more examples on how to do that you can visit our <a href='https://www.quantopian.com/posts/pipeline-factor-library-for-data'>data pipeline factor library</a>"
1658 ]
1659 }
1660 ],
1661 "metadata": {
1662 "kernelspec": {
1663 "display_name": "Python 2",
1664 "language": "python",
1665 "name": "python2"
1666 },
1667 "language_info": {
1668 "codemirror_mode": {
1669 "name": "ipython",
1670 "version": 2
1671 },
1672 "file_extension": ".py",
1673 "mimetype": "text/x-python",
1674 "name": "python",
1675 "nbconvert_exporter": "python",
1676 "pygments_lexer": "ipython2",
1677 "version": "2.7.11"
1678 }
1679 },
1680 "nbformat": 4,
1681 "nbformat_minor": 0
1682 }