% 编程环境: Matlab 2014a, win7 32bit, Microsoft SQL Server 2008r2
%%
% 清屏
clc;
clear all;
close all;
%%
% 链接 yahoo 网站下载日线数据(将以下注释内容另存为 GetYahoocnStockDayData.m)
StockData=GetYahoocnStockDayData(1, 1, 2016, 3, 1, 2016,'002237');
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%%
%{
%%
% 雅虎数据接口(日线):
% urlread(['http://table.finance.yahoo.com/table.csv?a=0&b=1&c=2012&d=3&e=19&f=2012&s=600000.ss'])
% 函数调用格式(沪深):
% GetYahoocnStockDayData(1, 1, 2016, 3, 1, 2016,'600000')
%%
function StockData=GetYahoocnStockDayData(StartDateM,StartDateD,StartDateY,EndDateM,EndDateD,EndDateY,StockName)
%%
StartDateM=num2str(StartDateM);
StartDateD=num2str(StartDateD);
StartDateY=num2str(StartDateY);
EndDateM=num2str(EndDateM);
EndDateD=num2str(EndDateD);
EndDateY=num2str(EndDateY);
if StockName(1)=='6'
StockName=[StockName,'.ss'];
URL=['http://table.finance.yahoo.com/table.csv?a=',StartDateM,'&b=',StartDateD,'&c=',StartDateY,'&d=',EndDateM,'&e=',EndDateD,'&f=',EndDateY,'&s=',StockName];
StockData=urlread(URL);
elseif StockName(1)=='0'
StockName=[StockName,'.sz'];
URL=['http://table.finance.yahoo.com/table.csv?a=',StartDateM,'&b=',StartDateD,'&c=',StartDateY,'&d=',EndDateM,'&e=',EndDateD,'&f=',EndDateY,'&s=',StockName];
StockData=urlread(URL);
else
disp('调用函数格式错误!');
disp(['调用格式为:',...
'GetYahoocnStockDayData(StartDateM(int),StartDateD(int),StartDateY(int),EndDateM(int),EndDateD(int),EndDateY(int),StockName(string))']);
end
[Date,Open,High,Low,Close,Volume,AdjustedClose]=strread(StockData,'%s%s%s%s%s%s%s','delimiter',',');%由于接受的是一串字符串,需处理
counter=length(Date(:,1));
Date=Date(2:counter);
Open=Open(2:counter);
High=High(2:counter);
Low=Low(2:counter);
Close=Close(2:counter);
Volume=Volume(2:counter);
AdjustedClose=AdjustedClose(2:counter);
StockData=[Date,Open,High,Low,Close,Volume,AdjustedClose];
end
%}
%++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
%%
% 查询 SQL Server 下指定表
conn=database('ShuJuYuan','PERELMAN','');% 链接源【ODBC - ShuJuYuan】指定库表【SQL Server - ShuJuKu - StockData】
p=ping(conn);% 测试是否成功链接
if p.AutoCommitTransactions% 如果链接成功
curs=exec(conn,'select * from [ShuJuKu].[dbo].[StockData]');% 用于调用成员函数 Message 查询是否存在指定表
if curs.Message%如果数据库ShuJuKu下没有表 StockData ,则返回值非空,则新建表 StockData
sqlquery1='use ShuJuKu';% SQL 语句,选择数据库 ShuJuKu
sqlquery2=['create table StockData('...% SQL 语句,在数据库 ShuJuKu 下新建表 IBM
'D date NOT NULL PRIMARY KEY,'...% 日期不能为空且设置为主键避免数据重复
'O real NULL,'...
'H real NULL,'...
'L real NULL,'...
'C real NULL,'...
'V int NULL,'...
'AdjustedClose real NULL)'];
exec(conn,sqlquery1);
exec(conn,sqlquery2);
else
close(curs);
end
else
disp('数据库链接错误');
end
%%
% 数据写入 SQL Server
counter=length(StockData(:,1));
for i=1:counter
s=['''',cell2mat(StockData(i,1)),'''',',',...% 引用单引号方法(输入 '' 输出 ')
cell2mat(StockData(i,2)),',',...
cell2mat(StockData(i,3)),',',...
cell2mat(StockData(i,4)),',',...
cell2mat(StockData(i,5)),',',...
cell2mat(StockData(i,6)),',',...
cell2mat(StockData(i,7))];
sqlquery6='use ShuJuKu';
sqlquery7=['INSERT INTO StockData(D,O,H,L,C,V,AdjustedClose) VALUES (',s,')'];% 插入数据语句
exec(conn,sqlquery6);
exec(conn,sqlquery7);
end
%%
% 关闭数据库,用完要关闭,良好习惯
close(conn);
%%
% 调用 SQL Server 数据
conn=database('ShuJuYuan','PERELMAN','');
curs=exec(conn,'select * from [ShuJuKu].[dbo].[StockData]');
curs=fetch(curs);
Data=curs.data;
%%
% 展示
Data

%% 展示K线图
d=cell2mat(Data(:,1));
o=cell2mat(Data(:,2));
h=cell2mat(Data(:,3));
l=cell2mat(Data(:,4));
c=cell2mat(Data(:,5));
v=cell2mat(Data(:,6));
adjustedclose=cell2mat(Data(:,7));
%%
% 日期数据
date=datenum(datestr(d));
%%
% K 线图
candle(h,l,c,o,'k',date,'yyyy/mm/dd');
%%
% 个性设置
title('002237.sz-Made by DengChaohai','FontSize',12,'FontWeight','bold','Color','b');
set(gca,'YTick',min(l):0.1:max(h));
grid on;
axis tight;
xlabel('日期','FontSize',12,'FontWeight','bold','Color','b');
ylabel('价格','FontSize',12,'FontWeight','bold','Color','b');
legend('休市','上涨','下跌');
%%
%clcall;

动态下载 Yahoo 网络数据存入 Microsoft SQL Server 再 Matlab 调用的一个完整例子的更多相关文章

  1. 【转】Microsoft® SQL Server® 2012 Performance Dashboard Reports

    http://www.cnblogs.com/shanyou/archive/2013/02/12/2910232.html SQL Server Performance Dashboard Repo ...

  2. Microsoft SQL Server 数据量大 导入导出 问题汇总

    问题一: 今天拿到一份有近百万条数据的Excel要导到数据库里面,我先在本地(2014)用自带Excel,然后生成脚本文件去服务器(2008)上执行:文件SQL打开不了. 解决方法: 用自带的sqlc ...

  3. Microsoft SQL Server 2008 R2官方中文版(SQL2008下载).rar

    Microsoft SQL Server 2008 R2官方中文版(SQL2008下载).rar

  4. SQL Server 2008教程和Microsoft® SQL Server® 2008 R2 SP2 - Express Edition下载

    教程 SQL Server 2008 Tutorialhttp://www.quackit.com/sql_server/sql_server_2008/tutorial/ 数据库下载 Microso ...

  5. Jmeter—8 连接microsoft sql server数据库取数据

    本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...

  6. Python下载Yahoo!Finance数据

    Python下载Yahoo!Finance数据的三种工具: (1)yahoo-finance package. (2)ystockquote. (3)pandas.

  7. Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集

    XML 介绍 <CustomersOrders> <Customer custid="1" companyname="Customer NRZBB&qu ...

  8. 下载 Microsoft SQL Server JDBC 驱动程序

    JDBC 驱动程序中使用 Maven 中心 JDBC 驱动程序可以通过将其添加为依赖项在 POM.xml 文件中使用以下代码添加到 Maven 项目: XML复制 <dependency> ...

  9. Jmeter入门8 连接microsoft sql server数据库取数据

    本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...

随机推荐

  1. c语言 数组名是常量指针

    //数组名是常量指针 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include ...

  2. Eclipse中10个最有用的快捷键组合(转)

    Eclipse中10个最有用的快捷键组合 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask ...

  3. Response.Redirect("x.aspx);跳转后session为null的解决方法

    通常我们做登陆的时候都是登录成功后为管理员保存一些信息,一般都会写类似下面的代码 if(登录成功) { Session["xx"] = "user"; Resp ...

  4. 异步编程 In .NET(转)

    转自:http://www.cnblogs.com/jesse2013/p/Asynchronous-Programming-In-DotNet.html 概述 在之前写的一篇关于async和awai ...

  5. TinyFrame升级之二:数据底层访问部分

    在上一篇中,我列举了框架的整体结构,下面我们将一一说明: 首先需要说明的是TinyFrame.Data. 它主要用于处理数据库底层操作.包含EF CodeFirst,Repository,Unitof ...

  6. 【高清未加密】2015传智播客 最新21期c#asp.net 基础到就业班视频和源码

    [.NET]传智播客第[21]期就业班视频(高清无加密)本套2015年21期传智播客C#ASP.NET win10通用mvc+app开发视频教程附源码,是一套非常不错的asp.net自学视频教程,传智 ...

  7. 实现可以滑动的GrildView,类似美团网首页的GrildView功能菜单

    首先上实现效果图,不会做动态图,就先凑合着看吧 使用了网上的一个开源控件viewpagerindicator,可以自定义切换时候显示的标记,圆点,或者下划线. GrildView显示的是手机上的全部a ...

  8. Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for use

    今天在别人的服务器上登录mysql发现无法登陆(Mysql别人实现安装好的) 密码和用户名都是正确的,但登录后报如下错误: ERROR 1045 (28000): Access denied for ...

  9. Google Map API key 获取方法

    要想使用google map api 必须从google网站上获取key之后才有权限使用,但是要想申请key必须要有证明书,也就是所谓的MD5.下面一步一步来说明: 步骤1: 如果你使用的是eclip ...

  10. i春秋——春秋争霸write up

    i春秋--春秋争霸write up 第一关 题目给出一张图 提示中,这种排列源于古老的奇书,暗含了两个数字,可以得出第一关的答案是两个数字 百度识图来一发, 得到图中排列是来自于洛书,点开洛书的百度百 ...