- 金币:
-
- 奖励:
-
- 热心:
-
- 注册时间:
- 2007-3-23
|
|
回复 #6428 lymanqun 的帖子
今天很巧,和依然大哥去了同一个网站.
最近总是因为数据问题而苦恼,因为每天和依然大哥还有创幻,统帅的数据,大家都不一样,今天发现这个帖,
请依然大哥看一下,是否需要照它做改动,那样数据会准确一些吗????????
http://bbs.fxj.net.cn/dispbbs.as ... ;ID=4271&page=1
大智慧数据读取及转换工具使用说明(转)
07.5.20. 支持dzh v2.06.07.0515.
07.4.9 1)除BUG:分笔成交数据中的"内盘"和"外盘"标志搞反了,已更正(动态行情中的"内盘"/"外盘"字段没有问题);2)增加了一个方法GetData2(x,x,x),VB/VBA中可以读取历史分笔数据了(原来的GETDATA也可以读,不过VBA不支持重载所以出错).例子代码如下:
Sub ReaddzhData()'先点击VBA"工具"中的"引用",选上"大智慧数据工具"
On Error GoTo EH
'定义变量
Dim sht1 As Worksheet, sht2 As Worksheet
Dim x As Variant
Dim dzh As New FinData.DzhData
Set sht1 = ThisWorkbook.Worksheets("Sheet1")
Set sht2 = ThisWorkbook.Worksheets("Sheet2")
sht2.Cells.ClearContents '将“数据”工作表清空
x = dzh.GetFields("hqmb") '读取指定类型的字段列表:字段名、字段说明、字段类型
For i = 0 To UBound(x, 1)
sht2.Cells(1, i + 1) = x(i, 0) & "(" & x(i, 1) & ")" '将字段名字保存在第一行中
Next
Record = 2
x = dzh.GetData2("hqmb", "SZ000001", "20070406.PRP") '调用组件,读取数据保存在变量X中
If UBound(x, 1) > 0 And UBound(x, 2) > 0 Then
For i = 0 To UBound(x, 1)
For j = 0 To UBound(x, 2)
sht2.Cells(Record, j + 1) = x(i, j) 'X数组中的值均为字符串型
Next
Record = Record + 1
If Record >= 65535 Then
MsgBox "已到达工作表最后一行"
Exit Sub
End If
Next
End If
sht2.Activate
MsgBox "数据已读取!"
Exit Sub
EH:
MsgBox Err.Description
End Sub
=======================================
07.3.5 解决动态行情读取错误问题。
简介:
“大智慧数据工具”提供了“大智慧数据读取/转换器”及“大智慧数据读取及转换组件”。
“大智慧数据读取/转换器”是一个读取和转换大智慧新一代行情系统各类数据的小工具(很简单,略去使用说明)。
“大智慧数据读取及转换组件”是一个DLL,它可以通过方便地在各种语言中直接调用而读取大智慧数据,用户不需要了解大智慧数据存储结构,不需要自己编写数据读取程序,只需要少量编程知识就可以获得所需数据并进行加工处理;它还可以在各种语言中直接调用大智慧数据转换工具将各类数据转换为文本文件。大智慧数据读取组件采用C#开发,安装程序时会自动注册成为COM组件,可以在支持COM和.NET的语言中(如VB、Office VBA、VBS、Delphi、C#、VB.NET、C++.NET、J#、SAS、Matlab等)直接调用。该组件工具是免费的。
主要功能:
1、既可以读取大智慧一般数据,如证券代码表、日线数据、复权行情数据及收益率、当日分笔数据、历史分笔数据、当前最新行情、5分钟线行情、除权数据、财务数据 、板块数据等;
2、可读取沪、深、港等各个市场的已安装数据;读取时无须关闭正在运行的大智慧软件;
3、可以从注册表中读取出市场代码及名称,也可以以表格形式列出数据表名及对应文件名、字段信息(如字段名和字段说明),以便于程序自动处理;可以生成创建SAS表的语句;
4、提供了大智慧数据读取器和数据转换器,可以直接在程序中调用读取器和转换器;
5、提供了一个用于演示和测试调用结果的工具;同时提供VBA、VBS、SAS等语言调用实例;
6、提供了命令行工具dzh2txt.exe,可以将大智慧数据转换为文本。
7、单独提供了一个读取大智慧分笔数据的SAS程序。
版本说明:
最新版本为2.06版,主要支持大智慧新一代V2.06.07.0515(不支持大智慧经典版!)。
下载安装方法:
(如果已安装了旧版本请先用提供的Uninstall工具删除!)
首先,访问http://www.sasfans.com等网站下载 ... lsV2.06.07.0515.rar(点击这里下载)。
解压后,双击安装文件开始安装,安装程序会自动检测系统是否已安装了.NET框架2.0中文版(.NET Framework 2.0),如果未安装则安装程序会提示安装(安装程序会.NET Framework 2.0下载页面;或者从这里直接下载:http://www.microsoft.com/Downloa ... p;displaylang=zh-cn);最后,根据提示完成安装(一直点击“下一步”即可)。安装成功后,将在指定目录(默认为D:\DzhTools)生成:FinData.dll(组件)、FinData.tlb(COM类型库)、DzhDataTools.exe(大智慧数据读取及转换工具) 、Dzh2Txt.exe(大智慧数据转换命令行工具)、DzhDataTools.xls(EXCEL调用例子)、DzhDataTools.vbs(VBScript调用例子)等,同时将在“程序”菜单中创建一个名为“DzhTools”的菜单,包括“大智慧数据工具”、“卸载”等快捷方式。
使用方法:
调用方法与其它COM/.NET组件一样。
例如,安装后要测试一下是否注册成功为COM组件,可以创建一个VBS文件(扩展名为.VBS),键入以下两行:
set dzh = createobject("findata.dzhdata")
dzh.ShowDzhReader()
执行时如果正确显示大智慧数据读取器窗口,说明注册成功。把上面第二行换为dzh.ShowDzhConverter()则可以打开大智慧数据转换器,等等。
再举一个在EXCEL VBA中的调用例子:打开EXCEL Visual Basic编辑器,双击打开“工程”中的“ThisWorkBook”,点击“工具”、“引用”,在“可使用的引用”列表中找到并选择“FinData金融数据
工具”后确定。在ThisWorkBook代码区输入如下代码:
Sub ReadDzhData()
'调用组件,读取数据保存在变量X中
Dim x As Variant
Dim dzh As New FinData.DzhData
x = dzh.GetData("hq", "SZ000001") ‘读取数据保存在X中
'以下语句将数据保存在工作表中
For i = 0 To UBound(x, 1)
For j = 0 To UBound(x, 2)
ThisWorkbook.Worksheets(1).Cells(i + 1, j + 1) = x(i, j)
Next
Next
End Sub
按F5运行。其中关键语句是x = dzh.GetData("hq", "SZ000001"),只要改变方法GetData中的参数就可以读取到不同的数据,返回的X是一个二维
字符串数组。
在.NET语言中调用方法也很简单,主要语句如下:
FinData.DzhData dzh = new FinData.DzhData();
string[,] s = dzh. GetData("hq", "SZ000001");
上面只是一些例子,具体功能的使用见以下说明。
组件方法和属性说明:
(1)方法GetData
语法:public string[,] GetData(string dataType, string code) 或 public string[,] GetData(string dataType, string code, string newFileName)
功能:读取各类数据
参数说明:
•dataType为数据类型,目录允许的值如下:(专业数据不可用)
“dm”——代码表,对应大智慧文件stkinfo51.dat
“hq”——日行情,对应大智慧文件day.dat
“hqmb”——每笔成交,对应大智慧文件report.dat或*.prp
“hq的分笔成交数据。
返回值:返回一个二维字符串数组,每一列为一字段,每一行为一数据记录。注意,这里返回的是一个字符串数组,一般需要根据需要类型转换。
(2)方法GetFields
语法:public string[,] GetFields(string dataType)
功
能:读取各种数据类型的字段名、字段含义、类型。
参数说明:dataType为指定数据类型同GetData。
返回值:一个二维数组
(3)方法GetTables
调用格式:public string[,] GetTables()
功
能:读取各表的表名、中文说明、
对应文件。
返回值:一个二维数组
(4)方法GetMarkets
语法:public string[,] GetMarkets()
功
能:从注册表中读取市场列表:代码、简称、名称,如:SH、沪、上海证券交易所;SZ、深、深圳证券交易所。
返回值:一个二维数组
(5)方法GetTableDef
语法:public string GetTableDef(string dataType, string descDataType, bool delOldTable)
功
能:生成创建SAS表的PROC SQL语句。
参数:dataType为“dm”等数据表名,descDataType目前只能为“SAS”,delOldTable是否同时生成删除同名数据表的语句。
返回值:一个字符串
(6)方法GetCodeType
语法:public string GetCodeType(string code)
功
能:根据证券代码获取证券品种,如:GetCodeType("SZ000001")将返回"gp"表示这是股票代码;GetCodeType("SH000001")将返回"zs”(指数);GetCodeType("SZ184688")将返回"jj"(基金),等。
参数:code为证券代码。
返回值:一个字符串:gp(股票)、zq(债券)、jj(基金)、qz(权证)、zs(指数)。
(7)方法ShowAboutBox
语法:public void ShowAboutBox()
功
能:显示组件的“关于”窗口。
(8)方法ShowDzhConverter
语法:public void ShowDzhConverter()
功
能:
显示“大智慧数据转换器”窗口。可以读取各类数据,不过一般每次只能读取一只证券的数据;可以读取各字段信息;可以将读取出来的数据保存为文本文件。
(9)方法ShowDzhReader
语法:public void ShowDzhReader()
功
能:显示“大智慧数据读取器”窗口。可以将各类数据转换为文本文件,字段间的分隔符可以自定义;
(10)属性DzhDataPath
功能:字符串型,可读写,返回大智慧数据目录(一般为c:\dzh2\data\),如果组件无法自动获取正确的大智慧数据目录,可以设置该属性指定大智慧数据目录。
(11)属性DzhPath
功能:字符串型,返回大智慧安装目录(一般为c:\dzh2\)。
(12)属性Error
功能:整型,只读,返回上一步操作是否出现错误。若该属性为0,表示没有错误发生,若为1则表示发生了错误,具体错误信息可以通过MSG属性获得。
(13)属性Msg
功能:字符串型,只读,返回上一步操作的错误信息。
(14)属性Version
功能:实型,返回组件当前版本号。
Dzh2Txt.exe使用说明:
功能:生成以逗号为分隔符的文本。
调用格式:
dzh2txt.exe methodname args ... methodname可以是getdata、getfields、gettabledef、gettables、getmarkets、getcodetype,args为相应参数。如在DOS窗口下健入dzh2txt.exe getdata hq sz000001 将生成SZ000001(深发展)的行情数据等。可以用重定向符将生成的数据保存在一文本文件中,
[此贴子已经被作者于200 |
|
|