├── .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 | --------------------------------------------------------------------------------