如何将 ETF 的数据提取到 Google 电子表格中?

Foa*_*oad 7 finance google-finance google-finance-api google-sheets quantitative-finance

这篇文章之后,我列出了我在一些相关论坛上发现的一些有趣的 ETF 1,我收到了一些有价值的批评。现在我想使用Google 电子表格在一个地方获取这些 ETF 的更新信息,并可能将其用于个人投资组合管理。我需要的:

  • 最好使用 ISIN 2代码获取数据,因为股票代码/符号在不同数据库和市场之间并不是真正可靠和一致
  • 我需要的信息是:
    1. ETF的当前价值
    2. 1年、3年和5年业绩/回报
    3. 当前基金规模
    4. TER:总费用率
    5. TD:跟踪差异
    6. 1年波动率

例如,考虑在“阿姆斯特丹泛欧交易所”上列为“IWDA”的“iShares Core MSCI World”ETF 和“IE00B4L5Y983”的 ISIN 代码。到目前为止我读过的内容:

  1. 这个页面这个帖子,我使用这个GOOGLEFINANCE函数从谷歌财经获取当前价格和其他一些信息。但是,我不知道如何获取/计算 1/3/5 年的表现、基金规模、TER 和 TD。而且,根据这篇评论,谷歌财经和许多其他谷歌产品一样,似乎正在消亡。因此,拥有更可持续的解决方案会很棒。
  2. 这篇文章建议了一些语法使用indexIMPORTXML函数来获取etf.com。并且此注释使用相同的函数来获取nasdaq.com. 但我无法使任何一个工作,主要是因为我不知道我应该使用什么符号。
  3. 这个这个评论建议DGETIMPORTDATA函数,从 中获取数据api.iextrading.com,但我也无法让它工作。
  4. 这篇文章bogleheads.org论坛上的许多其他文章,使用了使用该importHTML函数从许多不同网站导入和解析 HTML 表格的所有语法变体。有很多可靠的网站,如果我学会了如何使用这个功能,我就可以从中获取数据。

如果您能帮助我了解如何获得上述信息,我将不胜感激。提前感谢您的支持。

PS1。这里,我可以使用以下命令:

=INDEX(SPLIT(INDEX(importHTML(CONCATENATE("http://etfs.morningstar.com/quote-banner?&t=", C5), "table", 1),1,11), " "), 1, 3)
Run Code Online (Sandbox Code Playgroud)

=INDEX(SPLIT(INDEX(importHTML(CONCATENATE("http://etfs.morningstar.com/quote-banner?&t=", C5), "table", 1),1,13), " "), 1, 2)
Run Code Online (Sandbox Code Playgroud)

从而拉动总基金规模和 TER。但是,他们不提供大多数 ETF 的数据,而且我不确定该网站的可靠性如何。

脚注:

1:交易所交易基金

2:国际证券识别号

dan*_*jai 2

这篇文章回答了如何通过 Google Sheets 进行网络抓取以及为什么它不起作用的基本问题。

一些附加信息:

如果网页更改其标签或呈现数据的方式,那么您之前编写的用于提取数据的任何 IMPORT 函数都将不起作用。(之前有效但由于网站通过 Javascript 呈现数据而导致数据无法通过 Google Sheets IMPORT 功能获取而失败的两种方法的示例:纳斯达克网站雅虎财经

在您的 Google 表格中,您获得“不适用”=GOOGLEFINANCE("AMS:IWDA", "return1")和类似绩效函数的原因是因为这些属性特定于共同基金,并且该函数不会计算 ETF 或股票的这些属性。

对于股票和 ETF,该GOOGLEFINANCE函数允许您提取股票代码的历史数据并返回一系列日期和一小组属性(即开盘、收盘、交易量)。您链接到的帖子在其共享的电子表格中使用了此方法。

下面详细介绍了如何使用该GOOGLEFINANCE功能的历史数据功能。

这行代码将尝试从当前日期提取 5 年的每周数据,并返回该股票的一系列日期和收盘价: =GOOGLEFINANCE("AMS:IWDA","close",today()-365*5,today())

您可以QUERY向其添加一个函数以仅返回属性列: =QUERY(GOOGLEFINANCE("AMS:IWDA","price",today()-365*5,today()), "Select Col2")

一旦获得值列,您就可以应用数学函数(即平均值、标准差、众数等)。例如,这行代码将返回 5 年平均每周收盘价,并在一个单元格中为您提供一个值,以便它可用于其他代码: =AVERAGE(QUERY(GOOGLEFINANCE("AMS:IWDA","price",today()-365*5,today()), "Select Col2"))

无论您如何定义性能,上述内容都可能有所帮助,因为无论您拉取长期范围还是单日,该GOOGLEFINANCE函数都会返回“日期”和“属性”列。该QUERY函数只是一种仅返回属性列的方法,因此您可以在单行实例的计算中使用它。