|
公告
-
欢迎来到寒室,这是郭胜群的博客,与
其留下您的足迹,不如留下您的笔迹
我的导师:陈尹力教授..................
工作单位:广东金融学院...............
联系电话:
QQ:31632627
msn:007same@163.com..
日历
| | 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|
| 25 | 26 | 27 | 28 | 29 | 30 | 31 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | | 8 | 9 | 10 | 11 | 12 | 13 | 14 | | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | 22 | 23 | 24 | 25 | 26 | 27 | 28 | | 29 | 30 | 1 | 2 | 3 | 4 | 5 |
|
统计
- 随笔 - 100
- 文章 - 48
- 评论 - 609
- 引用 - 2
导航
常用链接
留言簿
我参与的团队
我的标签
随笔分类
随笔档案
文章分类
收藏夹
我其它博客
资源与合作
最新评论

阅读排行榜
评论排行榜
|
本月将发布有关通达信日线和分时图数据格式的文章将放在个人的金融学文章板块,请有关关注这方面的朋友届时注意 目前进度:已分布分时图数据格式在 http://www.cnblogs.com/same/articles/722400.html,这里公布两种代码VB6 和VB2005 作用一样 ①VB6
Public tempdata() As Long
Public NumBase(5) As Long '基数
Public NumUnit(4) As Long '每单位对应的16进制数
Public NumUnitPrice(4) As Long '每单位对于的10进制数,已被从元为单位扩大1000倍
Public Type tempFSTrecord '每一条记录的长度为26字节:
FSTtime As Integer
price As Long
avgPrice As Long
changor As Integer
unUse0 As Integer
unUse1 As Long
unUse2 As Long
unUse3 As Long
End Type
Function LoadFSTdata(ByVal filename As String, fst() As FSTrecord) '240个分记录,26个字节一个记录,6508字节一天
Dim ifile As Integer, i As Integer, j As Integer
Dim TFR As tempFSTrecord
Dim fileP As Long
Dim lenDayFST As Long: longDayFST = 6508
Dim lenminuteFST As Long: lenminuteFST = 26
ifile = FreeFile
Open filename For Binary As ifile
'LoadFSTdata = (LOF(ifile) - 8) / 26 - 10
LoadFSTdata = LOF(ifile) / 6508

ReDim fst(1 To LoadFSTdata, 239)
ReDim tempdata(1 To LoadFSTdata)
ReDim tempMidprice(1 To LoadFSTdata)
ReDim fstMaxPrice(1 To LoadFSTdata)
For j = 1 To LoadFSTdata
Get ifile, 1 + (j - 1) * longDayFST, tempdata(j)
Get ifile, 5 + (j - 1) * longDayFST, tempMidprice(j)
fstMaxPrice(j) = 0
For i = 0 To 239
fileP = (j - 1) * longDayFST + i * lenminuteFST + 8 + 1
Get ifile, fileP, TFR
fst(j, i).FSTtime = TFR.FSTtime + 1 'fst(i).FSTtime = TimeSerial(0, TFR.FSTtime + 1, 0)
fst(j, i).price = TFR.price
fst(j, i).avgPrice = TFR.avgPrice
fst(j, i).changor = TFR.changor
If Abs(TFR.price - tempMidprice(j)) > fstMaxPrice(j) Then
fstMaxPrice(j) = Abs(TFR.price - tempMidprice(j))
End If
Next i
Next j
Close ifile
End Function
Function getRealPrice(formerPrice As Long) As Long '注意移植此函数是要把公共变量NumBase预NumUnit移动移植
Dim i As Integer
For i = 1 To 4 '该函数可返回32元人民币以下对于的准确价格
If formerPrice < NumBase(i) Then
getRealPrice = (Val((formerPrice - NumBase(i - 1)) & "000") / NumUnit(i - 1)) + NumUnitPrice(i - 1)
Exit For ' & 000 相当于 * 1000,以‰为单位
End If
Next i
End Function
Public Sub main()
NumBase(0) = 1065353216: NumBase(1) = 1082130432: NumBase(2) = 1090519040: NumBase(3) = 1098907648: NumBase(4) = 1109655552 ': NumBase(5) = 1118830592
NumUnit(0) = 4194304: NumUnit(1) = 2097152: NumUnit(2) = 1048576: NumUnit(3) = 524288 ': NumUnit(4) = 262144
NumUnitPrice(0) = 0: NumUnitPrice(1) = 4000: NumUnitPrice(2) = 8000: NumUnitPrice(3) = 16000 ': NumUnitPrice(4) = 32000
readZST.Show'由这个窗体去调用以上的函数,自己写
End Sub
② VB2005代码
评论:
-
#1楼
Posted @ 2007-04-16 17:26
期盼中..........
回复 引用
-
#2楼
Posted @ 2007-04-16 17:30
郭兄,能不能把分析方法介绍一下。授人以鱼不如授人以渔。
回复 引用
-
#3楼
Posted @ 2007-04-19 13:38
参照郭兄的前几篇文章,tdx的个股历史行情数据似乎自己已经研究出来了,期待分时图的讲解 ^_^
回复 引用
-
#4楼[ 楼主]
Posted @ 2007-04-21 20:53
已经公布,大家请参考
http://www.cnblogs.com/same/articles/722400.html">http://www.cnblogs.com/same/articles/722400.html
回复 引用 查看
-
#5楼
Posted @ 2007-04-25 11:09
能不能生成一个可运行程序,因为大部份人对开发并不是很熟悉!
回复 引用
-
#6楼[ 楼主]
Posted @ 2007-04-26 02:05
对开发不熟悉的人对我写的内容也没感兴趣,他拿到数据就去手工处理干脆,何必用计算机,我贴这么多代码都觉得啰唆了
回复 引用 查看
-
#7楼
Posted @ 2007-05-02 10:47
读了你的文章,受益匪浅,试验了一下,先想读一下前面两个字节,看读出的日期对不对,用delphi,代码如下:
var
iFileHandle: Integer;
idays:word;
begin
iFileHandle := FileOpen('C:\jcb_gx\vipdoc\sz\lday\SZ000002.day', fmOpenRead);
if iFileHandle <= 0 then exit;
FileSeek(iFileHandle,0,0);
FileRead(iFileHandle,idays,2);
结果调试得到days为32329,这是16进制的吗?但不管怎样,我都不知道这个数字表示个什么时间。
回复 引用
-
#8楼[ 楼主]
Posted @ 2007-05-07 08:51
@刘力文
FileRead(iFileHandle,idays,4);
是16进制
回复 引用 查看
-
#9楼
Posted @ 2007-05-11 09:10
太好了。
希望你有时间的话研究下期货软件文华的数据格式。
谢谢!
回复 引用
-
#10楼[ 楼主]
Posted @ 2007-06-05 17:26
wDong网友的补充,2007年有很多股票都超过64元,有网友在Q上向我补充,现在贴上来,感谢他们的支持
NumUnit[6] = 121072
NumUnit[7] = 060536
NumBase[5] = 1107296256
NumBase[6] = 1115684864
NumUnitPrice[6] = 64000
NumUnitPrice[7] = 128000
回复 引用 查看
-
#11楼
Posted @ 2007-06-08 14:52
郭老师,您好:
读了你的数据格式,学到很多东西。
我想另外请教一下通达信软件中股本变迁的文件格式。不知你可否把资料发到sillyear@gmail.com,谢谢你了。
回复 引用
-
#12楼
Posted @ 2007-06-11 09:33
改进上面回复的错误 由wDong网友提供
NumUnit[7] = 065536
昨日给的NumUnit[6] 写成 121072了
NumUnit应该是前面的一半
NumUnit[5] = 262144
NumUnit[6] = 131072
NumUnit[7] = 075536
回复 引用
-
#13楼
Posted @ 2007-06-30 14:20
有谁知道通达信的除权信息存在什么地方???
回复 引用
-
#14楼
Posted @ 2007-08-05 22:42
价格其实是浮点数,根本不需要转换,直接读取到浮点数的变量里就可以了
回复 引用
-
#15楼
Posted @ 2007-10-27 13:13
有谁知道通达信的除权信息存在什么地方???
回复 引用
-
#16楼
Posted @ 2007-12-29 22:57
static void LoadData( string sFile ) {
FileStream fs = File.OpenRead( sFile );
BinaryReader br = new BinaryReader( fs );
// for ....
// 取出一条记录
// 32 个字节为一条记录,00H-01H 日期,02H-03H 时间
short iDay = br.ReadInt16();
short iTime = br.ReadInt16();
decimal dPriceBegin = Convert.ToDecimal( br.ReadSingle() ); // 开
decimal dPriceTop = Convert.ToDecimal( br.ReadSingle() ); // 高
decimal dPriceBottom = Convert.ToDecimal( br.ReadSingle() ); // 低
decimal dPriceEnd = Convert.ToDecimal( br.ReadSingle() ); // 收
decimal dMoney = Convert.ToDecimal( br.ReadSingle() );
// 18H-1BH 成交量
uint dMount = br.ReadUInt32();
// ...
br.Close();
fs.Close();
}
回复 引用
-
#17楼
Posted @ 2008-03-10 23:29
请问郭兄知道通达信分笔成交明细数据的存储格式吗?
回复 引用
-
#18楼
Posted @ 2008-03-20 16:34
@yhw1999
可以搞成txt 出来,但一般不保存在本机
回复 引用
-
#19楼
Posted @ 2008-03-27 22:11
我已经找到了通达信分时成交明细数据文件的格式,但问题是文件里面始终只保存一部分数据, 请问郭兄知道该如何解决吗?
回复 引用
-
#20楼
Posted @ 2008-03-31 10:35
本人急需接收通达信动静态数据的完整解决方案,如有,可付现金
回复 引用
-
#21楼
Posted @ 2008-05-05 10:50
@帮帮
GDAT 证券数据引擎
http://www.cnitblog.com/shgdat/archive/2008/04/09/42186.aspx
回复 引用
-
#22楼
Posted @ 2008-08-01 11:07
*.tfz,*.day中的价格就是float型数据,害我研究半天
回复 引用
-
#23楼
Posted @ 2009-05-07 16:13
怎么获得实时数据?? 谢谢 jakne@163.com
回复 引用
|