same  
Actually human is just a Instantiation object merely 实际上人也只不过是一个实例化的对象而已
公告
  • 欢迎来到寒室,这是郭胜群的博客,与 其留下您的足迹,不如留下您的笔迹 我的导师:陈尹力教授.................. 工作单位:广东金融学院............... 联系电话: QQ:31632627 msn:007same@163.com..
日历
<2007年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
统计
  • 随笔 - 100
  • 文章 - 48
  • 评论 - 609
  • 引用 - 2

导航

与我联系

搜索

 

常用链接

留言簿

我参与的团队

我的标签

随笔分类

随笔档案

文章分类

收藏夹

我其它博客

资源与合作

最新评论

阅读排行榜

评论排行榜

 
本月将发布有关通达信日线和分时图数据格式的文章将放在个人的金融学文章板块,请有关关注这方面的朋友届时注意
目前进度:已分布分时图数据格式在http://www.cnblogs.com/same/articles/722400.html,这里公布两种代码VB6 和VB2005 作用一样
①VB6  
Public tempdata() As Long
Public NumBase(5As Long '基数
Public NumUnit(4As Long '每单位对应的16进制数
Public NumUnitPrice(4As 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 LongAs 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代码

 

posted on 2007-04-13 01:34 郭胜群 阅读(7191) 评论(23)  编辑 收藏 网摘 所属分类: 思想
评论:
  • #1楼  wheat[未注册用户] Posted @ 2007-04-16 17:26
    期盼中..........   回复  引用    

  • #2楼  wheat[未注册用户] Posted @ 2007-04-16 17:30
    郭兄,能不能把分析方法介绍一下。授人以鱼不如授人以渔。   回复  引用    

  • #3楼  Brook[未注册用户] 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楼  guotie[未注册用户] 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楼  sillyear[未注册用户] Posted @ 2007-06-08 14:52
    郭老师,您好:

    读了你的数据格式,学到很多东西。
    我想另外请教一下通达信软件中股本变迁的文件格式。不知你可否把资料发到sillyear@gmail.com,谢谢你了。
      回复  引用    

  • #12楼  same[未注册用户] Posted @ 2007-06-11 09:33
    改进上面回复的错误 由wDong网友提供
    NumUnit[7] = 065536
    昨日给的NumUnit[6] 写成 121072了
    NumUnit应该是前面的一半
    NumUnit[5] = 262144
    NumUnit[6] = 131072
    NumUnit[7] = 075536
      回复  引用    

  • #13楼  set[未注册用户] Posted @ 2007-06-30 14:20
    有谁知道通达信的除权信息存在什么地方???   回复  引用    

  • #14楼  jyu1221[未注册用户] Posted @ 2007-08-05 22:42
    价格其实是浮点数,根本不需要转换,直接读取到浮点数的变量里就可以了   回复  引用    

  • #15楼  set[未注册用户] Posted @ 2007-10-27 13:13
    有谁知道通达信的除权信息存在什么地方???   回复  引用    

  • #16楼  zly[未注册用户] 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楼  yhw1999[未注册用户] Posted @ 2008-03-10 23:29
    请问郭兄知道通达信分笔成交明细数据的存储格式吗?   回复  引用    

  • #18楼  same[未注册用户] Posted @ 2008-03-20 16:34
    @yhw1999
    可以搞成txt 出来,但一般不保存在本机
      回复  引用    

  • #19楼  yhw1999[未注册用户] Posted @ 2008-03-27 22:11
    我已经找到了通达信分时成交明细数据文件的格式,但问题是文件里面始终只保存一部分数据, 请问郭兄知道该如何解决吗?
      回复  引用    

  • #20楼  帮帮[未注册用户] Posted @ 2008-03-31 10:35
    本人急需接收通达信动静态数据的完整解决方案,如有,可付现金   回复  引用    

  • #21楼  shhn[未注册用户] Posted @ 2008-05-05 10:50
    @帮帮

    GDAT 证券数据引擎
    http://www.cnitblog.com/shgdat/archive/2008/04/09/42186.aspx
      回复  引用    

  • #22楼  geyom[未注册用户] Posted @ 2008-08-01 11:07
    *.tfz,*.day中的价格就是float型数据,害我研究半天   回复  引用    

  • #23楼  jakne[未注册用户] Posted @ 2009-05-07 16:13
    怎么获得实时数据?? 谢谢 jakne@163.com   回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 711466




相关文章:

相关链接:
 
Copyright © 郭胜群 Powered by: 博客园 模板提供:沪江博客