% 编程环境: 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. WEB 安全之 SQL注入<一> 盲注

    SQL注入是一个比较"古老"的话题,虽然现在存在这种漏洞的站点比较少了,我们还是有必要了解一下它的危害,及其常用的手段,知己知彼方能百战不殆.进攻与防守相当于矛和盾的关系,我们如果 ...

  2. HttpClient, 使用C#操作Web

    我们知道, .Net类库里提供了HttpWebRequest等类,方便我们编程与Web服务器进行交互. 但是实际使用中我们经常会遇到以下需求,基础类里没有直接提供相应的功能(WebClient类包含这 ...

  3. JS 之高级函数

    作用域安全的构造函数 当使用new调用构造函数时,构造函数内部this对象会指向新创建的对象实例.如果不使用new,直接调用的话,则this对象会映射到window对象上.所以需要判断下. eg: f ...

  4. 使用JQuery能做什么(zz)

    jQuery库为Web脚本编程提供了通用(跨浏览器)的抽象层,使得它几乎适用于任何脚本编程的情形.jQuery通常能为我们提供以下功能: 1.方便快捷获取DOM元素 如果使用纯JavaScript的方 ...

  5. objc_msgSend()报错Too many arguments to function call ,expected 0,have3

    Build Setting--> Apple LLVM 6.0 - Preprocessing--> Enable Strict Checking of objc_msgSend Call ...

  6. bt协议详解 DHT篇(上)

    bt协议详解 DHT篇(上) 最近开发了一个免费教程的网站,突然产生了仔细了解bt协议的想法,这篇文章是bt协议详解系列的第三篇,后续还会写一些关于搜索和索引的东西,都是在开发这个网站的过程中学习到的 ...

  7. Angularjs 异步模块加载项目模板

    ng-lazy-module-seed(Angularjs 异步模块加载项目模板) 相信做过SPA项目的朋友都遇到过这个问题:页面初始化时需要加载文件太大或太多了,许多文件加载后很可能不会运行到,这是 ...

  8. Android图像格式类及图像转换方法

    Android图像格式类及图像转换方法介绍 一款软件的开发和图像密切相关,特别是移动应用程序,在视觉效果等方面是至关重要的,因为这直接关系到用户的体验效果.在Android程序开发的过程中,了解存在哪 ...

  9. Bootstrap系列 -- 22. 按钮

    Bootstrap框架首先通过基础类名“.btn”定义了一个基础的按钮风格,然后通过“.btn-default”定义了一个默认的按钮风格.默认按钮的风格就是在基础按钮的风格的基础上修改了按钮的背景颜色 ...

  10. 编写高质量代码改善C#程序的157个建议[优先考虑泛型、避免在泛型中声明静态成员、为泛型参数设定约束]

    前言 泛型并不是C#语言一开始就带有的特性,而是在FCL2.0之后实现的新功能.基于泛型,我们得以将类型参数化,以便更大范围地进行代码复用.同时,它减少了泛型类及泛型方法中的转型,确保了类型安全.委托 ...