WhooL !

Fantastic World 数量投资 程序交易 以及 市场动态

WhooL  ! header image 2

stock his data 的获得(Pj-02)

七月 25th, 2009 by Crews

按照之前的想法,今天做了stock history的数据的获得。所用的stock 是用的google中的china资产组合,不过其中有一些好像在yahoo finance中没有历史数据,所以没有办法用这个办法得到结果,list总共是146家中国的股票,在所有的中国股票中除去了(YTEC,ASTTY,ORS,PACT,MGH,ADL,ATYM,CRGIY)这些股票大多是股价在1.00以类或者yahoo上没有历史记录的。我也没有去看那个list上的中国公司都有些那的,不过样本就用这146吧。

最主要的问题在于这些得到的数据的格式,因为在04年到现在的这些股票,他们的交易日期其实很不一样,最normal的股票有1414个交易日,不过很多股票没有这个数,有些甚至只有300多天,而且我是按照list的顺序存在几个变量中的,变量作为一个2为数组A(a,b)其中A(:,b)代表的是在list中b位置的历史数值,由于中间可能存在一些数据个数的不一样,我们得到的数据维数其实是很不规则的,这个在后面的处理中还要好好倒腾下了。

另外的问题就是这个速度太慢了,由于这个method是建立在load进入网页后读取网页编码的办法,理论上load进去网络就决定了函数的运行速度,我们家的adsl 无线网,一个stock的处理要14s左右,运行所有的要35分钟,还有就是程序中没有错误处理的解决,我是自己一个个load后发现有些没与历史数据而强行终止的得到的,不过再往后就不可能再是这样了,试试建立一个错误的处理过程。

速度太慢了,甚至让我有放弃的感觉了。痛苦啊。

PS:最后下载数据的时候还是出错了,我一直觉得是我用的组合有问题,那个上面不仅仅有nyse nasdaq还有一些otc的,于是上nyse下了一个china的list 45+搜罗了nasdaq的总共是109个。尝试用新的再做一次了。

接下来就是建立一个数据库吧这些数据都放进去,为什么要是数据库其他的不行吗?我琢磨了下,因为我想把历史数据和option数据都放进去,所以还是试试用数据库吧,excel和access缓缓把,用的Sql,怎么建,google大神了。

下面是历史数据的主程序了

% A function for get the stock history price in the internet.
% whool.net

% step1 load the list of stock from txt.
function [HIS_DATE, HIST_HIGH, HIST_LOW, HIST_OPEN, HIST_CLOSE, \
HIST_VOL] =PJ_HIS _STOCK (STOCK_LIST)
for i=1:146   
   [hist_date, hist_high, hist_low, hist_open, hist_close, \
hist_vol,ptr] = get_hist _stock _data (STOCK_LIST (i))
   HIS_DATE (1:ptr-1,i)=hist_date (:,1);
   HIST_HIGH (1:ptr-1,i)=hist_high (:,1);
   HIST_LOW (1:ptr-1,i)=hist_low (:,1);
   HIST_OPEN (1:ptr-1,i)=hist_open (:,1);
   HIST_CLOSE (1:ptr-1,i)=hist_close (:,1);
   HIST_VOL (1:ptr-1,i)=hist_vol (:,1);
   clear hist_date hist_high hist_low hist_open hist_close hist_vol \
ptr
end
end

看看Whool!更多的文章,把 Whool!加入到你的订阅吧!

你感兴趣的.....

  • How to Get a Stock Quote Using Matlab(luminouslogic) (0)
    While a previous article covered how to use Matlab to retrieve certain stock statistics from Yahoo! Finance, I thought I should post a separate script that just retrieves the price at which the stock ...
  • VBA ADO常用方法 (1)
    没想到我现在的工作VBA联系得这么紧密,其实比起delphi,VBA应该算小菜啦,基本上现阶段的工作就是VBA连数据库进行操作了,以后会是 C#,delphi连数据库基本上是采用ado,很方便,VBA当然也用这种方法会很自由,以下是VBA用ado连数据库的方法(ZZ): 准备工作 ======== Dim conn As New ADODB.Connection '创建一个 Connecti...
  • 念叨 (0)
    之前忙乎了很久关于怎么样得到数据,其实不用什么页面编码,我要的数据很简单,应该把重点放在其他的地方上,excel的话msn有一个取数据的插件,装上就好了,唯一的是有一个次数的限制,想想有没有办法解救就好了。至于matlab,不用自己读页面的数据,直接用yahoo的那个fetch就好了,该有的数据都有的,白想了一大堆。 唉,走错弯路了啊。...
  • 10 Rules of the Rich (0)
      1. Give yourself a raise. 10% of your net income should go on auto-deposit into your 401(k), IRA, health savings account, etc. Period. Stop whining, complaining or procrastinating. It’s tax...

Tags:   · · 2 Comments

Leave a Comment

Anti-Spam Protection by WP-SpamFree

2 responses so far ↓

  • 发现matlab的yahoo数据接口组件了
    connection_obj=yahoo
    fetch(connecrtion_obj,’goog’).
    fetch(connection_obj,’goog’,'close’,'01/01/2004′.’1/3/2009′)

    速度和我的差不多,最重要的是得到是一个X*7的数组,这个可就比我的草根代码好多了

    [回复]

  • 虽然有这个数据接口,不过得到的价格好像并没有经过加权处理,这样很难用啊,如果做多了,碰上变态的spilt就很麻烦了

    [回复]