天天看點

Matlab讀取yahoo股票資料

Matlab在讀取雅虎資料時經常出現不穩定的現象,是以,為了能夠将更多精力集中到資料處理上不再每次花費漫長時間在等待連接配接上,可以将讀取資料的代碼單獨放置在一個m中,比如:

clear;
c=yahoo;
D=fetch(c,'600177.ss','05/18/09','06/18/09');  %雅戈爾
format long g  %不以預設的科學計數法顯示資料
D              %輸出資料
save testD D   %儲存資料      

上述程式處理後,編号為“600177.ss”深市的股票“雅戈爾”的相關資料被儲存在目前目錄下“testD”中D變量内,以後在需要的時候可以随時讀取。

fetch函數的含義為:

fetch Request data from Yahoo!.
    D = fetch(C,S) returns data for all fields from the Yahoo's web site for
    given securities, S, given the connection handle, C.  
 
    D = fetch(C,S,F) returns the data for the specified fields, F.
 
    D = fetch(C,S,D1) returns all data fields for the given security for 
    the date D1.  If D1 is today's date, the data from yesterday will
    be returned.
 
    D = fetch(C,S,F,D1) returns the data for the specified fields, F, for the 
    date D1.
 
    D = fetch(C,S,D1,D2) returns the data for the given security
    for the date range D1 to D2.
 
    D = fetch(C,S,F,D1,D2) returns the data for the specified fields, F,
    for the date range D1 to D2.
 
    D = fetch(C,S,D1,D2,P) returns the data for the given security
    for the date range D1 to D2 with a period of P.   P can be
    entered as:
 
    'd' for daily values.
    'w' for weekly values.
    'm' for monthly values.
    'v' for dividends.      

可以看到,fetch支援多種參數設定形式,可以根據自己的需要進行設定。

下面看看如何讀取資料D,

clc;
load testD.mat  %導入
format long g   %顯示形式
datestr(D(:,1))  %日期顯示格式為可識别方式。      

上述程式能夠輸出資料D的第一列,結果為:

ans =

18-Jun-2009
17-Jun-2009
16-Jun-2009
15-Jun-2009
12-Jun-2009
11-Jun-2009
10-Jun-2009
09-Jun-2009
08-Jun-2009
05-Jun-2009
04-Jun-2009
03-Jun-2009
02-Jun-2009
01-Jun-2009
29-May-2009
28-May-2009
27-May-2009
26-May-2009
25-May-2009
22-May-2009
21-May-2009
20-May-2009
19-May-2009
18-May-2009      

其中,

datestr(D(:,1))  %日期顯示格式為可識别方式。      

語句用來将第一列的資料進行格式轉換後輸出,否則輸出結果為:

ans =

      733942
      733941
      733940
      733939
      733936
      733935
      733934
      733933
      733932
      733929
      733928
      733927
      733926
      733925
      733922
      733921
      733920
      733919
      733918
      733915
      733914
      733913
      733912
      733911      

當然,需要更多的開盤資料、收盤價、交易量等,可以通過