├── .gitattributes
├── Edgar filings_XML
└── 0001061768
│ └── 13f
│ ├── 0001567619-19-021196.txt
│ ├── 0001567619-20-003359.txt
│ ├── 0001567619-20-010141.txt
│ └── 0001567619-20-015100.txt
├── Filing13FHR.py
├── HCA_2020-06-30_2020-10-05.html
├── LICENSE
├── Portfolio13FHR.py
├── README.md
├── SSNC_2020-06-30_2020-10-05.html
├── VRNT_2020-06-30_2020-10-05.html
├── VSAT_2020-06-30_2020-10-05.html
├── example_01.png
├── example_02.png
└── testing_script.py
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/Edgar filings_XML/0001061768/13f/0001567619-19-021196.txt:
--------------------------------------------------------------------------------
1 | 0001567619-19-021196.txt : 20191113
2 | 0001567619-19-021196.hdr.sgml : 20191113
3 | 20191113161654
4 | ACCESSION NUMBER: 0001567619-19-021196
5 | CONFORMED SUBMISSION TYPE: 13F-HR
6 | PUBLIC DOCUMENT COUNT: 2
7 | CONFORMED PERIOD OF REPORT: 20190930
8 | FILED AS OF DATE: 20191113
9 | DATE AS OF CHANGE: 20191113
10 | EFFECTIVENESS DATE: 20191113
11 |
12 | FILER:
13 |
14 | COMPANY DATA:
15 | COMPANY CONFORMED NAME: BAUPOST GROUP LLC/MA
16 | CENTRAL INDEX KEY: 0001061768
17 | IRS NUMBER: 043402144
18 | STATE OF INCORPORATION: DE
19 |
20 | FILING VALUES:
21 | FORM TYPE: 13F-HR
22 | SEC ACT: 1934 Act
23 | SEC FILE NUMBER: 028-07120
24 | FILM NUMBER: 191214192
25 |
26 | BUSINESS ADDRESS:
27 | STREET 1: 10 ST JAMES AVE
28 | STREET 2: SUITE 1700
29 | CITY: BOSTON
30 | STATE: MA
31 | ZIP: 02116
32 | BUSINESS PHONE: 617-210-8300
33 |
34 | MAIL ADDRESS:
35 | STREET 1: 10 ST JAMES AVE
36 | STREET 2: SUITE 1700
37 | CITY: BOSTON
38 | STATE: MA
39 | ZIP: 02116
40 |
41 |
42 | 13F-HR
43 | 1
44 | primary_doc.xml
45 |
46 |
47 |
48 |
49 |
50 | 13F-HR
51 |
52 | LIVE
53 |
54 | false
55 | true
56 | false
57 |
58 |
59 |
60 | 0001061768
61 | XXXXXXXX
62 |
63 |
64 | 09-30-2019
65 |
66 |
67 |
68 |
69 | 09-30-2019
70 |
71 | BAUPOST GROUP LLC/MA
72 |
73 | 10 ST JAMES AVE
74 | SUITE 1700
75 | BOSTON
76 | MA
77 | 02116
78 |
79 |
80 | 13F HOLDINGS REPORT
81 | 028-07120
82 | N
83 |
84 |
85 | James F. Mooney III
86 | President and Partner
87 | 617-210-8300
88 | James F. Mooney III
89 | Boston
90 | MA
91 | 11-13-2019
92 |
93 |
94 | 0
95 | 32
96 | 8830275
97 | false
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | INFORMATION TABLE
106 | 2
107 | form13fInfoTable.xml
108 |
109 |
110 |
111 | AKEBIA THERAPEUTICS INC
112 | COM
113 | 00972D105
114 | 95928
115 |
116 | 24471453
117 | SH
118 |
119 | SOLE
120 |
121 | 24471453
122 | 0
123 | 0
124 |
125 |
126 |
127 | AMERISOURCEBERGEN CORP
128 | COM
129 | 03073E105
130 | 96021
131 |
132 | 1166299
133 | SH
134 |
135 | SOLE
136 |
137 | 1166299
138 | 0
139 | 0
140 |
141 |
142 |
143 | ANTERO RES CORP
144 | COM
145 | 03674X106
146 | 63685
147 |
148 | 21087791
149 | SH
150 |
151 | SOLE
152 |
153 | 21087791
154 | 0
155 | 0
156 |
157 |
158 |
159 | ATARA BIOTHERAPEUTICS INC
160 | COM
161 | 046513107
162 | 117322
163 |
164 | 8308900
165 | SH
166 |
167 | SOLE
168 |
169 | 8308900
170 | 0
171 | 0
172 |
173 |
174 |
175 | BRISTOL MYERS SQUIBB CO
176 | COM
177 | 110122108
178 | 507100
179 |
180 | 10000000
181 | SH
182 |
183 | SOLE
184 |
185 | 10000000
186 | 0
187 | 0
188 |
189 |
190 |
191 | CARS COM INC
192 | COM
193 | 14575E105
194 | 26940
195 |
196 | 3000000
197 | SH
198 |
199 | SOLE
200 |
201 | 3000000
202 | 0
203 | 0
204 |
205 |
206 |
207 | CBS CORP NEW
208 | CL B
209 | 124857202
210 | 484440
211 |
212 | 12000000
213 | SH
214 |
215 | SOLE
216 |
217 | 12000000
218 | 0
219 | 0
220 |
221 |
222 |
223 | CHENIERE ENERGY INC
224 | COM NEW
225 | 16411R208
226 | 639374
227 |
228 | 10139133
229 | SH
230 |
231 | SOLE
232 |
233 | 10139133
234 | 0
235 | 0
236 |
237 |
238 |
239 | COLONY CAP INC NEW
240 | CL A COM
241 | 19626G108
242 | 299118
243 |
244 | 49687370
245 | SH
246 |
247 | SOLE
248 |
249 | 49687370
250 | 0
251 | 0
252 |
253 |
254 |
255 | EBAY INC
256 | COM
257 | 278642103
258 | 648861
259 |
260 | 16646000
261 | SH
262 |
263 | SOLE
264 |
265 | 16646000
266 | 0
267 | 0
268 |
269 |
270 |
271 | FOX CORP
272 | CL A COM
273 | 35137L105
274 | 861622
275 |
276 | 27322720
277 | SH
278 |
279 | SOLE
280 |
281 | 27322720
282 | 0
283 | 0
284 |
285 |
286 |
287 | FOX CORP
288 | CL B COM
289 | 35137L204
290 | 179157
291 |
292 | 5680307
293 | SH
294 |
295 | SOLE
296 |
297 | 5680307
298 | 0
299 | 0
300 |
301 |
302 |
303 | GOSSAMER BIO INC
304 | COM
305 | 38341P102
306 | 15868
307 |
308 | 967171
309 | SH
310 |
311 | SOLE
312 |
313 | 967171
314 | 0
315 | 0
316 |
317 |
318 |
319 | LIBERTY GLOBAL PLC
320 | SHS CL A
321 | G5480U104
322 | 189516
323 |
324 | 7657205
325 | SH
326 |
327 | SOLE
328 |
329 | 7657205
330 | 0
331 | 0
332 |
333 |
334 |
335 | LIBERTY GLOBAL PLC
336 | SHS CL C
337 | G5480U120
338 | 1045768
339 |
340 | 43958295
341 | SH
342 |
343 | SOLE
344 |
345 | 43958295
346 | 0
347 | 0
348 |
349 |
350 |
351 | MCKESSON CORP
352 | COM
353 | 58155Q103
354 | 178479
355 |
356 | 1306011
357 | SH
358 |
359 | SOLE
360 |
361 | 1306011
362 | 0
363 | 0
364 |
365 |
366 |
367 | NEXSTAR MEDIA GROUP INC
368 | CL A
369 | 65336K103
370 | 204620
371 |
372 | 2000000
373 | SH
374 |
375 | SOLE
376 |
377 | 2000000
378 | 0
379 | 0
380 |
381 |
382 |
383 | NUANCE COMMUNICATIONS INC
384 | COM
385 | 67020Y100
386 | 134483
387 |
388 | 8245456
389 | SH
390 |
391 | SOLE
392 |
393 | 8245456
394 | 0
395 | 0
396 |
397 |
398 |
399 | PARATEK PHARMACEUTICALS INC
400 | COM
401 | 699374302
402 | 10344
403 |
404 | 2394498
405 | SH
406 |
407 | SOLE
408 |
409 | 2394498
410 | 0
411 | 0
412 |
413 |
414 |
415 | PG&E CORP
416 | COM
417 | 69331C108
418 | 245000
419 |
420 | 24500000
421 | SH
422 |
423 | SOLE
424 |
425 | 24500000
426 | 0
427 | 0
428 |
429 |
430 |
431 | QORVO INC
432 | COM
433 | 74736K101
434 | 421203
435 |
436 | 5681181
437 | SH
438 |
439 | SOLE
440 |
441 | 5681181
442 | 0
443 | 0
444 |
445 |
446 |
447 | SYNCHRONY FINL
448 | COM
449 | 87165B103
450 | 170586
451 |
452 | 5003981
453 | SH
454 |
455 | SOLE
456 |
457 | 5003981
458 | 0
459 | 0
460 |
461 |
462 |
463 | TAKEDA PHARMACEUTICAL CO LTD
464 | SPONSORED ADS
465 | 874060205
466 | 162279
467 |
468 | 9434803
469 | SH
470 |
471 | SOLE
472 |
473 | 9434803
474 | 0
475 | 0
476 |
477 |
478 |
479 | TESLA INC
480 | NOTE 2.375% 3/1
481 | 88160RAD3
482 | 303486
483 |
484 | 300000000
485 | PRN
486 |
487 | SOLE
488 |
489 | 300000000
490 | 0
491 | 0
492 |
493 |
494 |
495 | THERAVANCE BIOPHARMA INC
496 | COM
497 | G8807B106
498 | 181343
499 |
500 | 9309168
501 | SH
502 |
503 | SOLE
504 |
505 | 9309168
506 | 0
507 | 0
508 |
509 |
510 |
511 | THERAVANCE BIOPHARMA INC
512 | NOTE 3.250%11/0
513 | 88339KAA0
514 | 27656
515 |
516 | 30000000
517 | PRN
518 |
519 | SOLE
520 |
521 | 30000000
522 | 0
523 | 0
524 |
525 |
526 |
527 | TRANSLATE BIO INC
528 | COM
529 | 89374L104
530 | 172230
531 |
532 | 17544239
533 | SH
534 |
535 | SOLE
536 |
537 | 17544239
538 | 0
539 | 0
540 |
541 |
542 |
543 | TRILOGY METALS INC NEW
544 | COM
545 | 89621C105
546 | 19957
547 |
548 | 12182568
549 | SH
550 |
551 | SOLE
552 |
553 | 12182568
554 | 0
555 | 0
556 |
557 |
558 |
559 | UNIVAR SOLUTIONS INC
560 | COM
561 | 91336L107
562 | 197220
563 |
564 | 9500000
565 | SH
566 |
567 | SOLE
568 |
569 | 9500000
570 | 0
571 | 0
572 |
573 |
574 |
575 | VERITIV CORP
576 | COM
577 | 923454102
578 | 64445
579 |
580 | 3564439
581 | SH
582 |
583 | SOLE
584 |
585 | 3564439
586 | 0
587 | 0
588 |
589 |
590 |
591 | VIASAT INC
592 | COM
593 | 92552V100
594 | 1034299
595 |
596 | 13732068
597 | SH
598 |
599 | SOLE
600 |
601 | 13732068
602 | 0
603 | 0
604 |
605 |
606 |
607 | VISTA OIL & GAS S A B DE C V
608 | SPONSORED ADS
609 | 92837L109
610 | 31925
611 |
612 | 6175000
613 | SH
614 |
615 | SOLE
616 |
617 | 6175000
618 | 0
619 | 0
620 |
621 |
622 |
623 |
624 |
625 |
626 |
627 |
--------------------------------------------------------------------------------
/Edgar filings_XML/0001061768/13f/0001567619-20-003359.txt:
--------------------------------------------------------------------------------
1 | 0001567619-20-003359.txt : 20200213
2 | 0001567619-20-003359.hdr.sgml : 20200213
3 | 20200213164622
4 | ACCESSION NUMBER: 0001567619-20-003359
5 | CONFORMED SUBMISSION TYPE: 13F-HR
6 | PUBLIC DOCUMENT COUNT: 2
7 | CONFORMED PERIOD OF REPORT: 20191231
8 | FILED AS OF DATE: 20200213
9 | DATE AS OF CHANGE: 20200213
10 | EFFECTIVENESS DATE: 20200213
11 |
12 | FILER:
13 |
14 | COMPANY DATA:
15 | COMPANY CONFORMED NAME: BAUPOST GROUP LLC/MA
16 | CENTRAL INDEX KEY: 0001061768
17 | IRS NUMBER: 043402144
18 | STATE OF INCORPORATION: DE
19 |
20 | FILING VALUES:
21 | FORM TYPE: 13F-HR
22 | SEC ACT: 1934 Act
23 | SEC FILE NUMBER: 028-07120
24 | FILM NUMBER: 20611489
25 |
26 | BUSINESS ADDRESS:
27 | STREET 1: 10 ST JAMES AVE
28 | STREET 2: SUITE 1700
29 | CITY: BOSTON
30 | STATE: MA
31 | ZIP: 02116
32 | BUSINESS PHONE: 617-210-8300
33 |
34 | MAIL ADDRESS:
35 | STREET 1: 10 ST JAMES AVE
36 | STREET 2: SUITE 1700
37 | CITY: BOSTON
38 | STATE: MA
39 | ZIP: 02116
40 |
41 |
42 | 13F-HR
43 | 1
44 | primary_doc.xml
45 |
46 |
47 |
48 |
49 |
50 | 13F-HR
51 |
52 | LIVE
53 |
54 | false
55 | true
56 | false
57 |
58 |
59 |
60 | 0001061768
61 | XXXXXXXX
62 |
63 |
64 | 12-31-2019
65 |
66 |
67 |
68 |
69 | 12-31-2019
70 |
71 | BAUPOST GROUP LLC/MA
72 |
73 | 10 ST JAMES AVE
74 | SUITE 1700
75 | BOSTON
76 | MA
77 | 02116
78 |
79 |
80 | 13F HOLDINGS REPORT
81 | 028-07120
82 | N
83 |
84 |
85 | Jamess F. Mooney III
86 | President and Partner
87 | 617-210-8300
88 | Jamess F. Mooney III
89 | Boston
90 | MA
91 | 02-13-2020
92 |
93 |
94 | 0
95 | 31
96 | 9055230
97 | false
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | INFORMATION TABLE
106 | 2
107 | form13fInfoTable.xml
108 |
109 |
110 |
111 | AKEBIA THERAPEUTICS INC
112 | COM
113 | 00972D105
114 | 123692
115 |
116 | 19571453
117 | SH
118 |
119 | SOLE
120 |
121 | 19571453
122 | 0
123 | 0
124 |
125 |
126 |
127 | AMERISOURCEBERGEN CORP
128 | COM
129 | 03073E105
130 | 99159
131 |
132 | 1166299
133 | SH
134 |
135 | SOLE
136 |
137 | 1166299
138 | 0
139 | 0
140 |
141 |
142 |
143 | ATARA BIOTHERAPEUTICS INC
144 | COM
145 | 046513107
146 | 136848
147 |
148 | 8308900
149 | SH
150 |
151 | SOLE
152 |
153 | 8308900
154 | 0
155 | 0
156 |
157 |
158 |
159 | BRISTOL MYERS SQUIBB CO
160 | COM
161 | 110122108
162 | 256760
163 |
164 | 4000000
165 | SH
166 |
167 | SOLE
168 |
169 | 4000000
170 | 0
171 | 0
172 |
173 |
174 |
175 | CARS COM INC
176 | COM
177 | 14575E105
178 | 33083
179 |
180 | 2707313
181 | SH
182 |
183 | SOLE
184 |
185 | 2707313
186 | 0
187 | 0
188 |
189 |
190 |
191 | CHENIERE ENERGY INC
192 | COM NEW
193 | 16411R208
194 | 619197
195 |
196 | 10139133
197 | SH
198 |
199 | SOLE
200 |
201 | 10139133
202 | 0
203 | 0
204 |
205 |
206 |
207 | COLONY CAP INC NEW
208 | CL A COM
209 | 19626G108
210 | 236015
211 |
212 | 49687370
213 | SH
214 |
215 | SOLE
216 |
217 | 49687370
218 | 0
219 | 0
220 |
221 |
222 |
223 | EBAY INC
224 | COM
225 | 278642103
226 | 722018
227 |
228 | 19994970
229 | SH
230 |
231 | SOLE
232 |
233 | 19994970
234 | 0
235 | 0
236 |
237 |
238 |
239 | ELDORADO RESORTS INC
240 | COM
241 | 28470R102
242 | 23202
243 |
244 | 389026
245 | SH
246 |
247 | SOLE
248 |
249 | 389026
250 | 0
251 | 0
252 |
253 |
254 |
255 | FOX CORP
256 | CL A COM
257 | 35137L105
258 | 1012853
259 |
260 | 27322720
261 | SH
262 |
263 | SOLE
264 |
265 | 27322720
266 | 0
267 | 0
268 |
269 |
270 |
271 | FOX CORP
272 | CL B COM
273 | 35137L204
274 | 206763
275 |
276 | 5680307
277 | SH
278 |
279 | SOLE
280 |
281 | 5680307
282 | 0
283 | 0
284 |
285 |
286 |
287 | HP INC
288 | COM
289 | 40434L105
290 | 205500
291 |
292 | 10000000
293 | SH
294 |
295 | SOLE
296 |
297 | 10000000
298 | 0
299 | 0
300 |
301 |
302 |
303 | LIBERTY GLOBAL PLC
304 | SHS CL A
305 | G5480U104
306 | 174125
307 |
308 | 7657205
309 | SH
310 |
311 | SOLE
312 |
313 | 7657205
314 | 0
315 | 0
316 |
317 |
318 |
319 | LIBERTY GLOBAL PLC
320 | SHS CL C
321 | G5480U120
322 | 1141905
323 |
324 | 52392995
325 | SH
326 |
327 | SOLE
328 |
329 | 52392995
330 | 0
331 | 0
332 |
333 |
334 |
335 | MCDERMOTT INTL INC
336 | COM
337 | 580037703
338 | 535
339 |
340 | 805693
341 | SH
342 |
343 | SOLE
344 |
345 | 805693
346 | 0
347 | 0
348 |
349 |
350 |
351 | MCKESSON CORP
352 | COM
353 | 58155Q103
354 | 220968
355 |
356 | 1597516
357 | SH
358 |
359 | SOLE
360 |
361 | 1597516
362 | 0
363 | 0
364 |
365 |
366 |
367 | NEXSTAR MEDIA GROUP INC
368 | CL A
369 | 65336K103
370 | 234500
371 |
372 | 2000000
373 | SH
374 |
375 | SOLE
376 |
377 | 2000000
378 | 0
379 | 0
380 |
381 |
382 |
383 | NUANCE COMMUNICATIONS INC
384 | COM
385 | 67020Y100
386 | 40997
387 |
388 | 2299300
389 | SH
390 |
391 | SOLE
392 |
393 | 2299300
394 | 0
395 | 0
396 |
397 |
398 |
399 | PG&E CORP
400 | COM
401 | 69331C108
402 | 205306
403 |
404 | 18887403
405 | SH
406 |
407 | SOLE
408 |
409 | 18887403
410 | 0
411 | 0
412 |
413 |
414 |
415 | QORVO INC
416 | COM
417 | 74736K101
418 | 319633
419 |
420 | 2750000
421 | SH
422 |
423 | SOLE
424 |
425 | 2750000
426 | 0
427 | 0
428 |
429 |
430 |
431 | SYNCHRONY FINL
432 | COM
433 | 87165B103
434 | 108173
435 |
436 | 3003981
437 | SH
438 |
439 | SOLE
440 |
441 | 3003981
442 | 0
443 | 0
444 |
445 |
446 |
447 | TESLA INC
448 | NOTE 2.375% 3/1
449 | 88160RAD3
450 | 421512
451 |
452 | 300000000
453 | PRN
454 |
455 | SOLE
456 |
457 | 300000000
458 | 0
459 | 0
460 |
461 |
462 |
463 | THERAVANCE BIOPHARMA INC
464 | COM
465 | G8807B106
466 | 241014
467 |
468 | 9309168
469 | SH
470 |
471 | SOLE
472 |
473 | 9309168
474 | 0
475 | 0
476 |
477 |
478 |
479 | THERAVANCE BIOPHARMA INC
480 | NOTE 3.250%11/0
481 | 88339KAA0
482 | 31118
483 |
484 | 30000000
485 | PRN
486 |
487 | SOLE
488 |
489 | 30000000
490 | 0
491 | 0
492 |
493 |
494 |
495 | TRANSLATE BIO INC
496 | COM
497 | 89374L104
498 | 141358
499 |
500 | 17544239
501 | SH
502 |
503 | SOLE
504 |
505 | 17544239
506 | 0
507 | 0
508 |
509 |
510 |
511 | TRILOGY METALS INC NEW
512 | COM
513 | 89621C105
514 | 31520
515 |
516 | 12182568
517 | SH
518 |
519 | SOLE
520 |
521 | 12182568
522 | 0
523 | 0
524 |
525 |
526 |
527 | UNIVAR SOLUTIONS INC
528 | COM
529 | 91336L107
530 | 230280
531 |
532 | 9500000
533 | SH
534 |
535 | SOLE
536 |
537 | 9500000
538 | 0
539 | 0
540 |
541 |
542 |
543 | VERITIV CORP
544 | COM
545 | 923454102
546 | 70113
547 |
548 | 3564439
549 | SH
550 |
551 | SOLE
552 |
553 | 3564439
554 | 0
555 | 0
556 |
557 |
558 |
559 | VIACOMCBS INC
560 | CL B
561 | 92556H206
562 | 713490
563 |
564 | 17000000
565 | SH
566 |
567 | SOLE
568 |
569 | 17000000
570 | 0
571 | 0
572 |
573 |
574 |
575 | VIASAT INC
576 | COM
577 | 92552V100
578 | 1005119
579 |
580 | 13732068
581 | SH
582 |
583 | SOLE
584 |
585 | 13732068
586 | 0
587 | 0
588 |
589 |
590 |
591 | VISTA OIL & GAS S A B DE C V
592 | SPONSORED ADS
593 | 92837L109
594 | 48474
595 |
596 | 6175000
597 | SH
598 |
599 | SOLE
600 |
601 | 6175000
602 | 0
603 | 0
604 |
605 |
606 |
607 |
608 |
609 |
610 |
611 |
--------------------------------------------------------------------------------
/Edgar filings_XML/0001061768/13f/0001567619-20-010141.txt:
--------------------------------------------------------------------------------
1 | 0001567619-20-010141.txt : 20200514
2 | 0001567619-20-010141.hdr.sgml : 20200514
3 | 20200514164713
4 | ACCESSION NUMBER: 0001567619-20-010141
5 | CONFORMED SUBMISSION TYPE: 13F-HR
6 | PUBLIC DOCUMENT COUNT: 2
7 | CONFORMED PERIOD OF REPORT: 20200331
8 | FILED AS OF DATE: 20200514
9 | DATE AS OF CHANGE: 20200514
10 | EFFECTIVENESS DATE: 20200514
11 |
12 | FILER:
13 |
14 | COMPANY DATA:
15 | COMPANY CONFORMED NAME: BAUPOST GROUP LLC/MA
16 | CENTRAL INDEX KEY: 0001061768
17 | IRS NUMBER: 043402144
18 | STATE OF INCORPORATION: DE
19 |
20 | FILING VALUES:
21 | FORM TYPE: 13F-HR
22 | SEC ACT: 1934 Act
23 | SEC FILE NUMBER: 028-07120
24 | FILM NUMBER: 20878526
25 |
26 | BUSINESS ADDRESS:
27 | STREET 1: 10 ST JAMES AVE
28 | STREET 2: SUITE 1700
29 | CITY: BOSTON
30 | STATE: MA
31 | ZIP: 02116
32 | BUSINESS PHONE: 617-210-8300
33 |
34 | MAIL ADDRESS:
35 | STREET 1: 10 ST JAMES AVE
36 | STREET 2: SUITE 1700
37 | CITY: BOSTON
38 | STATE: MA
39 | ZIP: 02116
40 |
41 |
42 | 13F-HR
43 | 1
44 | primary_doc.xml
45 |
46 |
47 |
48 |
49 |
50 | 13F-HR
51 |
52 | LIVE
53 |
54 | false
55 | true
56 | false
57 |
58 |
59 |
60 | 0001061768
61 | XXXXXXXX
62 |
63 |
64 | 03-31-2020
65 |
66 |
67 |
68 |
69 | 03-31-2020
70 |
71 | BAUPOST GROUP LLC/MA
72 |
73 | 10 ST JAMES AVE
74 | SUITE 1700
75 | BOSTON
76 | MA
77 | 02116
78 |
79 |
80 | 13F HOLDINGS REPORT
81 | 028-07120
82 | N
83 |
84 |
85 | James F. Mooney III
86 | President and Partner
87 | 617-210-8300
88 | James F. Mooney III
89 | Boston
90 | MA
91 | 05-14-2020
92 |
93 |
94 | 0
95 | 33
96 | 6774358
97 | false
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | INFORMATION TABLE
106 | 2
107 | form13fInfoTable.xml
108 |
109 |
110 |
111 | AKEBIA THERAPEUTICS INC
112 | COM
113 | 00972D105
114 | 132862
115 |
116 | 17527968
117 | SH
118 |
119 | SOLE
120 |
121 | 17527968
122 | 0
123 | 0
124 |
125 |
126 |
127 | ALPHABET INC
128 | CAP STK CL C
129 | 02079K107
130 | 349424
131 |
132 | 300500
133 | SH
134 |
135 | SOLE
136 |
137 | 300500
138 | 0
139 | 0
140 |
141 |
142 |
143 | AMERISOURCEBERGEN CORP
144 | COM
145 | 03073E105
146 | 82862
147 |
148 | 936299
149 | SH
150 |
151 | SOLE
152 |
153 | 936299
154 | 0
155 | 0
156 |
157 |
158 |
159 | ATARA BIOTHERAPEUTICS INC
160 | COM
161 | 046513107
162 | 70709
163 |
164 | 8308900
165 | SH
166 |
167 | SOLE
168 |
169 | 8308900
170 | 0
171 | 0
172 |
173 |
174 |
175 | CARS COM INC
176 | COM
177 | 14575E105
178 | 12900
179 |
180 | 3000000
181 | SH
182 |
183 | SOLE
184 |
185 | 3000000
186 | 0
187 | 0
188 |
189 |
190 |
191 | CHENIERE ENERGY INC
192 | COM NEW
193 | 16411R208
194 | 272162
195 |
196 | 8124235
197 | SH
198 |
199 | SOLE
200 |
201 | 8124235
202 | 0
203 | 0
204 |
205 |
206 |
207 | COLONY CAP INC NEW
208 | CL A COM
209 | 19626G108
210 | 86953
211 |
212 | 49687370
213 | SH
214 |
215 | SOLE
216 |
217 | 49687370
218 | 0
219 | 0
220 |
221 |
222 |
223 | EBAY INC
224 | COM
225 | 278642103
226 | 964505
227 |
228 | 32086000
229 | SH
230 |
231 | SOLE
232 |
233 | 32086000
234 | 0
235 | 0
236 |
237 |
238 |
239 | ENERGY TRANSFER LP
240 | COM UT LTD PTN
241 | 29273V100
242 | 55683
243 |
244 | 12105005
245 | SH
246 |
247 | SOLE
248 |
249 | 12105005
250 | 0
251 | 0
252 |
253 |
254 |
255 | FACEBOOK INC
256 | CL A
257 | 30303M102
258 | 330931
259 |
260 | 1984000
261 | SH
262 |
263 | SOLE
264 |
265 | 1984000
266 | 0
267 | 0
268 |
269 |
270 |
271 | FOX CORP
272 | CL A COM
273 | 35137L105
274 | 645636
275 |
276 | 27322720
277 | SH
278 |
279 | SOLE
280 |
281 | 27322720
282 | 0
283 | 0
284 |
285 |
286 |
287 | FOX CORP
288 | CL B COM
289 | 35137L204
290 | 129965
291 |
292 | 5680307
293 | SH
294 |
295 | SOLE
296 |
297 | 5680307
298 | 0
299 | 0
300 |
301 |
302 |
303 | HD SUPPLY HLDGS INC
304 | COM
305 | 40416M105
306 | 176776
307 |
308 | 6217930
309 | SH
310 |
311 | SOLE
312 |
313 | 6217930
314 | 0
315 | 0
316 |
317 |
318 |
319 | HP INC
320 | COM
321 | 40434L105
322 | 347200
323 |
324 | 20000000
325 | SH
326 |
327 | SOLE
328 |
329 | 20000000
330 | 0
331 | 0
332 |
333 |
334 |
335 | LIBERTY GLOBAL PLC
336 | SHS CL A
337 | G5480U104
338 | 126420
339 |
340 | 7657205
341 | SH
342 |
343 | SOLE
344 |
345 | 7657205
346 | 0
347 | 0
348 |
349 |
350 |
351 | LIBERTY GLOBAL PLC
352 | SHS CL C
353 | G5480U120
354 | 843712
355 |
356 | 53705407
357 | SH
358 |
359 | SOLE
360 |
361 | 53705407
362 | 0
363 | 0
364 |
365 |
366 |
367 | LIBERTY MEDIA CORP DEL
368 | COM A SIRIUSXM
369 | 531229409
370 | 19824
371 |
372 | 625568
373 | SH
374 |
375 | SOLE
376 |
377 | 625568
378 | 0
379 | 0
380 |
381 |
382 |
383 | LIBERTY MEDIA CORP DEL
384 | COM C SIRIUSXM
385 | 531229607
386 | 39655
387 |
388 | 1254100
389 | SH
390 |
391 | SOLE
392 |
393 | 1254100
394 | 0
395 | 0
396 |
397 |
398 |
399 | MCKESSON CORP
400 | COM
401 | 58155Q103
402 | 225773
403 |
404 | 1669181
405 | SH
406 |
407 | SOLE
408 |
409 | 1669181
410 | 0
411 | 0
412 |
413 |
414 |
415 | NEXSTAR MEDIA GROUP INC
416 | CL A
417 | 65336K103
418 | 120367
419 |
420 | 2085000
421 | SH
422 |
423 | SOLE
424 |
425 | 2085000
426 | 0
427 | 0
428 |
429 |
430 |
431 | PG&E CORP
432 | COM
433 | 69331C108
434 | 87225
435 |
436 | 9702443
437 | SH
438 |
439 | SOLE
440 |
441 | 9702443
442 | 0
443 | 0
444 |
445 |
446 |
447 | QORVO INC
448 | COM
449 | 74736K101
450 | 246928
451 |
452 | 3062486
453 | SH
454 |
455 | SOLE
456 |
457 | 3062486
458 | 0
459 | 0
460 |
461 |
462 |
463 | SPIRIT AEROSYSTEMS HLDGS INC
464 | COM CL A
465 | 848574109
466 | 25552
467 |
468 | 1067781
469 | SH
470 |
471 | SOLE
472 |
473 | 1067781
474 | 0
475 | 0
476 |
477 |
478 |
479 | THERAVANCE BIOPHARMA INC
480 | COM
481 | G8807B106
482 | 215135
483 |
484 | 9309168
485 | SH
486 |
487 | SOLE
488 |
489 | 9309168
490 | 0
491 | 0
492 |
493 |
494 |
495 | THERAVANCE BIOPHARMA INC
496 | NOTE 3.250%11/0
497 | 88339KAA0
498 | 28688
499 |
500 | 30000000
501 | PRN
502 |
503 | SOLE
504 |
505 | 30000000
506 | 0
507 | 0
508 |
509 |
510 |
511 | TRANSLATE BIO INC
512 | COM
513 | 89374L104
514 | 171071
515 |
516 | 17544239
517 | SH
518 |
519 | SOLE
520 |
521 | 17544239
522 | 0
523 | 0
524 |
525 |
526 |
527 | TRILOGY METALS INC NEW
528 | COM
529 | 89621C105
530 | 16396
531 |
532 | 12182568
533 | SH
534 |
535 | SOLE
536 |
537 | 12182568
538 | 0
539 | 0
540 |
541 |
542 |
543 | UNIVAR SOLUTIONS INC
544 | COM
545 | 91336L107
546 | 58960
547 |
548 | 5500000
549 | SH
550 |
551 | SOLE
552 |
553 | 5500000
554 | 0
555 | 0
556 |
557 |
558 |
559 | VERITIV CORP
560 | COM
561 | 923454102
562 | 28016
563 |
564 | 3564439
565 | SH
566 |
567 | SOLE
568 |
569 | 3564439
570 | 0
571 | 0
572 |
573 |
574 |
575 | VIACOMCBS INC
576 | CL B
577 | 92556H206
578 | 315225
579 |
580 | 22500000
581 | SH
582 |
583 | SOLE
584 |
585 | 22500000
586 | 0
587 | 0
588 |
589 |
590 |
591 | VIASAT INC
592 | COM
593 | 92552V100
594 | 493256
595 |
596 | 13732068
597 | SH
598 |
599 | SOLE
600 |
601 | 13732068
602 | 0
603 | 0
604 |
605 |
606 |
607 | VISTA OIL & GAS S A B DE C V
608 | SPONSORED ADS
609 | 92837L109
610 | 12350
611 |
612 | 6175000
613 | SH
614 |
615 | SOLE
616 |
617 | 6175000
618 | 0
619 | 0
620 |
621 |
622 |
623 | XPO LOGISTICS INC
624 | COM
625 | 983793100
626 | 41237
627 |
628 | 845877
629 | SH
630 |
631 | SOLE
632 |
633 | 845877
634 | 0
635 | 0
636 |
637 |
638 |
639 |
640 |
641 |
642 |
643 |
--------------------------------------------------------------------------------
/Edgar filings_XML/0001061768/13f/0001567619-20-015100.txt:
--------------------------------------------------------------------------------
1 | 0001567619-20-015100.txt : 20200813
2 | 0001567619-20-015100.hdr.sgml : 20200813
3 | 20200813162248
4 | ACCESSION NUMBER: 0001567619-20-015100
5 | CONFORMED SUBMISSION TYPE: 13F-HR
6 | PUBLIC DOCUMENT COUNT: 2
7 | CONFORMED PERIOD OF REPORT: 20200630
8 | FILED AS OF DATE: 20200813
9 | DATE AS OF CHANGE: 20200813
10 | EFFECTIVENESS DATE: 20200813
11 |
12 | FILER:
13 |
14 | COMPANY DATA:
15 | COMPANY CONFORMED NAME: BAUPOST GROUP LLC/MA
16 | CENTRAL INDEX KEY: 0001061768
17 | IRS NUMBER: 043402144
18 | STATE OF INCORPORATION: DE
19 |
20 | FILING VALUES:
21 | FORM TYPE: 13F-HR
22 | SEC ACT: 1934 Act
23 | SEC FILE NUMBER: 028-07120
24 | FILM NUMBER: 201099654
25 |
26 | BUSINESS ADDRESS:
27 | STREET 1: 10 ST JAMES AVE
28 | STREET 2: SUITE 1700
29 | CITY: BOSTON
30 | STATE: MA
31 | ZIP: 02116
32 | BUSINESS PHONE: 617-210-8300
33 |
34 | MAIL ADDRESS:
35 | STREET 1: 10 ST JAMES AVE
36 | STREET 2: SUITE 1700
37 | CITY: BOSTON
38 | STATE: MA
39 | ZIP: 02116
40 |
41 |
42 | 13F-HR
43 | 1
44 | primary_doc.xml
45 |
46 |
47 |
48 |
49 |
50 | 13F-HR
51 |
52 | LIVE
53 |
54 | false
55 | true
56 | false
57 |
58 |
59 |
60 | 0001061768
61 | XXXXXXXX
62 |
63 |
64 | 06-30-2020
65 |
66 |
67 |
68 |
69 | 06-30-2020
70 |
71 | BAUPOST GROUP LLC/MA
72 |
73 | 10 ST JAMES AVE
74 | SUITE 1700
75 | BOSTON
76 | MA
77 | 02116
78 |
79 |
80 | 13F HOLDINGS REPORT
81 | 028-07120
82 | N
83 |
84 |
85 | James F. Mooney III
86 | President and Partner
87 | 617-210-8300
88 | James F. Mooney III
89 | Boston
90 | MA
91 | 08-13-2020
92 |
93 |
94 | 0
95 | 31
96 | 8010989
97 | false
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | INFORMATION TABLE
106 | 2
107 | form13fInfoTable.xml
108 |
109 |
110 |
111 | AKEBIA THERAPEUTICS INC
112 | COM
113 | 00972D105
114 | 203700
115 |
116 | 15000000
117 | SH
118 |
119 | SOLE
120 |
121 | 15000000
122 | 0
123 | 0
124 |
125 |
126 |
127 | ALPHABET INC
128 | CAP STK CL C
129 | 02079K107
130 | 303474
131 |
132 | 214680
133 | SH
134 |
135 | SOLE
136 |
137 | 214680
138 | 0
139 | 0
140 |
141 |
142 |
143 | AMERISOURCEBERGEN CORP
144 | COM
145 | 03073E105
146 | 47175
147 |
148 | 468150
149 | SH
150 |
151 | SOLE
152 |
153 | 468150
154 | 0
155 | 0
156 |
157 |
158 |
159 | ATARA BIOTHERAPEUTICS INC
160 | COM
161 | 046513107
162 | 144564
163 |
164 | 9922030
165 | SH
166 |
167 | SOLE
168 |
169 | 9922030
170 | 0
171 | 0
172 |
173 |
174 |
175 | COLONY CAP INC NEW
176 | CL A COM
177 | 19626G108
178 | 61650
179 |
180 | 25687370
181 | SH
182 |
183 | SOLE
184 |
185 | 25687370
186 | 0
187 | 0
188 |
189 |
190 |
191 | EBAY INC.
192 | COM
193 | 278642103
194 | 1682911
195 |
196 | 32086000
197 | SH
198 |
199 | SOLE
200 |
201 | 32086000
202 | 0
203 | 0
204 |
205 |
206 |
207 | FACEBOOK INC
208 | CL A
209 | 30303M102
210 | 193350
211 |
212 | 851500
213 | SH
214 |
215 | SOLE
216 |
217 | 851500
218 | 0
219 | 0
220 |
221 |
222 |
223 | FOX CORP
224 | CL A COM
225 | 35137L105
226 | 732795
227 |
228 | 27322720
229 | SH
230 |
231 | SOLE
232 |
233 | 27322720
234 | 0
235 | 0
236 |
237 |
238 |
239 | FOX CORP
240 | CL B COM
241 | 35137L204
242 | 152459
243 |
244 | 5680307
245 | SH
246 |
247 | SOLE
248 |
249 | 5680307
250 | 0
251 | 0
252 |
253 |
254 |
255 | HCA HEALTHCARE INC
256 | COM
257 | 40412C101
258 | 97060
259 |
260 | 1000000
261 | SH
262 |
263 | SOLE
264 |
265 | 1000000
266 | 0
267 | 0
268 |
269 |
270 |
271 | HD SUPPLY HLDGS INC
272 | COM
273 | 40416M105
274 | 229438
275 |
276 | 6621583
277 | SH
278 |
279 | SOLE
280 |
281 | 6621583
282 | 0
283 | 0
284 |
285 |
286 |
287 | HP INC
288 | COM
289 | 40434L105
290 | 313752
291 |
292 | 18000681
293 | SH
294 |
295 | SOLE
296 |
297 | 18000681
298 | 0
299 | 0
300 |
301 |
302 |
303 | LIBERTY GLOBAL PLC
304 | SHS CL A
305 | G5480U104
306 | 167387
307 |
308 | 7657205
309 | SH
310 |
311 | SOLE
312 |
313 | 7657205
314 | 0
315 | 0
316 |
317 |
318 |
319 | LIBERTY GLOBAL PLC
320 | SHS CL C
321 | G5480U120
322 | 1173487
323 |
324 | 54555407
325 | SH
326 |
327 | SOLE
328 |
329 | 54555407
330 | 0
331 | 0
332 |
333 |
334 |
335 | LIBERTY MEDIA CORP DEL
336 | COM C SIRIUSXM
337 | 531229607
338 | 6369
339 |
340 | 184867
341 | SH
342 |
343 | SOLE
344 |
345 | 184867
346 | 0
347 | 0
348 |
349 |
350 |
351 | MCKESSON CORP
352 | COM
353 | 58155Q103
354 | 256086
355 |
356 | 1669181
357 | SH
358 |
359 | SOLE
360 |
361 | 1669181
362 | 0
363 | 0
364 |
365 |
366 |
367 | NEXSTAR MEDIA GROUP INC
368 | CL A
369 | 65336K103
370 | 174494
371 |
372 | 2085000
373 | SH
374 |
375 | SOLE
376 |
377 | 2085000
378 | 0
379 | 0
380 |
381 |
382 |
383 | PG&E CORP
384 | COM
385 | 69331C108
386 | 41711
387 |
388 | 4702443
389 | SH
390 |
391 | SOLE
392 |
393 | 4702443
394 | 0
395 | 0
396 |
397 |
398 |
399 | QORVO INC
400 | COM
401 | 74736K101
402 | 338784
403 |
404 | 3065086
405 | SH
406 |
407 | SOLE
408 |
409 | 3065086
410 | 0
411 | 0
412 |
413 |
414 |
415 | SS&C TECHNOLOGIES HLDGS INC
416 | COM
417 | 78467J100
418 | 7936
419 |
420 | 140516
421 | SH
422 |
423 | SOLE
424 |
425 | 140516
426 | 0
427 | 0
428 |
429 |
430 |
431 | THERAVANCE BIOPHARMA INC
432 | COM
433 | G8807B106
434 | 195399
435 |
436 | 9309168
437 | SH
438 |
439 | SOLE
440 |
441 | 9309168
442 | 0
443 | 0
444 |
445 |
446 |
447 | THERAVANCE BIOPHARMA INC
448 | NOTE 3.250%11/0
449 | 88339KAA0
450 | 29184
451 |
452 | 30000000
453 | PRN
454 |
455 | SOLE
456 |
457 | 30000000
458 | 0
459 | 0
460 |
461 |
462 |
463 | TRANSLATE BIO INC
464 | COM
465 | 89374L104
466 | 319122
467 |
468 | 18044239
469 | SH
470 |
471 | SOLE
472 |
473 | 18044239
474 | 0
475 | 0
476 |
477 |
478 |
479 | TRILOGY METALS INC NEW
480 | COM
481 | 89621C105
482 | 24252
483 |
484 | 12182568
485 | SH
486 |
487 | SOLE
488 |
489 | 12182568
490 | 0
491 | 0
492 |
493 |
494 |
495 | UNIVAR SOLUTIONS INC
496 | COM
497 | 91336L107
498 | 21636
499 |
500 | 1283248
501 | SH
502 |
503 | SOLE
504 |
505 | 1283248
506 | 0
507 | 0
508 |
509 |
510 |
511 | VENTAS INC
512 | COM
513 | 92276F100
514 | 20141
515 |
516 | 550000
517 | SH
518 |
519 | SOLE
520 |
521 | 550000
522 | 0
523 | 0
524 |
525 |
526 |
527 | VERINT SYS INC
528 | COM
529 | 92343X100
530 | 27846
531 |
532 | 616328
533 | SH
534 |
535 | SOLE
536 |
537 | 616328
538 | 0
539 | 0
540 |
541 |
542 |
543 | VERITIV CORP
544 | COM
545 | 923454102
546 | 60453
547 |
548 | 3564439
549 | SH
550 |
551 | SOLE
552 |
553 | 3564439
554 | 0
555 | 0
556 |
557 |
558 |
559 | VIACOMCBS INC
560 | CL B
561 | 92556H206
562 | 439292
563 |
564 | 18837585
565 | SH
566 |
567 | SOLE
568 |
569 | 18837585
570 | 0
571 | 0
572 |
573 |
574 |
575 | VIASAT INC
576 | COM
577 | 92552V100
578 | 526899
579 |
580 | 13732068
581 | SH
582 |
583 | SOLE
584 |
585 | 13732068
586 | 0
587 | 0
588 |
589 |
590 |
591 | VISTA OIL & GAS S A B DE C V
592 | SPONSORED ADS
593 | 92837L109
594 | 18183
595 |
596 | 5961709
597 | SH
598 |
599 | SOLE
600 |
601 | 5961709
602 | 0
603 | 0
604 |
605 |
606 |
607 |
608 |
609 |
610 |
611 |
--------------------------------------------------------------------------------
/Filing13FHR.py:
--------------------------------------------------------------------------------
1 | """
2 | Author: Pepe Tan
3 | Date: 2020-10-06
4 | MIT License
5 | """
6 |
7 |
8 | import pandas as pd
9 | from bs4 import BeautifulSoup
10 | from ticker_class import Ticker
11 | from datetime import datetime
12 |
13 |
14 |
15 | class Filing13F:
16 | """
17 | Class containing common stock portfolio information from an institutional investor.
18 | 1. Parsed from 13F-HR filing from SEC Edgar database.
19 |
20 | """
21 |
22 | # If True prints out results in console
23 | debug = False
24 |
25 |
26 | def __init__(self,filepath=''):
27 | """ Initialize object """
28 | self.filepath = filepath # Path of file
29 |
30 | # Directly call parse_file() when filepath is provided with __init__
31 | if self.filepath:
32 | self.parse_file(self.filepath)
33 |
34 |
35 | def parse_file(self, filepath=''):
36 | """ Parses relevant information from 13F-HR text file """
37 | self.filepath = filepath # Path of file
38 |
39 | if self.debug:
40 | print(self.filepath)
41 |
42 | # Opens document and passes to BeautifulSoup object.
43 | doc = open(filepath)
44 | soup = BeautifulSoup(doc, 'html.parser') # OBS! XML parser will not work with SEC txt format
45 |
46 | # Print document structure and tags in console
47 | if self.debug:
48 | print(soup.prettify())
49 |
50 | for tag in soup.find_all(True):
51 | print(tag.name)
52 |
53 | ## --- Parse content using tag strings from txt document: content
54 | # OBS html.parser uses tags in lowercase
55 |
56 | # Name of filing company
57 | self.company = soup.find('filingmanager').find('name').string
58 | # Company identifier: Central Index Key
59 | self.CIK = soup.find('cik').string
60 | # Form type: 13F-HR
61 | self.formtype = soup.find('type').string
62 | # 13F-HR file number
63 | self.fileNumber = soup.find('form13ffilenumber').string
64 | # Reporting date (e.g. 03-31-2020)
65 | self.period_of_report_date = datetime.strptime(soup.find('periodofreport').string, '%m-%d-%Y').date()
66 | # Filing date (up to 45 days after reporting date)
67 | self.filing_date = datetime.strptime(soup.find('signaturedate').string, '%m-%d-%Y').date()
68 |
69 | ## --- Parse stock list: Each stock is marked with an infoTable parent tag
70 | stocklist = soup.find_all('infotable') # List of parent tag objects
71 |
72 | # Initialize lists
73 | name = [] # Company name
74 | cusip = [] # CUSIP identifier
75 | value = [] # Total value of holdings
76 | amount = [] # Amount of stocks
77 | price_per_share = [] # Share price on reporting day != purchase price
78 | poc = [] # Put/Call options
79 | symbol = [] # Trading symbol
80 |
81 | # Fill lists with each stock
82 | for s in stocklist:
83 | # Company name & Title of class (e.g. COM, Class A, etc)
84 | n = s.find("nameofissuer").string
85 | n = n.replace('.','') # Remove dots
86 |
87 | c = s.find("titleofclass").string
88 | if c != "COM":
89 | name.append(n+" ("+c+")")
90 | else:
91 | name.append(n)
92 |
93 | # CUSIP identifier
94 | cusip.append(s.find("cusip").string)
95 | # Total value of holdings
96 | v = int(s.find("value").string)
97 | value.append(v)
98 | # Amount of stocks
99 | ssh = int(s.find("shrsorprnamt").find("sshprnamt").string)
100 | amount.append(ssh)
101 | # Share price on reporting day (OBS! != purchase price)
102 | price_per_share.append(round(v*1000/ssh,2))
103 |
104 | # Put/Call options
105 | put_or_call = s.find("putcall")
106 | if put_or_call:
107 | poc.append(put_or_call.string)
108 | else:
109 | poc.append('No')
110 |
111 |
112 | # Create dictionary
113 | stock_dict = {"filed name":name, "cusip":cusip, "value":value, "amount":amount,
114 | "price_per_share":price_per_share, "put_or_call":poc}
115 | # Store in dataframe
116 | data = pd.DataFrame(stock_dict)
117 |
118 | # Drop rows with put/call option
119 | indexes = data[ data['put_or_call'] != 'No' ].index
120 | data.drop(indexes, inplace=True)
121 | # data.set_index('symbol', inplace=True)
122 | data.set_index('filed name', inplace=True)
123 |
124 | self.data = data
125 |
126 | return
127 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 zpetan
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Portfolio13FHR.py:
--------------------------------------------------------------------------------
1 | """
2 | Author: Pepe Tan
3 | Date: 2020-10-06
4 | MIT License
5 | """
6 |
7 | import os
8 | import numpy as np
9 | import pandas as pd
10 | from Filing13FHR import Filing13F
11 | from secedgar.filings import Filing, FilingType
12 |
13 |
14 | import matplotlib.pyplot as plt
15 | import matplotlib.colors as colors
16 | import matplotlib.cm as cmx
17 | import seaborn as sns
18 |
19 | import yfinance as yf
20 |
21 |
22 | from bokeh.plotting import ColumnDataSource, figure, output_file, show, save
23 | from bokeh.layouts import gridplot
24 | from bokeh.models import HoverTool, BoxAnnotation, Span, Label, Arrow, NormalHead
25 | from collections import OrderedDict
26 | from datetime import date, timedelta
27 |
28 |
29 | class Portfolio:
30 | """
31 | Class containing common stock portfolio information from an institutional investor.
32 | 1. Retrieves quarterly SEC 13F-HR filings from SEC Edgar database.
33 | 2. Creates a 'self.data_recent' DataFrame which contains the absolute
34 | and relative changes in amount of shares and portfolio weigth
35 | (with respect to the reported total portfolio value) since the last filing.
36 | 3. Creates a 'self.data_recent_additions' DataFrame with the additions
37 | in amount of shares since the last filing.
38 | 4. Visualizations using 'self.plot_recent_shares_change(df)'
39 | and 'self.plot_recent_value_change(df)'.
40 | 5. Stock analysis: Recent trading day vs. reporting period
41 | via Bokeh plot.
42 |
43 | """
44 |
45 | # If True prints out results in console
46 | debug = False
47 |
48 | def __init__(self,CIK='',Name=''):
49 | """ Sets up object """
50 | self.CIK = CIK # Company identifier: Central Index Key
51 | self.Name = Name # Company name
52 |
53 | # Directly call functions when filename is provided upon __init__
54 | if self.CIK:
55 | self.retrieve_filings(self.CIK)
56 | self.parse_all()
57 |
58 |
59 | def retrieve_filings(self, CIK=''):
60 | """ Download latest filings from SEC Edgar system into directory in pseudo html/xml .txt format """
61 | self.CIK = CIK
62 |
63 | self.filings = Filing(cik_lookup=self.CIK,
64 | filing_type=FilingType.FILING_13F,
65 | count=4) # Set count=4 for the last four filings
66 |
67 | foldername = 'Edgar filings_XML'
68 | self.filings.save(foldername)
69 | self.directory = foldername + '/' + self.CIK + '/13f' # example: "Edgar filings_XML/CIK/13f"
70 | return
71 |
72 | def parse_all(self):
73 | """ Creates parsed Filing13F instance for all text documents in directory """
74 | self.docs = [d for d in os.listdir(self.directory) if d.endswith('.txt')] # List of document names
75 |
76 | if self.debug:
77 | print(self.docs)
78 |
79 | self.parsed_filings = []
80 | for doc in self.docs:
81 | filepath = self.directory + '/' + doc
82 |
83 | if self.debug:
84 | print(filepath)
85 |
86 | self.parsed_filings.append(Filing13F(filepath))
87 |
88 | return
89 |
90 | def compare_recent_changes(self):
91 | """ Analysis of the two most recent filings """
92 |
93 | # Retrieve filed report date
94 | report_dates = []
95 | filing_dates = []
96 |
97 | for f in self.parsed_filings:
98 |
99 | report_dates.append(f.period_of_report_date)
100 | filing_dates.append(f.filing_date)
101 |
102 | # Sort and retrieve two most recent portfolios
103 | report_dates.sort(reverse=True) # Most recent first
104 | filing_dates.sort(reverse=True) # Most recent first
105 |
106 |
107 | self.current_report_date = report_dates[0]
108 | self.previous_report_date = report_dates[1]
109 |
110 | self.current_filing_date = filing_dates[0]
111 | self.previous_filing_date = filing_dates[1]
112 |
113 | for f in self.parsed_filings:
114 |
115 | if f.period_of_report_date == self.current_report_date:
116 | data_current = f.data
117 | data_current['shares_current'] = data_current['amount']
118 | data_current['value_current'] = data_current['value']
119 |
120 | elif f.period_of_report_date == self.previous_report_date:
121 | data_previous = f.data
122 | data_previous['shares_previous'] = data_previous['amount']
123 | data_previous['value_previous'] = data_previous['value']
124 |
125 |
126 | dataDiff = pd.concat([data_previous['shares_previous'], data_current['shares_current'] ],
127 | axis=1, join='outer')
128 |
129 | dataDiff.fillna(value=0, inplace=True)
130 |
131 |
132 | dataDiff['shares_change_abs'] = ( dataDiff['shares_current'] - dataDiff['shares_previous'] )
133 | dataDiff['shares_change_perc'] = round(100*( dataDiff['shares_current'] - dataDiff['shares_previous'] ) / dataDiff['shares_previous'],1)
134 | dataDiff['shares_change_perc'].replace(np.inf, 100, inplace=True)
135 |
136 |
137 | dataDiff = pd.concat([ dataDiff, data_previous['value_previous'], data_current['value_current'] ], axis=1, join='outer')
138 | dataDiff.fillna(value=0, inplace=True)
139 |
140 |
141 |
142 | dataDiff['value_change_abs'] = ( dataDiff['value_current'] - dataDiff['value_previous'] )
143 | dataDiff['value_previous_perc'] = round(100*( dataDiff['value_previous'] / dataDiff['value_previous'].sum()),1)
144 | dataDiff['value_current_perc'] = round(100*( dataDiff['value_current'] / dataDiff['value_current'].sum()),1)
145 | dataDiff['value_change_perc'] = dataDiff['value_current_perc'] - dataDiff['value_previous_perc']
146 |
147 |
148 | dataDiff['value_change_perc_rel'] = round(100*(dataDiff['value_current_perc'] - dataDiff['value_previous_perc']) / dataDiff['value_previous_perc'],1)
149 |
150 | dataDiff['value_change_perc_rel'].replace(np.inf, 100, inplace=True)
151 | dataDiff['value_change_perc_rel'].replace(0, -100, inplace=True)
152 |
153 |
154 | # Reorder stocks following largest current value in portfolio:
155 | self.data_recent = dataDiff.sort_values(by='value_current_perc', ascending=False)
156 |
157 | # Only additions
158 | additions = dataDiff['shares_change_abs'] > 0
159 | dataDiff_additions = dataDiff[additions]
160 |
161 |
162 | # Reorder stocks following largest current value in portfolio:
163 | self.data_recent = dataDiff.sort_values(by='value_current_perc', ascending=False)
164 | self.data_recent_additions = dataDiff_additions.sort_values(by='value_current_perc', ascending=False)
165 |
166 |
167 | return
168 |
169 |
170 | def plot_recent_shares_change(self, data):
171 | """ Analysis of the two most recent filings """
172 | # Sort stocks by valuefrom highest to smallest in current portfolio
173 | data = data.sort_values(by='value_current_perc')
174 | Y_RANGE=range(0,len(data.index))
175 |
176 | # Theme and colormap
177 | sns.set(style="whitegrid")
178 | colornorm = colors.Normalize(np.min(data['shares_change_perc'].values),
179 | np.max(data['shares_change_perc'].values))
180 | colormap = plt.cm.RdYlBu
181 |
182 | scalarMap = cmx.ScalarMappable(norm=colornorm,cmap=colormap)
183 |
184 |
185 | # Initialize plot
186 | SIZE = 15
187 | XLIM = 125
188 | YLIM = -1
189 |
190 | fig, ax = plt.subplots(figsize=(SIZE, SIZE))
191 | ax.set_xlim(-XLIM,XLIM)
192 | ax.set_ylim(YLIM,data.shape[0])
193 | ax.set_yticks(Y_RANGE)
194 | ax.set_yticklabels(data.index)
195 | ax.set_facecolor('xkcd:light grey')
196 |
197 | # Define plotted values
198 | previous_shares = data['shares_previous'].values
199 | arrow_starts = np.repeat(0,data.shape[0]) # Arrows start from zero
200 | arrow_lengths = data['shares_change_perc'].values
201 |
202 | # Add arrows and display values as text in plot
203 | for i, stock in enumerate(data.index):
204 |
205 | colorVal = scalarMap.to_rgba(arrow_lengths[i])
206 |
207 | # Annotation
208 | if arrow_lengths[i] > 0:
209 | OFFSET_X = 0.5
210 | OFFSET_Y = 0.1
211 |
212 | if previous_shares[i] == 0:
213 | ax.text(arrow_lengths[i]+OFFSET_X,
214 | i+OFFSET_Y,
215 | str(round(arrow_lengths[i],1)) + "% (new)",
216 | ha="left")
217 | else:
218 | ax.text(arrow_lengths[i]+OFFSET_X,
219 | i+OFFSET_Y,
220 | str(round(arrow_lengths[i],1)) + "%",
221 | ha="left")
222 |
223 | elif arrow_lengths[i] <= 0:
224 | OFFSET_X = -0.5
225 | OFFSET_Y = 0.1
226 |
227 | ax.text(arrow_lengths[i]+OFFSET_X,
228 | i+OFFSET_Y,
229 | str(round(arrow_lengths[i],1)) + "%",
230 | ha="right")
231 |
232 | # Arrow
233 | ax.arrow(arrow_starts[i],
234 | i,
235 | arrow_lengths[i],
236 | 0,
237 | head_width=0.6,
238 | head_length=1,
239 | width=0.6,
240 | color=colorVal)
241 |
242 | # Title and labels
243 | ax.set_title("Change in number of shares \n"
244 | + self.Name + "\n"
245 | + "Reporting Day: \n"
246 | + str(self.current_report_date) +" (current)\n"
247 | + str(self.previous_report_date) +" (previous)\n", fontweight="bold")
248 | ax.set_ylabel('Stocks (sorted by weigth (fractional value) within portfolio)',fontweight="bold")
249 | ax.set_xlabel('Percentage',fontweight="bold")
250 |
251 | return
252 |
253 |
254 | def plot_recent_value_change(self, data):
255 | """ Analysis of the two most recent filings """
256 |
257 | # Sort stocks by valuefrom highest to smallest in current portfolio
258 | data = data.sort_values(by='value_current_perc')
259 | Y_RANGE=range(0,len(data.index))
260 |
261 | # Theme and colormap
262 | sns.set(style="whitegrid")
263 | colornorm = colors.Normalize(np.min(data['value_change_perc_rel'].values), np.max(data['value_change_perc_rel'].values))
264 | colormap = plt.cm.RdYlBu
265 |
266 | scalarMap = cmx.ScalarMappable(norm=colornorm,cmap=colormap)
267 |
268 |
269 | # Initialize plot
270 | SIZE = 15
271 | XLIM = 2
272 | YLIM = -1
273 |
274 | fig, ax = plt.subplots(figsize=(SIZE, SIZE))
275 | ax.set_facecolor('xkcd:light grey')
276 |
277 | # Define plotted values
278 | arrow_starts = data['value_previous_perc'].values
279 | arrow_lengths = data['value_change_perc'].values
280 | arrow_lengths_rel = data['value_change_perc_rel'].values
281 | arrow_ends = data['value_current_perc'].values
282 |
283 |
284 | # Prepare lollipop plot
285 | ax = sns.stripplot(data=data,
286 | x='value_previous_perc',
287 | y=data.index,
288 | orient='h',
289 | size=5,
290 | color='white', linewidth=1)
291 |
292 | ax = sns.stripplot(data=data,
293 | x='value_current_perc',
294 | y=data.index,
295 | orient='h',
296 | size=7,
297 | color='black', linewidth=1, marker="D")
298 |
299 |
300 |
301 | # Add arrows and display values as text in plot
302 | for i, stock in enumerate(data.index):
303 |
304 | colorVal = scalarMap.to_rgba(arrow_lengths_rel[i])
305 |
306 | # Annotation
307 | if arrow_lengths[i] > 0:
308 | OFFSET_X_ARROW = -0.1
309 | OFFSET_X = 0.2
310 | OFFSET_Y = 0.2
311 |
312 | ax.text((arrow_starts[i] + arrow_lengths[i]/2),
313 | i + OFFSET_Y,
314 | str(round(arrow_lengths_rel[i],1)) + "%",
315 | ha="center",
316 | color=colorVal)
317 |
318 | if arrow_starts[i] == 0:
319 | ax.text(arrow_ends[i] + OFFSET_X,
320 | i,
321 | str(round(arrow_ends[i],1)) + "% (new)",
322 | ha="left",
323 | color='black')
324 | else:
325 | ax.text(arrow_ends[i] + OFFSET_X,
326 | i ,
327 | str(round(arrow_ends[i],1)) + "%",
328 | ha="left",
329 | color='black')
330 |
331 | elif arrow_lengths[i] <= 0:
332 | OFFSET_X_ARROW = 0.1
333 | OFFSET_X = -0.2
334 | OFFSET_Y = 0.2
335 |
336 | ax.text((arrow_starts[i] + arrow_lengths[i]/2),
337 | i + OFFSET_Y,
338 | str(round(arrow_lengths_rel[i],1)) + "%",
339 | ha="center",
340 | color=colorVal)
341 | ax.text(arrow_ends[i] + OFFSET_X, i ,
342 | str(round(arrow_ends[i],1)) + "%",
343 | ha="right",
344 | color='black')
345 |
346 |
347 | # Arrow
348 | ax.arrow(arrow_starts[i],
349 | i,
350 | arrow_lengths[i] + OFFSET_X_ARROW,
351 | 0,
352 | head_width=0,
353 | head_length=0,
354 | width=0.02,
355 | color=colorVal)
356 |
357 | # Limits of axis
358 | ax.set_xlim(-XLIM,
359 | XLIM + np.max([arrow_starts,arrow_starts + arrow_lengths]))
360 | ax.set_ylim(YLIM,data.shape[0])
361 | ax.set_yticks(Y_RANGE)
362 | ax.set_yticklabels(data.index)
363 |
364 | # Title and labels
365 | ax.set_title("Change in weigth (fractional value) within portfolio\n"
366 | + self.Name + "\n"
367 | + "Reporting Day: \n"
368 | + str(self.current_report_date) +" (current)\n"
369 | + str(self.previous_report_date) +" (previous)\n",fontweight="bold")
370 | ax.set_ylabel('Stocks (sorted by weight (fractional value) within portfolio)',fontweight="bold")
371 | ax.set_xlabel('Percentage',fontweight="bold")
372 |
373 | return
374 |
375 | def analyze_stock(self,stockname='',ticker='', PLOT_OFFSET = 0, IS_SHOW=True):
376 | """ Analysis of stock price since last reporting and filing day """
377 |
378 | # Retrieve stock data from Yahoo finance
379 | stock = yf.Ticker(ticker)
380 | hist = stock.history(period="max") # All historical data
381 |
382 | # Define important dates (datetime)
383 | REPORT_START = self.previous_report_date # Previous reporting day
384 | REPORT_END = self.current_report_date # Current reporting day
385 | REPORT_FILING = self.current_filing_date # Current filing day (ca. 60 days delay)
386 |
387 | TODAY = date.today()
388 | YESTERDAY = TODAY - timedelta(days = 1)
389 |
390 | # Create dataframe from Reporting day - offset until most recent trading day
391 | START = REPORT_START- timedelta(days = PLOT_OFFSET)
392 | df=hist.loc[START:]
393 |
394 | # Indices
395 | inc = df.Close > df.Open
396 | dec = df.Open > df.Close
397 |
398 | # Convert DataFrame to ColumnDataSource
399 | source = ColumnDataSource(ColumnDataSource.from_df(df))
400 | source_dec = ColumnDataSource(ColumnDataSource.from_df(df[dec]))
401 | source_inc = ColumnDataSource(ColumnDataSource.from_df(df[inc]))
402 |
403 | # 1st Plot: Candlestick
404 | # Plot parameters
405 | WITDH = 1500
406 | HEIGHTVOL = 300
407 | BARWITDH = 16*60*60*1000
408 |
409 | TOOLS = "pan,wheel_zoom,box_zoom,reset,save"
410 |
411 | # Create plot
412 | p = figure(x_axis_type="datetime", tools=TOOLS, plot_width=WITDH, title = stockname +' (' + ticker +'), ' +'Portfolio: ' + self.Name)
413 | p.grid.grid_line_alpha=0.3
414 | p.segment('Date', 'High', 'Date', 'Low', source=source, color="black", name="segment")
415 | p.vbar('Date', BARWITDH, 'Open', 'Close', source=source_inc, fill_color="greenyellow", line_color="black")
416 | p.vbar('Date', BARWITDH, 'Open', 'Close', source=source_dec, fill_color="#F2583E", line_color="black")
417 |
418 | # Create tooltips
419 | p.add_tools(HoverTool(
420 | names=["segment"],
421 | tooltips=OrderedDict([
422 | ("Date", "@Date{%F}"),
423 | ("Open", '$@{Open}{0.2f}'),
424 | ("Close", '$@{Close}{0.2f}' ),
425 | ("Volume", "@Volume{($ 0.00 a)}")]),
426 | formatters={
427 | '@Date': 'datetime'},
428 | mode='vline'))
429 |
430 | # Closing prices
431 | PURCHASE_CLOSE_MIN = min(df.loc[REPORT_START:REPORT_END].Close)
432 | PURCHASE_CLOSE_MAX = max(df.loc[REPORT_START:REPORT_END].Close)
433 | #YESTERDAY_CLOSE = df.loc[YESTERDAY].Close
434 | YESTERDAY_CLOSE = df.iloc[-1].Close
435 |
436 | # Add annotations
437 | p.add_layout(BoxAnnotation(
438 | left=REPORT_START, right=REPORT_END,
439 | fill_alpha=0.1, fill_color='green'))
440 |
441 | p.add_layout(BoxAnnotation(
442 | left=REPORT_END, right=REPORT_FILING,
443 | fill_alpha=0.06, fill_color='blue'))
444 |
445 | p.add_layout(Label(x=REPORT_START + (REPORT_END-REPORT_START)/3,
446 | y=0, y_units='screen',
447 | text='(---Reporting period---)'))
448 | p.add_layout(Label(x=REPORT_END + (REPORT_FILING-REPORT_END)/4,
449 | y=0, y_units='screen',
450 | text='(---Until filing---)'))
451 | p.add_layout(Label(x=REPORT_FILING + (TODAY-REPORT_FILING)/2,
452 | y=0, y_units='screen',
453 | text='(---After filing---)'))
454 |
455 | p.add_layout(Span(
456 | location=YESTERDAY_CLOSE,
457 | dimension='width',
458 | line_color='black',
459 | line_dash='dotted',
460 | line_width=0.5))
461 |
462 | p.add_layout(Span(
463 | location=PURCHASE_CLOSE_MIN,
464 | dimension='width',
465 | line_color='black',
466 | line_dash='dotted',
467 | line_width=0.5))
468 |
469 | p.add_layout(Span(
470 | location=PURCHASE_CLOSE_MAX,
471 | dimension='width',
472 | line_color='black',
473 | line_dash='dotted',
474 | line_width=0.5))
475 |
476 | p.add_layout(Span(
477 | location=YESTERDAY_CLOSE,
478 | dimension='width',
479 | line_color='black',
480 | line_dash='dotted',
481 | line_width=0.5))
482 |
483 | p.add_layout(Label(
484 | x=REPORT_START,
485 | y=PURCHASE_CLOSE_MIN,
486 | text=''+str(PURCHASE_CLOSE_MIN)+' (Min. purchase price)'))
487 |
488 | p.add_layout(Label(
489 | x=REPORT_START,
490 | y=PURCHASE_CLOSE_MAX,
491 | text=''+str(PURCHASE_CLOSE_MAX)+' (Max. purchase price)'))
492 |
493 | p.add_layout(Label(
494 | x=REPORT_START,
495 | y=YESTERDAY_CLOSE,
496 | text=''+str(YESTERDAY_CLOSE)+' (Current price)'))
497 |
498 | p.add_layout(Arrow(
499 | start=NormalHead(fill_color="black",size=10),
500 | end=NormalHead(fill_color="black",size=10),
501 | x_start=TODAY,
502 | y_start=PURCHASE_CLOSE_MIN,
503 | x_end=TODAY,
504 | y_end=YESTERDAY_CLOSE))
505 |
506 | p.add_layout(Label(
507 | x=TODAY + timedelta(days = 1),
508 | y=PURCHASE_CLOSE_MIN + abs(PURCHASE_CLOSE_MIN-YESTERDAY_CLOSE)/2,
509 | text=str(round((100*(YESTERDAY_CLOSE-PURCHASE_CLOSE_MIN)/PURCHASE_CLOSE_MIN),1))+"%"))
510 |
511 |
512 | # 2nd Plot: Volume
513 | q = figure(plot_height=HEIGHTVOL,
514 | plot_width = WITDH,
515 | x_axis_type='datetime',
516 | x_range=p.x_range,
517 | title="Volume",
518 | tools=TOOLS)
519 |
520 | q.vbar('Date',
521 | top = 'Volume',
522 | source=source_inc,
523 | width = BARWITDH,
524 | fill_alpha = .5,
525 | fill_color="greenyellow", line_color="black")
526 |
527 | q.vbar('Date',
528 | top = 'Volume',
529 | source=source_dec,
530 | width = BARWITDH,
531 | fill_alpha = .5,
532 | fill_color="#F2583E", line_color="black")
533 |
534 |
535 | q.add_tools(HoverTool(
536 | tooltips=OrderedDict([
537 | ("Date", "@Date{%F}"),
538 | ("Open", '$@{Open}{0.2f}'),
539 | ("Close", '$@{Close}{0.2f}' ),
540 | ("Volume", "@Volume{($ 0.00 a)}")]),
541 | formatters={
542 | '@Date': 'datetime'},
543 | mode='vline'))
544 |
545 |
546 | # Stock 1st and 2nd plot
547 | plot = gridplot([[p], [q]])
548 |
549 | # Save in directory
550 | output_file(ticker+'_'+ str(REPORT_END)+'_'+ str(YESTERDAY)+'.html', title=stockname +' (' + ticker +')', mode='inline')
551 | save(plot)
552 |
553 | if IS_SHOW==True:
554 | show(plot) # Open in browser
555 |
556 | return
557 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # sec-13f-portfolio-python
2 | Parses SEC Form 13F filings and anlyzes recent portfolio changes
3 |
4 | Class definitions:
5 | - Filing13F: Contains class methods for parsing XML files using BeautifulSoup package.
6 | - Portfolio: Contains all filings and stock portfolio information. Contains class methods for plotting and analysis.
7 |
--------------------------------------------------------------------------------
/example_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zpetan/sec-13f-portfolio-python/c401ed6ac4b57091e842ba2074929a60232472e6/example_01.png
--------------------------------------------------------------------------------
/example_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zpetan/sec-13f-portfolio-python/c401ed6ac4b57091e842ba2074929a60232472e6/example_02.png
--------------------------------------------------------------------------------
/testing_script.py:
--------------------------------------------------------------------------------
1 | """
2 | Author: Pepe Tan
3 | Date: 2020-10-06
4 | MIT License
5 | """
6 |
7 | from Portfolio13FHR import Portfolio
8 |
9 |
10 | symbols = {
11 | 'JACK IN THE BOX INC': 'JACK',
12 | 'QORVO INC':'QRVO',
13 | 'BOEING CO': 'BA',
14 | 'EBAY INC': 'EBAY',
15 | 'HCA HEALTHCARE INC': 'HCA',
16 | 'VERINT SYS INC': 'VRNT',
17 | 'VENTAS INC': 'VTR',
18 | 'SS&C TECHNOLOGIES HLDGS INC': 'SSNC',
19 | 'VIASAT INC': 'VSAT',
20 | 'BED BATH & BEYOND INC': 'BBBY',
21 | 'DISCOVERY INC (COM SER A)': 'DISCA',
22 | 'TRIP COM GROUP LTD (ADS)': 'TCOM',
23 | 'COPA HOLDINGS SA (CL A)': 'CPA',
24 | 'HELMERICH & PAYNE INC': 'HP',
25 | 'RETAIL OPPORTUNITY INVTS COR': 'ROIC',
26 | 'PRECISION DRILLING CORP (COM 2010)': 'PDS',
27 | 'KIMBALL INTL INC (CL B)': 'KBAL'
28 | }
29 |
30 |
31 | #%%
32 |
33 | CIK_1 = '0001649339'
34 | Name_2 = 'ScionAssetManagement'
35 |
36 | portfolio_1 = Portfolio(CIK_1,Name_2)
37 |
38 |
39 | #%%
40 |
41 | portfolio_1.compare_recent_changes()
42 |
43 | portfolio_1.data_recent.head()
44 |
45 | portfolio_1.plot_recent_shares_change(portfolio_1.data_recent)
46 | portfolio_1.plot_recent_value_change(portfolio_1.data_recent)
47 |
48 |
49 | # Most recent additions
50 | print(portfolio_1.data_recent_additions[['value_current_perc','shares_change_perc']])
51 |
52 | # portfolio_1.plot_recent_shares_change(portfolio_1.data_recent_additions)
53 | # portfolio_1.plot_recent_value_change(portfolio_1.data_recent_additions)
54 |
55 | #%%
56 | OFFSET = 120
57 |
58 | portfolio_1.analyze_stock('BED BATH & BEYOND INC', symbols['BED BATH & BEYOND INC']=OFFSET)
59 | portfolio_1.analyze_stock('DISCOVERY INC (COM SER A)', symbols['DISCOVERY INC (COM SER A)']=OFFSET)
60 | portfolio_1.analyze_stock('TRIP COM GROUP LTD (ADS)', symbols['TRIP COM GROUP LTD (ADS)']=OFFSET)
61 | portfolio_1.analyze_stock('COPA HOLDINGS SA (CL A)', symbols['COPA HOLDINGS SA (CL A)']=OFFSET)
62 | portfolio_1.analyze_stock('RETAIL OPPORTUNITY INVTS COR', symbols['RETAIL OPPORTUNITY INVTS COR']=OFFSET)
63 | portfolio_1.analyze_stock('PRECISION DRILLING CORP (COM 2010)', symbols['PRECISION DRILLING CORP (COM 2010)']=OFFSET)
64 | portfolio_1.analyze_stock('KIMBALL INTL INC (CL B)', symbols['KIMBALL INTL INC (CL B)']=OFFSET)
65 |
66 |
67 | #%%
68 |
69 | CIK_2 = '0001061768'
70 | Name_2 = 'Baupost Group LLC/MA'
71 |
72 | portfolio_2 = Portfolio(CIK_2,Name_2)
73 |
74 | #%%
75 | portfolio_2.compare_recent_changes()
76 |
77 | portfolio_2.data_recent.head()
78 |
79 | portfolio_2.plot_recent_shares_change(portfolio_2.data_recent)
80 | portfolio_2.plot_recent_value_change(portfolio_2.data_recent)
81 |
82 | # Most recent additions
83 | print("Recent portfolio additions: \n",portfolio_2.data_recent_additions[['value_current_perc','shares_change_perc']])
84 |
85 |
86 | #%%
87 | OFFSET = 120
88 |
89 | portfolio_2.analyze_stock('HCA HEALTHCARE INC', symbols['HCA HEALTHCARE INC'], PLOT_OFFSET=OFFSET)
90 |
91 | portfolio_2.analyze_stock('VERINT SYS INC', symbols['VERINT SYS INC'], PLOT_OFFSET=OFFSET)
92 |
93 | portfolio_2.analyze_stock('SS&C TECHNOLOGIES HLDGS INC', symbols['SS&C TECHNOLOGIES HLDGS INC'], PLOT_OFFSET=OFFSET)
94 |
95 | portfolio_2.analyze_stock('VIASAT INC', symbols['VIASAT INC'], PLOT_OFFSET=OFFSET)
96 |
97 |
98 |
--------------------------------------------------------------------------------