zoukankan      html  css  js  c++  java
  • 关于通达信数据格式的发布

    本月将发布有关通达信日线和分时图数据格式的文章将放在个人的金融学文章板块,请有关关注这方面的朋友届时注意
    目前进度:已分布分时图数据格式在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代码

  • 相关阅读:
    ObjectiveC初步研究 实现文件(Implementation File)
    SQL技巧(二) CTE(公用表达式)初步接触
    ObjectiveC编程基础
    Linux编程 使用C在mysql中插入数据
    办理户口
    修改kernel内核HZ频率没有效果问题
    如何从湖北省人才市场将户口迁移出来?
    查看 各种寄存器值的 内核模块 C语言
    SDRAM AND SRAM
    linux2.6.26内核中ARM中断实现详解(转)
  • 原文地址:https://www.cnblogs.com/same/p/711466.html
Copyright © 2011-2022 走看看