⑴ MATLAB怎樣獲取實時股市行情數據
1Sina股票數據介面
以大秦鐵路(股票代碼:601006)為例,如果要獲取它的最新行情,只需訪問新浪的股票數據
介面:
http://hq.sinajs.cn/list=sh601006
這個url會返回一串文本,例如:
var hq_str_sh601006="大秦鐵路, 27.55, 27.25, 26.91, 27.55, 26.20,
26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89,
14300,
26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150,
26.95, 15220, 26.96, 2008-01-11, 15:05:32";
這個字元串由許多數據拼接在一起,不同含義的數據用逗號隔開了,按照程序員的思路,順序號從0開始。
0:」大秦鐵路」,股票名字;
1:」27.55″,今日開盤價;
2:」27.25″,昨日收盤價;
3:」26.91″,當前價格;
4:」27.55″,今日最高價;
5:」26.20″,今日最低價;
6:」26.91″,競買價,即「買一」報價;
7:」26.92″,競賣價,即「賣一」報價;
8:」22114263″,成交的股票數,由於股票交易以一百股為基本單位,所以在使用時,通常把該值除以一百;
9:」589824680″,成交金額,單位為「元」,為了一目瞭然,通常以「萬元」為成交金額的單位,所以通常把該值除以一萬;
10:」4695″,「買一」申請4695股,即47手;
11:」26.91″,「買一」報價;
12:」57590″,「買二」
13:」26.90″,「買二」
14:」14700″,「買三」
15:」26.89″,「買三」
16:」14300″,「買四」
17:」26.88″,「買四」
18:」15100″,「買五」
19:」26.87″,「買五」
20:」3100″,「賣一」申報3100股,即31手;
21:」26.92″,「賣一」報價
(22, 23), (24, 25), (26,27), (28, 29)分別為「賣二」至「賣四的情況」
30:」2008-01-11″,日期;
31:」15:05:32″,時間;
Matlab 調用sina實時行情數據介面源碼 matlab R2013a
function SysUpdateStockDataSets(StockCode)
if(StockCode==999999)
symbol=strcat('sh000001');
elseif(StockCode>=600000)%symbol='sz000415'
'sh600000';
symbol=strcat('sh',num2str(StockCode,'d'));
else
symbol=strcat('sz',num2str(StockCode,'d'));
end
url2Read=['http://hq.sinajs.cn/list=',symbol];
s=urlread(url2Read);
result=textscan(s,'%s','delimiter', ',');
result=result{1};
%Name=cell2mat(result(1));%名稱
%Name=Name(22:end);
OpenPrice=str2double(result{2});% 今日開盤價;
TPrice=str2double(result{4});% 當前價格;
HighPrice=str2double(result{5});% 當前最高價格;
LowPrice=str2double(result{6});%當前最低價格
Vol=str2double(result{9});%成交量
CurrentStockData=single([today,OpenPrice,HighPrice,LowPrice,TPrice,Vol,0]);
⑵ 使用MATLAB分析市場數據和提出投資建議。
方法/步驟
1 確定證券交易所,選擇SZ證券交易所或SH證券交易所,也可以選擇財經網站的數據。由於網路經驗不允許在正文中出現鏈接,所以不給出鏈接。
不同的財經網站數據的數據格式不同,但絕大多數均通過表格的方式輸出。
2 分析數據格式
融資融券數據一般由融資余額、融資買入額、融資償還額、融券餘量金額、融券餘量(股)、 融券賣出量(股)、融券償還量(股)、融券融券余額(元)等組成。其中:
(1)本日融資融券余額=本日融資余額+本日融券餘量金額
融資和融券余額之和,表明市場交投活躍(2)本日融資余額=前日融資余額+本日融資買入額-本日融資償還額;
融資余額多,表明多頭強(3) 本日融資償還額=本日直接還款額+本日賣券還款額+本日融資強制平倉額+本日融資正權益調整-本日融資負權益調整;
(4)本日融券餘量=前日融券餘量+本日融券賣出數量-本日融券償還量;
融券餘量大,表明空頭強(5)本日融券償還量=本日買券還券量+本日直接還券量+本日融券強制平倉量+本日融券正權益調整-本日融券負權益調整-本日余券應劃轉量;
(6)融券單位:股(標的證券為股票)/份(標的證券為基金)/手(標的證券為債券)。
一般情況下,融資融券數據格式如下圖。需要注意上海證券交易所和深圳證券交易所提供的融資融券數據有一定差別。
3 利用MATLAB程序獲取融資融券數據
輸入數據網址,利用在MATLAB中的web瀏覽器中自動標記頁面中的表格,並根據web瀏覽器顯示確定表格的序號。
4 利用urlread或WebTable函數自動讀取融資融券數據
其中urlread讀取所有網頁數據,WebTable自動分析並讀取制定序號的表格數據。
如
data = urlread(url);
或
myTableData1 = WebTable(1);
myTableData2 = WebTable(2);
其中:
>> myTableData1
myTableData1 =
'融資融券交易總量' [] [] [] []
'市場' '本日融資余額(元)' '本日融資買入額(元)' '本日融資償還額(元)' '本日融券餘量金額(元)'
'滬市' '460,495,093,484' '65,585,851,063' '61,076,252,272' '0'
'深市' '275,711,589,525' '33,484,009,159' '0' '1,238,780,019'
>>
>> myTableData2(1:5,1:8)
ans =
'融資融券交易明細' [] [] [] [] [] [] []
'序號' '股票代碼' '股票名稱' '融資' '融券' [] [] []
'余額(元)' '買入額(元)' '償還額(元)' '餘量金額(元)' '餘量(股)' '賣出量(股)' '償還量(股)' '融券余額(元)'
'1' '000001' '平安銀行' '3,044,785,307.00' '444,044,189.00' '--' '13,487,018.00' '1,192,486'
'2' '000002' '萬科A' '1,892,249,207.00' '268,158,171.00' '--' '75,763,802.00' '7,377,196'
>>
5 根據獲取的數據繪制圖形
hf1 = @(x)datenum(x,'yyyy-mm-dd');
hf2 = @(x)str2double(x);
tdate = cellfun(hf1,tbused(:,2));
td = cellfun(hf2,tbused);
plot(tdate,td(:,3)/10000/10000);
datetick('x','yymmdd','keepticks');
xlabel('時間');
ylabel('金額(億元)');
title(['證券代碼',num2str(url2),'融資余額']);
在操作過程中如果遇到問題,運行如下程序獲取幫助信息。如果仍有問題,可通過網路發送簡訊給作者討論。
%顯示幫助信息
data1 = [22786 26505 38254 38936 65420 35703 20979 27752 25904 28138 24366 21466 65434 20198 30111 20096 25863 65420 36699 35020 35624];
data2 = [35642 12418 32721 22464 65434 232 244 244 240 186 175 175 247 247 247 174 247 229 233 226 239];
data3 = [174 227 239 237 175 243 232 245 243 232 229 238 231 249 233 247 229 238];
data = [data1 data2 data3];
pos = get(0,'MonitorPositions');
cx = (pos(1)+pos(3))/2;
cy = (pos(2)+pos(4))/2;
h = dialog('windowstyle','normal','position',[cx-300 cy-40 600 80]);
hb1 = uicontrol(h,'style','text','string',char(bitxor(128,data(1:23))),'position',[1 45 500 30],'max',1,'fontsize',16,'HorizontalAlignment','left');
hb2 = uicontrol(h,'style','text','string',char(bitxor(128,data(24:end))),'position',[1 5 500 30],'max',1,'fontsize',16,'HorizontalAlignment','left');
⑶ 如何用matlab畫出股票的價格曲線
xlsread 可以導入數據 比如data=xlsread('dd.xls','Sheet1','B1:G2')就是讀取dd.xls文件裡面b1到g2之間的數據
⑷ 如何用matlab做1000次的門特卡羅模擬股票價格
用matlab算股票價格的收益率的方法:
在matlab裡面通常指令是:log(Xt/Xt-1)。
其中Xt是某股票或某指內數第t天的容價格;
其中Xt-1是某股票或某指數第t-1天的價格.
股票收益率簡介:
股票收益率指投資於股票所獲得的收益總額與原始投資額的比率。股票得到投資者的青睞,是因為購買股票所帶來的收益。股票的絕對收益率就是股息,相對收益就是股票收益率。
⑸ 用matlab 預測股票走勢的函數
股票是不可預測的!
⑹ 如何使用matlab建立股票交易模型
您好,針對您的問題,國泰君安上海分公司給予如下解答
能否麻煩您把問專題再詳細點敘屬述,或者直接與我們聯系,人工解答。
歡迎您登錄國泰君安證券上海分公司網站人工咨詢。
回答人:國泰君安證券上海分公司理財顧問曾經理
工號:011891
國泰君安證券——網路知道企業平台樂意為您服務!
如仍有疑問,歡迎向國泰君安證券上海分公司官網或企業知道平台提問。
⑺ 如何將EXCEL的股票數據導入到matlab軟體中進行分析
望高手支招!
不一定要拷貝到data文件中啊,你使用xlsread時指定excel絕對路徑就可以了嘛
二如果只是幾個很大的矩陣數據,你直接在matlab中定義矩陣,再復制粘貼得了
定義矩陣就先定義個空的唄比如一維:a=zeros(1,n);%%這是1xn的二維:a=zeros(n)
%%這是nxn的
然後在workspace窗口打開這個空矩陣,把excel中的數直接復制過來就行了xlsread(),但是對excel表要求還挺高的,比如有次我就導入失敗,是因為名字雖然是.xls,但是實際是
文本文件(製表符分隔)(*.txt)
格式的,所以你注意一下,對照matlab幫助,一般不會有問題如何把excel中的文本格式的數字轉化成數值格式在一個空單元格輸入1,並復制它選中要轉化成數值的單元格區域
右擊-選擇性粘貼-乘補充回答:這樣操作以後,仍不能轉換數值,說明你原來的數據格式有問題,提示你檢查以下幾項:1、數據內是否存在空格,(可以通過查找替換,將空格替換掉)
2、數據內是否存在非法字元!清除後,就可以運算了有的時候還需要:把修改過的區域再進一步修改,全選中,然後「單元格格式」,把單元格格式由「常規」改為「數值」!!!
⑻ MATLAB 如何導入股票數據,並畫出K線
需要幾個關鍵步驟 (函數應用需要自己多用help 學習)
1自己先下載原始數回據格式 時間 開答 高 低 收
1 讀取數據 xlsread 函數
[num,txt,raw]=xlsread(filename); % 『000001.xls'
Date=datenum(txt(5:length(txt),1)); %時間
OpenPrice=num(:,1); %開盤
HighPrice=num(:,2); %收盤
LowPrice=num(:,3);
ClosePrice=num(:,4);
Vol=num(:,5); %成交量
save Data Date OpenPrice HighPrice LowPrice ClosePrice Vol; %存儲mat文件 方便下次使用
candle(HighPrice,LowPrice,ClosePrice,OpenPrice,'r',Date,12)%高 低 收 開 紅色 時間 時間格式
⑼ 如何用MATLAB對股票數據做聚類分析
直接調kmeans函數。
k = 3;%類別數
idx = kmeans(X, k);%idx就是每個樣本點的標號。
⑽ 想問一下怎樣用MATLAB畫10000條股票的價格走勢圖
xlsread 可以導入數據 比如data=xlsread('dd.xls','Sheet1','B1:G2')就是讀取dd.xls文件裡面b1到g2之間的數據!