same  
Actually human is just a Instantiation object merely 实际上人也只不过是一个实例化的对象而已
本月将发布有关通达信日线和分时图数据格式的文章将放在个人的金融学文章板块,请有关关注这方面的朋友届时注意
目前进度:已分布分时图数据格式在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  郭胜群  阅读(26491)  评论(29编辑  收藏  举报