『壹』 怎樣用excel 實時讀取 股票日線數據
定量分析的第一步,是獲取數據。
獲取股票歷史行情數據最方便的途徑,就是直接讀取股票行情軟體留在你電腦中的日線數據文件。
但如果不是程序員,電腦里一般不會有VB、VC之類的編程語言。
其實,大家的電腦中一般都有OFFICE。OFFICE中的EXCEL自帶了一個VBA語言的編程環境。功能也很強大。
我用EXCEL里的VBA編寫了一段代碼,讀取通達信股票行情軟體的日線文件。已經測試通過。
代碼如下。與愛好定量分析的朋友分享。
TypeMyType
a1AsLong'標示碼
a2AsLong'日期
a3AsSingle'開盤價
a4AsSingle'最高價
a5AsSingle'最低價
a6AsSingle'收盤價
a7AsSingle'成交金額
a8AsLong'成交量
EndType
Sub按鈕1_Click()
DimFile2AsInteger
DimbAsMyType
File1=FreeFile
Opensh600000.dayForBinaryAccessReadAs#File1i=1DoWhileNotEOF(File1)
Get#File1,,b
Cells(i,1)=b.a1
Cells(i,2)=b.a2
Cells(i,3)=b.a3
Cells(i,4)=b.a4
Cells(i,5)=b.a5
Cells(i,6)=b.a6
『貳』 如何將搜狐網上的成交明細數據用VC++讀取 http://q.stock.sohu.com/cn/000060/cjmx.shtml
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include<string>
#include<iostream>
#include "windows.h"
using namespace std;
typedef struct
{
int date;//4位元組 int類型也是1
int open;
int high;
int low;
int close;
int amount;
int vol;
int reservation;
} StockData;
StockData stockData;
int read_data(FILE *);
int main (int argc, char *argv[])
{
FILE *fp;
if((fp=fopen("D:\\common\\stock\\jcb_gx\\Vipdoc\\sh\\lday\\sh999999.day","rb"))==NULL)
{
printf("Error: Can^t open file ! ");
exit(0);
}
read_data(fp);
fclose(fp);
if(getch()==0) getch();
exit(0);
}
int read_data(FILE *fp)
{
float fn;
while(! feof(fp)){
fread(&stockData,sizeof(StockData),1,fp);
cout<<"單個記錄長度 "<<sizeof(StockData)<<endl;
printf("飢蠢冊日期 %10lu ",stockData.date);
fn=((float)(stockData.open))/100;
printf("開牌價 %8.2f ",fn);
fn=float(stockData.high)/100;
printf("最高價爛宏 %8.2f ",fn);
fn=float(stockData.low)/100;
printf("最低價 %8.2f ",fn);
fn=float(stockData.close)/100;
printf("收盤價 %8.2f ",fn);
printf("多多 %8lu ",stockData.amount);
fn=float(stockData.vol)/100;
printf("成交量 %8.1f ",fn);
printf("reservation %8lu "檔沒,stockData.reservation);
//Sleep(1000);
cout<<endl;
}
return 0;
}