动态下载 Yahoo 网络数据存入 Microsoft SQL Server 再 Matlab 调用的一个完整例子
% 编程环境: 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 调用的一个完整例子的更多相关文章
- 【转】Microsoft® SQL Server® 2012 Performance Dashboard Reports
http://www.cnblogs.com/shanyou/archive/2013/02/12/2910232.html SQL Server Performance Dashboard Repo ...
- Microsoft SQL Server 数据量大 导入导出 问题汇总
问题一: 今天拿到一份有近百万条数据的Excel要导到数据库里面,我先在本地(2014)用自带Excel,然后生成脚本文件去服务器(2008)上执行:文件SQL打开不了. 解决方法: 用自带的sqlc ...
- Microsoft SQL Server 2008 R2官方中文版(SQL2008下载).rar
Microsoft SQL Server 2008 R2官方中文版(SQL2008下载).rar
- 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 ...
- Jmeter—8 连接microsoft sql server数据库取数据
本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...
- Python下载Yahoo!Finance数据
Python下载Yahoo!Finance数据的三种工具: (1)yahoo-finance package. (2)ystockquote. (3)pandas.
- Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集
XML 介绍 <CustomersOrders> <Customer custid="1" companyname="Customer NRZBB&qu ...
- 下载 Microsoft SQL Server JDBC 驱动程序
JDBC 驱动程序中使用 Maven 中心 JDBC 驱动程序可以通过将其添加为依赖项在 POM.xml 文件中使用以下代码添加到 Maven 项目: XML复制 <dependency> ...
- Jmeter入门8 连接microsoft sql server数据库取数据
本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...
随机推荐
- JQuery 如何选择带有多个class的元素
Q: 比如下面代码需要选择同时带有这几个class的元素,怎么写? 1 <div class="modal fade in"></div> A: 1. 依次 ...
- scrapy 爬取 useragent
useragentstring.com 网站几乎廊括了所有的User-Agent,刚学了scrapy,打算那它练手,把上面的 user-agent 爬取下来. 本文只爬取常见的 FireFox, Ch ...
- Tuple的用法
1经常有些类型只用一次,不想添加新类,可以使用Tuple. 例子: List<Tuple<string, string>> list = new List<Tuple&l ...
- 《WCF服务编程第三版》知识点摘录
- Hibernate 相关面试题
谈谈你对Hibernate的理解 1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象.建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操 ...
- RESideMenu左右半侧滑的功能实现,主视图会和状态栏(StatusBar)不会随着一起滑动
具体demo去github下载,这里不详细描述
- MVVM开源框架Knot.js 教程2 - 大幅改变前端框架开发体验的Debugger
Knotjs教程系列 1.CBS初步 2.Knot.js Debugger(本文) ....持续增加中 Knot.js 教程2 - 改变前端框架开发体验的Debugger Debugger只是一个方便 ...
- #Linux学习笔记# Linux文件的所有者、群组和其他人
1.关于所有者.群组和其他人 在Linux系统中,每个文件都具有User.Group和Others三种身份的权限配置.那这三种身份分别表示什么意思呢?配置这三种身份的权限有啥意义呢? (1)文件所有者 ...
- Android图像格式类及图像转换方法
Android图像格式类及图像转换方法介绍 一款软件的开发和图像密切相关,特别是移动应用程序,在视觉效果等方面是至关重要的,因为这直接关系到用户的体验效果.在Android程序开发的过程中,了解存在哪 ...
- Bootstrap系列 -- 35. 按钮的向下向上三角形
按钮的向下三角形,我们是通过在<button>标签中添加一个“<span>”标签元素,并且命名为“caret”. <div class="btn-group d ...