投资组合可以指:持有的股票或投资(金融)或单一实体持有的专利的集合;用于展示艺术品,照片等的个人过去作品(艺术,教育,摄影,开发)或展示柜(物理或虚拟)的样本。
我已经开始使用 skfolio,使用 skfolio.datasets (sp500) 中给出的投资组合。我的想法是使用 sp500 作为我的宇宙来运行一个由同等权重的股票组成的投资组合。为此,我执行以下操作:
有人可以给我关于我的 GitHub 作品集应该是什么样子的建议吗? 如果我计划成为 ML 专家,我的存储库是否应该包含我之前完成的非 ML 相关项目?喜欢
使用 BeautifulSoup 解析带有子节点的 SEC EDGAR XML 表单数据
我正在尝试使用漂亮的 soup 和 xml 从 SEC 的 N-PORT-P/A 表格中抓取个人基金持有量。典型的提交如下所示,[链接在此][1],如下所示: 我正在尝试使用 beautiful soup 和 xml 从 SEC 的 N-PORT-P/A 表格中抓取个人基金持有量。典型的提交如下所示,[链接在此][1],如下所示: <edgarSubmission xmlns="http://www.sec.gov/edgar/nport" xmlns:com="http://www.sec.gov/edgar/common" xmlns:ncom="http://www.sec.gov/edgar/nportcommon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <headerData> <submissionType>NPORT-P/A</submissionType> <isConfidential>false</isConfidential> <accessionNumber>0001145549-23-004025</accessionNumber> <filerInfo> <filer> <issuerCredentials> <cik>0001618627</cik> <ccc>XXXXXXXX</ccc> </issuerCredentials> </filer> <seriesClassInfo> <seriesId>S000048029</seriesId> <classId>C000151492</classId> </seriesClassInfo> </filerInfo> </headerData> <formData> <genInfo> ... </genInfo> <fundInfo> ... </fundInfo> <invstOrSecs> <invstOrSec> <name>ARROW BIDCO LLC</name> <lei>549300YHZN08M0H3O128</lei> <title>Arrow Bidco LLC</title> <cusip>042728AA3</cusip> <identifiers> <isin value="US042728AA35"/> </identifiers> <balance>115000.000000000000</balance> <units>PA</units> <curCd>USD</curCd> <valUSD>114754.170000000000</valUSD> <pctVal>0.3967552449</pctVal> <payoffProfile>Long</payoffProfile> <assetCat>DBT</assetCat> <issuerCat>CORP</issuerCat> <invCountry>US</invCountry> <isRestrictedSec>N</isRestrictedSec> <fairValLevel>2</fairValLevel> <debtSec> <maturityDt>2024-03-15</maturityDt> <couponKind>Fixed</couponKind> <annualizedRt>9.500000000000</annualizedRt> <isDefault>N</isDefault> <areIntrstPmntsInArrs>N</areIntrstPmntsInArrs> <isPaidKind>N</isPaidKind> </debtSec> <securityLending> <isCashCollateral>N</isCashCollateral> <isNonCashCollateral>N</isNonCashCollateral> <isLoanByFund>N</isLoanByFund> </securityLending> </invstOrSec> Arrow Bidco LLC 是投资组合中的债券,其一些特征包含在文件中(CUSIP、CIK、余额、到期日等)。我正在寻找迭代每个单独的证券 (investOrSec) 并收集数据框中每个证券的特征的最佳方法。 我当前使用的代码是: import numpy as np import pandas as pd import requests from bs4 import BeautifulSoup header = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36", "X-Requested-With": "XMLHttpRequest"} n_port_file = requests.get("https://www.sec.gov/Archives/edgar/data/1618627/000114554923004968/primary_doc.xml", headers=header, verify=False) n_port_file_xml = n_port_file.content soup = BeautifulSoup(n_port_file_xml,'xml') names = soup.find_all('name') lei = soup.find_all('lei') title = soup.find_all('title') cusip = soup.find_all('cusip') .... maturityDt = soup.find_all('maturityDt') couponKind = soup.find_all('couponKind') annualizedRt = soup.find_all('annualizedRt') 然后迭代每个列表,根据每行中的值创建一个数据框。 fixed_income_data = [] for i in range(0,len(names)): rows = [names[i].get_text(),lei[i].get_text(), title[i].get_text(),cusip[i].get_text(), balance[i].get_text(),units[i].get_text(), pctVal[i].get_text(),payoffProfile[i].get_text(), assetCat[i].get_text(),issuerCat[i].get_text(), invCountry[i].get_text(),couponKind[i].get_text() ] fixed_income_data.append(rows) fixed_income_df = pd.DataFrame(equity_data,columns = ['name', 'lei', 'title', 'cusip', 'balance', 'units', 'pctVal', 'payoffProfile', 'assetCat', 'issuerCat', 'invCountry' 'maturityDt', 'couponKind', 'annualizedRt' ], dtype = float) 当包含所有信息时,这种方法效果很好,但通常有一个变量未被考虑在内。表单的一部分可能是空白的,或者发行人类别可能未正确填写,从而导致 IndexError。该投资组合包含我能够解析的 127 种证券,但可能缺少单一证券的年化回报率,从而失去了整齐创建数据框的能力。 此外,对于同时持有固定收益和股票证券的投资组合,股票证券不会返回 DebtSecs 子项的信息。有没有一种方法可以迭代这些数据,同时以最简单的方式清理它?即使为权益证券未引用的 DebtSec 子项添加“NaN”也是有效的响应。任何帮助将不胜感激! [1]:https://www.sec.gov/Archives/edgar/data/1618627/000114554923004968/primary_doc.xml 在我看来,这是处理问题的最佳方法。一般来说,EDGAR 文件非常难以解析,因此以下内容可能适用于其他文件,也可能不适用于其他文件,即使来自同一文件管理器也是如此。 为了让自己更轻松,因为这是一个 XML 文件,所以您应该使用 xml 解析器和 xpath。鉴于您要创建一个数据框,最合适的工具是 pandas read_xml() 方法。 因为 XML 是嵌套的,所以您需要创建两个不同的数据帧并将它们连接起来(也许其他人对如何处理它有更好的想法)。最后,虽然 read_xml() 可以直接从 url 读取,但在这种情况下,EDGAR 需要使用用户代理,这意味着您还需要使用 requests 库。 所以,大家一起: #import required libraries import pandas as pd import requests url = 'https://www.sec.gov/Archives/edgar/data/1618627/000114554923004968/primary_doc.xml' #set headers with a user-agent headers = {"User-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"} req = requests.get(url, headers=headers) #define the columns you want to drop (based on the data in your question) to_drop = ['identifiers', 'curCd','valUSD','isRestrictedSec','fairValLevel','debtSec','securityLending'] #the filing uses namespaces (too complicated to get into here), so you need to define that as well namespaces = {"nport": "http://www.sec.gov/edgar/nport"} #create the first df, for the securities which are debt instruments invest = pd.read_xml(req.text,xpath="//nport:invstOrSec[.//nport:debtSec]",namespaces=namespaces).drop(to_drop, axis=1) #crete the 2nd df, for the debt details: debt = pd.read_xml(req.text,xpath="//nport:debtSec",namespaces=namespaces).iloc[:,0:3] #finally, concatenate the two into one df: pd.concat([invest, debt], axis=1) 这应该输出您的 126 种债务证券(请原谅格式): lei title cusip balance units pctVal payoffProfile assetCat issuerCat invCountry maturityDt couponKind annualizedRt 0 ARROW BIDCO LLC 549300YHZN08M0H3O128 Arrow Bidco LLC 042728AA3 115000.00 PA 0.396755 Long DBT CORP US 2024-03-15 Fixed 9.50000 1 CD&R SMOKEY BUYER INC NaN CD&R Smokey Buyer Inc 12510CAA9 165000.00 PA 0.505585 Long DBT CORP US 2025-07-15 Fixed 6.75000 然后您可以使用最终的 df、添加或删除列等 您可以使用 MIT 许可的 datamule 包来完成此操作,该包可以处理下载和解析。免责声明:我是开发商。 from datamule import Filing, Downloader from pathlib import Path import os downloader = Downloader() downloader.download(form='NPORT-P',output_dir='NPORT',date=('2001-01-01','2024-11-01')) os.makedirs('NPORT_json', exist_ok=True) for file in Path('NPORT').iterdir(): filing = Filing(str(file), 'NPORT-P') filing.parse_filing() filing.write_json(f'NPORT_json/{file.name}.json') 您还可以直接访问馆藏数据,因为 Filing() 是一个可迭代对象。 pd.DataFrame(filing)
我在 r 中使用 PortfolioAnalytics 并尝试使用预定义的协方差和返回矩阵。 例如,我的资产的估计回报是 返回 <- matrix(c(0.316, 0.322, 0.288)...
使用“R”中的“fPortfolio”包找到给定风险水平下具有最大回报的投资组合
我正在尝试使用 R 中的 fPortfolio 包找到给定风险水平下具有最大回报的投资组合。但是,该包中似乎存在一个错误,即最佳投资组合(基于...
我正在 .Net 中开发一个网站,我需要添加投资组合图表,以便我可以使用图表来查看我的投资组合与道琼斯指数、标准普尔 500 指数、纳斯达克指数和其他指数的比较。我找到了免费的角色...
我已经拿起了为我的网页设计/开发团队制作作品集的旗帜。该作品集将在漂亮的平板电视上全屏显示,并轮流浏览我们的网站列表,其中包含...
我试图通过在背景中随机位置添加一些图像来使我的投资组合网站看起来更好,但没有按预期工作。这就是我所拥有的: //这是...
我正在展示我的专业经验、技能和教育,我正在尝试在创建个人作品集网站还是坚持使用传统的 PDF 简历之间做出决定......
我试图制作一个侧边栏,其中文本/链接应该位于侧边栏的中心,但文本不断溢出,因为单词变得更长,我不知道如何修复它,...
我正在使用 Tailwind CSS 来构建我的作品集。但是当我使用它们时,CSS 类没有正确加载,特别是“bg-color”。我应该怎么办? 我尝试改变
为什么这个错误致命:不是 git 存储库(或任何父目录):.git?
PS E:\Harini-Portfolio> git commit -m "索引文件,css文件已添加" 致命:不是 git 存储库(或任何父目录):.git PS E:\Harini-Portfolio> git add 致命的...
我的投资组合网站在 PC 和笔记本电脑上运行良好,但在移动设备上它被锁定在主页上,然后我无法滚动网站。我在 JS 和 CSS 中更改了很多代码,但问题没有解决 ...
无法在for循环中使用getSymbols并在之后调用matrix
我列出了前 25 名最受欢迎的 ETF。我想创建一个 for 循环,该循环接受此列表的每个条目并使用 quantmod 库中的 getSymbol() 函数并返回调用的数据。
我正在尝试使用投资回报率构建一个投资组合,在给定期限内最大化投资组合收益率。为了走捷径,我尝试了 Chat GPT 路径,但没有任何收获。 代码是: 选择数据...
我想在 Vercel 上部署我的投资组合,但收到此错误: 在美国华盛顿特区(东部)运行构建 – iad1 跳过构建缓存,在没有缓存的情况下触发部署。 克隆
我有一个问题想问这里的大家。 我正在使用 React 制作一个作品集页面,我对一件事很好奇。 我只想在单击标签时向锚标记添加一个类,并且我想重新...
大家好,我想在 webflow 上做我的作品集。我发现了这个网站组合 https://www.somefolk.co/,我真的爱上了英雄部分。我试图自己弄清楚...
您为我的投资组合网站代码提供了很大的帮助! 现在只剩下我前几天发现的一个问题了。 当您单击投资组合项目时,它会打开。如果你关闭它,...