Dados de ETF, fundos mútuos e acionistas: recuperar conteúdo
- Claude Paugh
- 17 de abr
- 2 min de leitura
Atualizado: 18 de ago
Como mencionei no meu artigo anterior,
Se você é um desenvolvedor de software, existem muitas opções para você
Eu uso o JetBrains DataGrid (comprei a licença) e eles fornecem seus próprios drivers:


Como você pode ver no conjunto de resultados acima, as “colunas” representam as chaves do documento JSON subjacente e os valores correspondem aos dados na grade. As referências são as mesmas ao usar uma consulta DataGrid ou Couchbase UI.
As colunas são as chaves e, se estiverem aninhadas no documento, o caminho estará dentro da estrutura JSON, por exemplo:
Exemplos de SQL++ para ganhar dinheiro
select distinct gi.regFileNumber as SECFileNumber,
gi.regStateConditional.regState as State,
gi.regStateConditional.regCountry as County,
gi.IsFinalFiling as IsFinalFiling,
gi.seriesName as SeriesName,
gi.seriesLei as SeriesLEI,
gi.seriesId as SeriesId,
gi.regName as FundCompany,
gi.PeriodEndDate as PeriodEndDate,
gi.ReportAuthorizedDate as ReportAuthorizedDate,
gi.ParentLEI as ParentLEI,
gi.regCik as CIK,
gi.regCity as City,
gi.regLei as LEI,
gi.regPhone as Phone,
gi.regZipOrPostalCode as PostCode,
round(tonumber(fp.cshNotRptdInCorD), 2) as CashNotReported,
round(tonumber(fp.assetsInvested), 2) as AssetsInvested,
round(tonumber(fp.assetsAttrMiscSec), 2) as Assets_Attributed_MiscSecurities,
round(tonumber(fp.totAssets), 2) as TotalAssets,
round(tonumber(fp.totLiabs), 2) as TotalLiabilities,
round(tonumber(fp.netAssets), 2) as NetAssets
FROM `us-fund-filings`.`Funds`.GeneralInformation gi JOIN `us-fund-filings`.`AssetManagers`.FundParents fp ON (fp.CIK = gi.regCik and gi.PeriodEndDate = fp.PeriodEndDate) WHERE gi.PeriodEndDate = '2023-02-28;'
Criar um índice
Se o número de documentos armazenados for grande, é necessário criar um índice. Como tenho arquivos de portfólio há mais de cinco anos, criei vários. Como o Couchbase não tem particionamento controlado pelo usuário, criei índices com uma cláusula WHERE para controlar o intervalo de datas. O otimizador de consulta do Couchbase tenta particionar os dados. No entanto, isso acontece em tempo de execução e os índices são mais eficientes na implementação do conceito de particionamento.
CREATE INDEX `adv_issuerCat_PeriodEndDate_assetCat2024` ON `us-fund-filings`.`Portfolios`.`Investments`(`PeriodEndDate`,`assetCat`) WHERE ("2024-01-01" <= `PeriodEndDate`);
CREATE INDEX `adv_PeriodEndDate_derivativeInfo_optionSwaptionWarrantDeriv_derivCat_2024_1` ON `us-fund-filings`.`Portfolios`.`Investments`(`PeriodEndDate`,((`derivativeInfo`.`optionSwaptionWarrantDeriv`).`derivCat`)) WHERE (("2024-01-01" <= `PeriodEndDate`) and (`PeriodEndDate` <= "2024-03-31"));Por que você decidiu armazenar esses dados?
Pensei que combinar esses dados poderia ser útil para vários casos de uso:
Tendências entre gestores de ativos ou dentro de gestores de ativos individuais
Ao analisar as mudanças nos padrões de atitude trimestre a trimestre e correlacioná-las com eventos atuais, você pode detectar hábitos ou padrões que podem ser benéficos.
Precisão da apresentação: Eu queria ver o quanto as apresentações correspondiam aos relatórios trimestrais de investidores dos gestores de ativos. A resposta é sim, mas se não, por quê?
Risco cambial ao longo do tempo e quais gestores de ativos estão mais ou menos expostos a ele
Fluxos de caixa mensais dentro ou entre todos os segmentos de um fundo de gestão de ativos nos Estados Unidos. Ele pode ser analisado em diferentes tipos de ativos para identificar características comuns.
Este é um começo, mas há outros casos de uso para análise e pesquisa que podem ser implementados. Pensei também em acrescentar um novo aspecto à análise; Quais são os benefícios de carregar dados em um banco de dados gráfico?

