FQuantToolBox 基于MATLAB的数据&回测工具箱

Discussion in 'Julia / MATLAB / SAS' started by faruto, Dec 10, 2014.

  1. more info & pic demo see
    再议股票行情和基本面财务数据的获取-FQuantToolBox
    http://www.matlabsky.com/thread-45453-1-1.html
    ==========================================
    最近抽空把股票基础数据这一块的工作又折腾了一下,主要想法是完全基于网络(新浪财经、雅虎财经等等金融网站)获取数据,作为免费的数据源,原本想做好之后和公司的付费数据做比对,提升数据质量。索性就把免费数据源这块函数都封装好,未来以工具箱的形式分享给大家。我将其命名为 FQuantToolBox。

    免费的数据源这块整体获取和实现的框架大概是这样的:

    基于网络获取最新的A股市场的股票列表 ——> 基于网络获取全市场A股数据 ——> 基于网络获取股票除权除息信息 ——> 前复权数据生成

    基于网络全市场A股财务指标获取

    基于网络全市场A股三张表(资产负债表、现金流量表、利润表)数据获取

    基本核心函数都完成了,核心实现就是 网络数据网址寻找——> 网址分析——> urlread+正则 数据提取

    剩下就是把历史数据一次性获取一下,存成本地的.mat文件,未来数据的更新,每天电脑设个定时任务,行情数据每天更新,基本面财务数据每周或者几个月更新一次就行。

    当下仅仅弄完了 股票日线数据。未来想着把股票分钟数据,以及期货相关的数据也进行添加。

    FQuantToolBox,未来免费发布,工具箱里面彩蛋很多,干货很多,除了A股的行情和财务数据,还有其他一些回测相关的函数和插件。

    整体实现的脚本测试函数:
    %% Main_GetStockDataTest
    % by LiYang_faruto
    % Email:farutoliyang@foxmail.com
    % 2014/12/12
    %% A Little Clean Work
    tic;
    % clear;
    % clc;
    % close all;
    format compact;
    %% 日志文件

    fid = fopen('Dlog.log','at+');
    str = ['日期时间:',datestr(now),' 操作记录日志by李洋faruto '];
    fprintf(fid,'%s\n',str);
    %% 获取股票代码列表测试
    tic;

    [StockList,StockListFull] = GetStockList_Web;

    toc;

    save('StockList','StockList');
    str = ['日期时间:',datestr(now),' 更新股票列表'];
    fprintf(fid,'%s\n',str);
    %% 获取股票日线(除权除息)数据测试

    stock_code = 'sh600030';

    begin_date = '20050101';
    end_date = '20150101';

    StockDataDouble = GetStockTSDay_Web(stock_code,begin_date,end_date);

    %% 股票日线(除权除息) plot
    scrsz = get(0,'ScreenSize');
    figure('Position',[scrsz(3)*1/4 scrsz(4)*1/6 scrsz(3)*4/5 scrsz(4)]*3/4);

    AX1 = subplot(3,1,1:2);
    OHLC = StockDataDouble:),2:end-1);
    KplotNew(OHLC);
    Dates = StockDataDouble:),1);
    LabelSet(gca, Dates, [], [], 1);

    AX2 = subplot(3,1,3);
    V = StockDataDouble:),end);
    bar(V);
    xlim([0,length(V)]);
    LabelSet(gca, Dates, [], [], 1);

    linkaxes([AX1, AX2], 'x');
    %% 获取股票除权除息数据
    StockCode = '600537';
    StockCode = '600001';

    [ Web_XRD_Data , Web_XRD_Cell_1 , Web_XRD_Cell_2 ] = GetStockXRD_Web(StockCode);
    Web_XRD_Cell_1
    Web_XRD_Cell_2

    %% 进行前复权数据生成


    %% 获取股票财务指标测试

    StockCode = '600588';
    Year = '2014';
    [FIndCell,YearList] = GetStockFinIndicators_Web(StockCode,Year);
    FIndCell
    %% 获取三张表

    StockCode = '600588';
    Year = '2014';
    [BalanceSheet,ProfitSheet,CashFlowSheet,YearList] = GetStock3Sheet_Web(StockCode,Year);
    BalanceSheet
    ProfitSheet
    CashFlowSheet
    %% 关闭打开的文件

    fclose('all');
    %% Record Time
    toc;
    displayEndOfDemoMessage(mfilename);
     
  2. 多谢,希望能尽快看到最终版。
     
  3. 谢谢faruto