获取股票价格的 Excel 函数

作者: , 共 603 字

香港这边没有 WIND ,部门的彭博也不在我的机器上,为了取个股票价格数据都得跑来跑去。一怒之下,我写了一个 Excel 的函数,用来获取行情数据。

下载

使用方法为: =GetPriceFromYahoo("000300.SS", "2011-10-10")。其中第一个参数为股票或者指数的 ticker ,第二个参数为日期。函数还支持第三个参数,以获取开盘价、最高价/最低价、交易量等数据。函数内置了缓存,速度非常快。

对于股票而言,价格信息还需要考虑一个重要的因素,即除权的处理。使用GetPriceFromYahoo(ticker, date, "adj")可得到当天除权调整的收盘价。可惜这个调整收盘价不适用于中国地区的股票

该函数支持 Yahoo Finance 支持的股票和指数,不仅限于国内的股票。中国上海交易所的股票 ticker 为代码加「.SS" ,深圳交易所的股票 ticker 为代码加".SZ"。其它国家的股票和指数的 ticker 可先查询http://finance.yahoo.com/

这个函数的最大好处是不需要做任何配置,只需要把代码复制到你的 Excel 文件里即可。代码短小精悍,只有 70 行,在任何一台能上网的机器上都能用。smf_addin是另一个开源的 Excel 插件,功能比上面的函数要强大得多,不过配置上要稍微复杂一些,并且使用起来也不是很直观。

Q. E. D.

类似文章:
这个 Excel 模板使用参数法和历史法计算资产组合的VaR,两个函数分别是 ParaVaR 和 HistVaR ,是以前写的VaR Primer的一个实现。具体使用方法可参考模板以及 VBA 的代码注释。
Excel 多表合并和查询是一个应用很广泛的问题。下面是一个简单的例子,我们需要从两张数据表里,得出每个行业的股票波动率平均值。第一个数据表保存了股票和行业的对应关系,有两列,第一列为股票名,第二列为每只股票对应的行业。第二张表保存了各个股票在各个交易日的收盘价和前收盘价,有四列,第一列是股票名,第二列为交易日,第三列和第四列分别为股票在这个交易日的前收盘价和收盘价。
编程 » Excel, VBA
VBA 的 Date 类型比较奇怪。
编程 » Excel, VBA
效果图:
之前对普通 Excel 文件,我都保存为默认的 xlsx 格式,带 vba 的保存为 xlsm 格式。最近从同事那里见到一个高大上的 excel 文件格式: xlsb。我学习了一下,觉得甚为强大,在此推荐一下。
编程 » Excel, VBA
某些时候需要打开 Excel 文件来获取或者写入数据,但又不希望跳出打开的 Excel 文件窗口,可以用下面的代码:
彭博的 BDP(Bloomberg Data Point)和 BDH(Bloomberg Data History)是两个非常有用的 Excel 函数,其中前者用来获取点数据(最新),后者用来获取历史序列数据(当然也可以为历史点数据)。
如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
Excel 有一个很有用的功能是直接导入外部数据库或者使用外部数据源建立数据透视表和数据透视图。但比较可惜的是,这个数据源的查询语句是静态的,它无法根据日期自动修改(比如在应用中,我们希望每天获取的外部数据都是当天最新的数据),下面两个函数是修改外部数据源的 VBA 代码,调用它们就可以建立动态的数据源。
相似度: 0.067
编程 » Excel, VBA
Excel VBA 出错时给出的错误信息极少,需要充分利用各种工具来进行调试。
前一篇:
中信泰富在澳大利亚经营铁矿,公司需以澳元购买设备和供应品。为减轻外汇波动的风险,从去年起,中信泰富开始购买澳元的累计外汇期权合约进行对冲(Accumulator)。据公告,中信泰富购买的澳元累计期权合约共 90 亿澳元,平均价为每 1 澳元兑换 0.87美元,而合约规定中信泰富每月都要买入,当汇率低于 0.78 美元时,公司更要两倍买入,直到 2010 年。然而, 9-10 月份,澳大利亚储备银行连续两次降息,而且降幅很大,澳元大幅贬值。于是地雷被引爆。中信泰富公告称, 9 月初,公司察觉到合约的风险所在,于是中止部分合约,实时损失 8 亿港元。  
风险管理用到的指标通常有两种计算方式,一种是事前的( ex ante ),一种是事后的( ex post )。