全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
3553 1
2010-09-12
WWW.WHOOL.NET

前一个datafeed用的是网络接口数据,不过平时用的多的还是一些其他来源的数据,好一点的会整理到数据库中,要不就是MS access或者MS excel,txt格式的数据了,对这些数据进行的输入输出操作,可以采用这些办法:
1.数据库数据,database工具箱。
MATLAB的数据库工具箱的GUI需要在编译窗口运行querybuilder。启动以后可以得到这样的界面:
  
为了测试的方便使用MSsql建立一个whool!数据库作为测试数据库

建立一个matlab的ODBC的链接到数据库:




测试数据库

使用GUI对数据进行操作,首选选取要连接的数据库,开始我们进行数据的输入再进行输出测试。
在matlab中建立一个whool0的变量作为测试。
对数据库数值进行查询

这个是对数据进行输入的界面,过程大致是一样的,中间有一些选择的条件可以对数据进行过滤。  
以上是一个很简单的应用,熟悉以后就可以脱离GUI界面,直接编写m文件了。
下面是一个利用网络读取数据后插入到指定的数据库的代码,以前做的,现在应该是失效了,有兴趣可以看看。
function WhoolTradeHistoryInsertData(line_buff,symbol)   
ptr1       = strfind(line_buff, ‘{‘);     
ptr2       = strfind(line_buff,’}');     
M=length(ptr1)     
for j=5:-1:1     
      daydata0=(line_buff(ptr1(j):ptr2(j)));     
      ptr3       = strfind(daydata0, ‘:"’);     
      ptr4       = strfind(daydata0,’",’);     
    daydata.open=str2double(daydata0(ptr3(1)+2:ptr4(1)-1));     
    daydata.low=str2double(daydata0(ptr3(2)+2:ptr4(2)-1));     
    daydata.volume=str2double(daydata0(ptr3(3)+2:ptr4(3)-1));     
    daydata.high=str2double(daydata0(ptr3(4)+2:ptr4(4)-1));     
    daydata.close=str2double(daydata0(ptr3(6)+2:ptr4(6)-1));     
    daydata.adjclose=str2double(daydata0(ptr3(8)+2:ptr4(8)-1));     
    datestr=daydata0(ptr3(7)+2:ptr4(7)-1);     
    ptrdate = strfind(datestr,’-');     
        subyear=str2double(datestr(1:ptrdate(1)-1));     
        submonth=str2double(datestr(ptrdate(1)+1:ptrdate(2)-1));     
        subday=str2double(datestr(ptrdate(2)+1:end));     
    daydata.date = datenum(subyear, submonth, subday)-693960;     
    update = strcat(‘SELECT max(DATE) FROM WhoolTradeHistoryData.dbo.’,symbol);     
conn = database(‘WhoolTradeHistoryData’,”,’password’);     
last = exec(conn,update);     
last = fetch(last);     
lastvalue=cell2mat(last.Data);     
  if (lastvalue<daydata.date)||isnan(lastvalue)     
exdata = {daydata.open,daydata.low,daydata.volume,…     
        daydata.high,daydata.close,daydata.date,daydata.adjclose}     
     clear last;     
   colnames = {‘OPENPRICE’,'LOWPRICE’,'VOLUME’,'HIGHPRICE’,'CLOSEPRICE’,'DATE’,'ADJCLOSEPRICE’}     
    table= strcat(‘WhoolTradeHistoryData.dbo.’,symbol);     
  fastinsert(conn,table, colnames, exdata);     
  end     
end     
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-9-12 22:59:06
这么好的文章应该顶一下
谢谢
我一直很需要MATLAB连接外部数据的帖子
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群