通达信的历史数据存放在安装根目录下的vipdoc文件夹中,如D:new_tdxvipdocshlday为沪市数据,深市数据为:D:new_tdxvipdocszlday,根据各自通达信安装目录的不同而不同。文件名:“sh”或“sz”代码.day。数据格式结构如下,占用32字节:
结构体stockData
{
无符号整型日期;
int打开;
高位整数;
整数低;
int关闭;
浮动阿莫;
国际卷;
其他;
};
八个数据分别是日期、开盘价、最高价、最低价、收盘价、成交金额、成交量、持仓量;数据为*100后的整数。对于连续数据,
打开VS,新建一个TdxHistoryData的C控制台空项目。
创建一个新的空项目
双击打开TdxHistoryData.cpp源文件,添加修改如下:
//TdxHistoryData.cpp:该文件包含“main”函数。程序的执行将在这里开始和结束。
包括
包括
包括
包括
包括
使用命名空间std;
结构体stockData
{
无符号整型日期;
int打开;
高位整数;
整数低;
int关闭;
浮动阿莫;
国际卷;
其他;
};
voidgetHistoryData(字符串文件路径,矢量Data_Vec)
{
Data_Vec.clear();
fstreamifs(filePath,ios:in|ios:binary);
if(!ifs.is_open())
{
MessageBox(NULL,TEXT("无法打开文件!"),NULL,MB_ICONINFORMATION|MB_YESNO);
返回;
}
stockDatastkData;
while(!ifs.eof())
{
ifs.read((char*)stkData,sizeof(stockData));
Data_Vec.push_back(stkData);
}
if(Data_Vec[Data_Vec.size()1].date==Data_Vec[Data_Vec.size()2].date)
Data_Vec.pop_back();
ifs.close();
}
intmain()
{
字符串文件路径=“D:new_tdxvipdocshldaysh.day”;
向量vec数据;
getHistoryData(文件路径,vecData);
库特
库特
库特
对于(inti=0;i
{
库特
}
库特
}
整理完以上源文件后,进入菜单Debug-StartExecution,直接编译运行,显示结果如下:
读取数据结果
读取数据时每次读取32字节,连续读取即可。中间有个问题。读取所有数据并将其存储到向量中后,最后两个数据将被复制。由于某种原因,我必须添加一个判断。如果重复,则会弹出一个。
注意:通达信数据需要每天下载,否则读取的数据不完整或丢失。
欢迎交流。
如何在通达信版交易软件中查找历史记录:
1、输入任意股票的K线图。
2、右键按住拉出一个方框。
3.松开右键后,会弹出“区间统计”。点击“区间统计”。
4、在新弹出的对话框中点击“阶段排名”。
5.在新弹出的对话框中,将“开始日期”和“结束日期”均更改为年10月6日。
6.单击“确定”。