获取股票价格的 Excel 函数

作者: , 共 603 字 , 共阅读 0

香港这边没有 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
某些时候需要打开 Excel 文件来获取或者写入数据,但又不希望跳出打开的 Excel 文件窗口,可以用下面的代码:
之前对普通 Excel 文件,我都保存为默认的 xlsx 格式,带 vba 的保存为 xlsm 格式。最近从同事那里见到一个高大上的 excel 文件格式: xlsb。我学习了一下,觉得甚为强大,在此推荐一下。
编程 » Excel, VBA
效果图:
编程 » Excel
最近看到一个比较有趣的问题, Excel 中以下表达式代表什么含义:
如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
编程 » Excel, VBA
VBA 的 Date 类型比较奇怪。
相似度: 0.079
编程 » Excel, VBA
Excel VBA 出错时给出的错误信息极少,需要充分利用各种工具来进行调试。
彭博的 BDP(Bloomberg Data Point)和 BDH(Bloomberg Data History)是两个非常有用的 Excel 函数,其中前者用来获取点数据(最新),后者用来获取历史序列数据(当然也可以为历史点数据)。
中信泰富在澳大利亚经营铁矿,公司需以澳元购买设备和供应品。为减轻外汇波动的风险,从去年起,中信泰富开始购买澳元的累计外汇期权合约进行对冲(Accumulator)。据公告,中信泰富购买的澳元累计期权合约共 90 亿澳元,平均价为每 1 澳元兑换 0.87美元,而合约规定中信泰富每月都要买入,当汇率低于 0.78 美元时,公司更要两倍买入,直到 2010 年。然而, 9-10 月份,澳大利亚储备银行连续两次降息,而且降幅很大,澳元大幅贬值。于是地雷被引爆。中信泰富公告称, 9 月初,公司察觉到合约的风险所在,于是中止部分合约,实时损失 8 亿港元。  
风险管理用到的指标通常有两种计算方式,一种是事前的( ex ante ),一种是事后的( ex post )。