3 votos

¿Cuál es la forma más eficiente de descargar periódicamente todos los nuevos archivos 10-K del EDGAR de la SEC?

Encontré este sitio web que utiliza un perl script para descargar todos los archivos. Dice: "Hay más de 200.000 archivos de 10.000 (y equivalentes), que tomarán un considerable espacio en el disco duro y tiempo para descargar. La SEC prefiere que la descarga masiva se haga durante el "tiempo de reposo", es decir, fuera del horario regular de operaciones".

¿Hay alguna forma mejor que inundar los servidores de la SEC con solicitudes para obtener esta información?

1voto

ADL Puntos 21

10-K - Solo fundamentos históricos

Si sólo está interesado en los aspectos fundamentales (cuenta de resultados, balance, estado de flujos de efectivo) de los 10-K, puede utilizar el proveedor eodhistoricaldata.com . Soy un cliente de pago y utilizo sus APIs a diario. El precio es de 10 dólares al mes para acceder a los fundamentos de 37.000 acciones (en todo el mundo), 6.000 ETFs y 20.000 fondos de inversión.

Puede utilizar el método getFundamentals(ticker) proporcionado por la biblioteca eodhistoricaldata-api ( https://www.npmjs.com/package/eodhistoricaldata-api ), o acceder directamente a su API RESTful.

Puede acceder a la API mediante programación, sin necesidad de descargar todos los informes a la vez.

La API devuelve datos JSON, por ejemplo:

"Highlights": {
    "MarketCapitalization": 54915055616,
    "MarketCapitalizationMln": "54915.0556",
    "EBITDA": 616286976,
    "PERatio": null,
    "PEGRatio": "-1.5700",
    "WallStreetTargetPrice": "321.8900",
    "BookValue": "26.2790",
    "DividendShare": null,
    "DividendYield": null,
    "EarningsShare": "-4.8500",
    "EPSEstimateCurrentYear": "-6.5600",
    "EPSEstimateNextYear": "-2.0000",
    "EPSEstimateNextQuarter": "-1.6700",
    "MostRecentQuarter": "2018-09-30",
    "ProfitMargin": "-0.1022",
    "OperatingMarginTTM": "-0.0710",
    "ReturnOnAssetsTTM": "-0.0271",
    "ReturnOnEquityTTM": "-0.3397",
    "RevenueTTM": "17523644416.00",
    "RevenuePerShareTTM": "103.3240",
    "QuarterlyRevenueGrowthYOY": "1.2860",
    "GrossProfitTTM": "2222487000.00",
    "DilutedEpsTTM": "-10.5600",
    "QuarterlyEarningsGrowthYOY": null
},
// ...
"Income_Statement": {
        "currency_symbol": "USD",
        "quarterly": {
            "2018-09-30": {
                "date": "2018-09-30",
                "filing_date": "2018-11-02",
                "researchDevelopment": "350848000.00",
                "effectOfAccountingCharges": null,
                "incomeBeforeTax": "271320000.00",
                "minorityInterest": "1344731000.00",
                "netIncome": "311516000.00",
                "sellingGeneralAdministrative": "729876000.00",
                "grossProfit": "1523665000.00",
                "ebit": "442941000.00",
                "operatingIncome": "442941000.00",
                "otherOperatingExpenses": null,
                "interestExpense": "-169858000.00",
                "extraordinaryItems": null,
                "nonRecurring": null,
                "otherItems": null,
                "incomeTaxExpense": "16647000.00",
                "totalRevenue": "6824413000.00",
                "totalOperatingExpenses": "6381472000.00",
                "costOfRevenue": "5300748000.00",
                "totalOtherIncomeExpenseNet": "-171621000.00",
                "discontinuedOperations": null,
                "netIncomeFromContinuingOps": "254673000.00",
                "netIncomeApplicableToCommonShares": "311516000.00"
            },
            // ...
"Balance_Sheet": {
        "currency_symbol": "USD",
        "quarterly": {
            "2018-09-30": {
                "date": "2018-09-30",
                "filing_date": "2018-11-02",
                "intangibleAssets": "291476000.00",
                "totalLiab": "23409144000.00",
                "totalStockholderEquity": "4508838000.00",
                "deferredLongTermLiab": "0.00",
                "otherCurrentLiab": "2266778000.00",
                "totalAssets": "29262713000.00",
                "commonStock": "171000.00",
                "otherCurrentAssets": "158627000.00",
                "retainedEarnings": "-5457315000.00",
                "otherLiab": "2285172000.00",
                "goodWill": "65226000.00",
                "otherAssets": "1233979000.00",
                "cash": "2967504000.00",
                "totalCurrentLiabilities": "9775324000.00",
                "shortLongTermDebt": "2106538000.00",
                "otherStockholderEquity": "8271000.00",
                "propertyPlantEquipment": "19733969000.00",
                "totalCurrentAssets": "7920491000.00",
                "longTermInvestments": "17572000.00",
                "netTangibleAssets": "4152136000.00",
                "shortTermInvestments": "0.00",
                "netReceivables": "1155001000.00",
                "longTermDebt": "9726589000.00",
                "inventory": "3314127000.00",
                "accountsPayable": "3596984000.00",
                "totalPermanentEquity": "0.00",
                "noncontrollingInterestInConsolidatedEntity": "0.00",
                "temporaryEquityRedeemableNoncontrollingInterests": "0.00",
                "accumulatedOtherComprehensiveIncome": "0.00",
                "additionalPaidInCapital": "0.00",
                "commonStockTotalEquity": "0.00",
                "preferredStockTotalEquity": "0.00",
                "retainedEarningsTotalEquity": "0.00",
                "treasuryStock": "0.00"
            },
            // ...
"Cash_Flow": {
        "currency_symbol": "USD",
        "quarterly": {
            "2018-09-30": {
                "date": "2018-09-30",
                "filing_date": "2018-11-02",
                "investments": null,
                "changeToLiabilities": "895197000.00",
                "totalCashflowsFromInvestingActivities": "-560965000.00",
                "netBorrowings": "-221931000.00",
                "totalCashFromFinancingActivities": "-84218000.00",
                "changeToOperatingActivities": "98770000.00",
                "netIncome": "311516000.00",
                "changeInCash": "739728000.00",
                "totalCashFromOperatingActivities": "1391281000.00",
                "depreciation": "502825000.00",
                "otherCashflowsFromInvestingActivities": "128600000.00",
                "dividendsPaid": "0.00",
                "changeToInventory": "-55055000.00",
                "changeToAccountReceivables": "-587594000.00",
                "salePurchaseOfStock": "0.00",
                "otherCashflowsFromFinancingActivities": "42839000.00",
                "changeToNetincome": "179168000.00",
                "capitalExpenditures": "-559765000.00"
            },

10-K - En tiempo real

Sugiero sec-api ( https://www.npmjs.com/package/sec-api ) si necesita acceso en tiempo real a los archivos 10-K. Proporciona un canal websocket (en tiempo real). En cuanto se publica una nueva presentación en sec.gov EDGAR, la biblioteca lanza un evento y devuelve información sobre la nueva presentación de la siguiente manera (formato JSON):

{  
  companyName:            'WALT DISNEY CO/ (0001001039) (Issuer)',  
  cik:                    '0001001039',
  type:                   '10-K',  
  description:            'FORM 10-K',  
  linkToFilingDetails:    'https://www.sec.gov/...',  
  linkToHtmlAnnouncement: 'https://www.sec.gov/...',  
  linkToXbrl:             'https://www.sec.gov/...',  
  announcedAt:            '2018-12-21T20:02:07-05:00'
}

La biblioteca funciona con JavaScript del lado del servidor (por ejemplo, Node.js) y del lado del cliente (por ejemplo, React, React Native, Angular, Vue).

Implementación simple de Node.js:

const api = require('sec-api')(); 
api.on('filing', filing => console.log(filing));

0voto

Escribí un paquete de minería de datos para EDGAR en python. Acepta listas de tickers como entrada, por lo que no es necesario descargar cada 10-k de cada empresa. Sólo los que quieras. ¡Espero que sea de ayuda!

https://github.com/Jordan-M-Young/pyQuarry

0 votos

Minería de datos no significa descargar datos.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X