搜索
查看: 65998|回复: 232

各类数据转换,提取,原码,接口编程交流专贴(暂名)

[复制链接]

签到天数: 2 天

发表于 2005-4-23 13:20 | 显示全部楼层

各类数据转换,提取,原码,接口编程交流专贴(暂名)

来自:MACD论坛(bbs.macd.cn) 作者:lylyl 浏览:65998 回复:232

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为了大家方便交流,特开此贴,如各类数据之间转换的程序,编程,格式,提取,接口编程(将大智慧的数据实时转传给分析家,大智慧财务数据转飞狐财务数据,通达信的数据转分析家)等等.

[ Last edited by lylyl on 2005-5-23 at 18:11 ]
参与人数 2 +7 时间 理由
高荣 + 5 2005-4-25 12:30
gbs588 + 2 2005-4-23 16:15

查看全部评分

金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:21 | 显示全部楼层
由 ak4701提供
数据索引表格式如下:
600000          381        42        34       856      1259      1749     65535     65535     65535
代码             总笔数                块1      块2        块3       块4

分笔数据总共为 381笔(42+113*3),   分四块存放,   块1有42笔, 其余每块为113条记录(113笔),
块1从 266240+34*113*36 字节开始,共42笔 ,每笔36字节.
块2从 266240+856*113*36 字节开始,共113笔 ,每笔36字节.
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:24 | 显示全部楼层
best_tea提供
分析家证券投资分析系统行情接口规范V2.1
*                                                        (适用于单向数据传输方式)
****************************************************************************************/


****************************************************************************************/
*        驱动程序安装后,应该在系统注册库中注册以下信息,分析软件通过该注册信息启动动态库                *
*        HKEY_LOCAL_MACHINE/SOFTWARE/StockDrv 下                                                                                                *
*        Driver  = "驱动DLL全路径"                                                                                                                        *
****************************************************************************************/



#ifndef __STOCKDRV_H__
#define __STOCKDRV_H__

/////////////////////////////////////////////////////////////////////////////////
//增补说明
//1。2001年9月1日,增补深圳行情库SJS库的更改
//        a.工作模式增加RCV_WORK_SENDMSG模式,建议驱动程序支持RCV_WORK_MEMSHARE和RCV_WORK_SENDMSG两种工作模式以支持各种版本的分析家
//        b.RCV_WORK_SENDMSG工作模式与RCV_WORK_MEMSHARE的唯一区别在于使用RCV_REPORT_STRUCTExV2数据结构替代RCV_REPORT_STRUCTEx数据结构传输动态行情
//        c.若GetStockDrvInfo(RI_V2SUPPORT)返回1,则分析家启用RCV_WORK_SENDMSG工作模式,否则启用RCV_WORK_MEMSHARE工作模式,分析家采用这种方式来兼容前后版本
//        d.采用RCV_WORK_SENDMSG工作模式,分析家系统能够支持4位和6位深圳股票代码
//        e.RCV_WORK_SENDMSG工作模式只在分析家V4.01.00后的版本才支持。
/////////////////////////////////////////////////////////////////////////////////

// 工作方式类型定义
#define RCV_WORK_DEMAND                                0                                        // 查询接口,方式一
#define RCV_WORK_MEMSHARE                        2                                        // 内存共享直接引用,方式二
#define RCV_WORK_SENDMSG                        4                                        // 版本 2 建议使用的方式,对于六位代码的深圳市场必须使用这种模式        
// 其他工作方式保留


/*
指数代号-名称
1A0001  上证[url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=综合指数]综合指数[/url]][url=www.macd.cn/result.php?sn=综合指数]综合指数[/url][/url]                1A0002  上证A股指数                1A0003  上证B股指数
1B0001  上证工业指数                1B0002  上证[url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=商业指数]商业指数[/url]][url=www.macd.cn/result.php?sn=商业指数]商业指数[/url][/url]                1B0004  上证[url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=地产指数]地产指数[/url]][url=www.macd.cn/result.php?sn=地产指数]地产指数[/url][/url]][url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=地产指数]地产指数[/url]][url=www.macd.cn/result.php?sn=地产指数]地产指数[/url][/url][/url]][url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=地产指数]地产指数[/url]][url=www.macd.cn/result.php?sn=地产指数]地产指数[/url][/url]][url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=地产指数]地产指数[/url]][url=www.macd.cn/result.php?sn=地产指数]地产指数[/url][/url][/url][/url]
1B0005  上证公用事业                1B0006  上证综合                        1B0007  上证30指数

2A01        深证成分指数                2A02        深证成分A                        2A03        深证成分B
2B01        深证工业                    2B02        深证商业                        2B03        深证金融
2B04        深证地产                        2B05        深证公共事业                2B06        深证综合
2B07        深证基金                        2C01        深证指数                        2C02        深证A股
2C03        深证B股
*/

/////////////////////////////////////////////////////////////////////////////////////////
// 以下是接口方式二

// 证券市场
#define                SH_MARKET_EX                        'HS'                // 上海
#define                SZ_MARKET_EX                        'ZS'                // 深圳
#define                HK_MARKET_EX                        'KH'                // 香港

// 文件数据类型
// 结构数组形式的文件数据
#define                FILE_HISTORY_EX                        2                        // 补日线数据
#define                FILE_MINUTE_EX                        4                        // 补分钟线数据
#define                FILE_POWER_EX                        6                        // 补充除权数据

#define                FILE_BASE_EX                        0x1000                // 钱龙兼容基本资料文件,m_szFileName仅包含文件名
#define                FILE_NEWS_EX                        0x1002                // 新闻类,其类型由m_szFileName中子目录名来定
#define                FILE_HTML_EX                        0x1004                // HTML文件,m_szFileName为URL

#define                FILE_SOFTWARE_EX                0x2000                // 升级软件

// 消息子类型
#define                News_Sha_Ex                                 2                        // 上证消息
#define                News_Szn_Ex                                 4                        // 深证消息
#define                News_Fin_Ex                                 6                        // 财经报道
#define                News_TVSta_Ex                         8                        // 电视台通知
#define                News_Unknown_Ex                         -1                        // 未知提供者

//Definition For nInfo of Function GetStockDrvInfo(int nInfo,void * pBuf);
#define                RI_IDSTRING                                1                        // 厂商名称,返回(LPCSTR)厂商名
#define                RI_IDCODE                                2                        // 卡号
#define                RI_VERSION                                3                        // 驱动程序版本
#define                RI_V2SUPPORT                        6                        // 支持深圳SJS库结构

#define                STKLABEL_LEN                        10                        // 股号数据长度,国内市场股号编码兼容钱龙
#define                STKNAME_LEN                                32                        // 股名长度


//////////////////////////////////////////////////////////////////////////////////
//行情数据(版本1数据结构RCV_WORK_MEMSHARE)
typedef struct tagRCV_REPORT_STRUCTEx
{
        WORD        m_wMarket;                                                                        // 股票市场类型
        char        m_szLabel[STKLABEL_LEN];                                        // 股票代码,以'\0'结尾
        char        m_szName[STKNAME_LEN];                                                // 股票名称,以'\0'结尾
        
        float        m_fLastClose;                                                                // 昨收
        float        m_fOpen;                                                                        // 今开
        float        m_fHigh;                                                                        // 最高
        float        m_fLow;                                                                                // 最低
        float        m_fNewPrice;                                                                // 最新
        float        m_fVolume;                                                                        // 成交量
        float        m_fAmount;                                                                        // 成交额

        float        m_fBuyPrice[3];                                                                // 申买价1,2,3
        float        m_fBuyVolume[3];                                                        // 申买量1,2,3
        float        m_fSellPrice[3];                                                        // 申卖价1,2,3
        float        m_fSellVolume[3];                                                        // 申卖量1,2,3
} RCV_REPORT_STRUCTEx;

//////////////////////////////////////////////////////////////////////////////////
//行情数据(版本2数据结构RCV_WORK_SENDMSG)
typedef struct tagRCV_REPORT_STRUCTExV2        
{
        WORD        m_cbSize;                                                                        // 结构大小
        time_t        m_time;                                                                                // 成交时间
        WORD        m_wMarket;                                                                        // 股票市场类型
        char        m_szLabel[STKLABEL_LEN];                                        // 股票代码,以'\0'结尾
        char        m_szName[STKNAME_LEN];                                                // 股票名称,以'\0'结尾
        
        float        m_fLastClose;                                                                // 昨收
        float        m_fOpen;                                                                        // 今开
        float        m_fHigh;                                                                        // 最高
        float        m_fLow;                                                                                // 最低
        float        m_fNewPrice;                                                                // 最新
        float        m_fVolume;                                                                        // 成交量
        float        m_fAmount;                                                                        // 成交额

        float        m_fBuyPrice[3];                                                                // 申买价1,2,3
        float        m_fBuyVolume[3];                                                        // 申买量1,2,3
        float        m_fSellPrice[3];                                                        // 申卖价1,2,3
        float        m_fSellVolume[3];                                                        // 申卖量1,2,3

        float        m_fBuyPrice4;                                                                // 申买价4
        float        m_fBuyVolume4;                                                                // 申买量4
        float        m_fSellPrice4;                                                                // 申卖价4
        float        m_fSellVolume4;                                                                // 申卖量4
} RCV_REPORT_STRUCTExV2;

//////////////////////////////////////////////////////////////////////////////////
//补充数据头
//数据头 m_dwHeadTag == EKE_HEAD_TAG
#define EKE_HEAD_TAG        0xffffffff

typedef struct        tagRCV_EKE_HEADEx
{
        DWORD        m_dwHeadTag;                                                                // = EKE_HEAD_TAG
        WORD        m_wMarket;                                                                        // 市场类型
        char        m_szLabel[STKLABEL_LEN];                                        // 股票代码
}RCV_EKE_HEADEx;

//补充日线数据
typedef union tagRCV_HISTORY_STRUCTEx
{
        struct
        {
                time_t        m_time;                                //UCT
                float        m_fOpen;                        //开盘
                float        m_fHigh;                        //最高
                float        m_fLow;                                //最低
                float        m_fClose;                        //收盘
                float        m_fVolume;                        //量
                float        m_fAmount;                        //额
                WORD        m_wAdvance;                        //涨数,仅大盘有效
                WORD        m_wDecline;                        //跌数,仅大盘有效
        };
        RCV_EKE_HEADEx        m_head;
}RCV_HISTORY_STRUCTEx;

//补充分时线数据
typedef union tagRCV_MINUTE_STRUCTEx
{
        struct{
                time_t        m_time;                                // UCT
                float        m_fPrice;
                float        m_fVolume;
                float        m_fAmount;
        };
        RCV_EKE_HEADEx        m_head;
}RCV_MINUTE_STRUCTEx;

//补充除权数据
typedef union tagRCV_POWER_STRUCTEx
{
        struct
        {
                time_t        m_time;                                // UCT
                float        m_fGive;                        // 每股送
                float        m_fPei;                                // 每股配
                float        m_fPeiPrice;                // 配股价,仅当 m_fPei!=0.0f 时有效
                float        m_fProfit;                        // 每股红利
        };
        RCV_EKE_HEADEx        m_head;
}RCV_POWER_STRUCTEx;

//////////////////////////////////////////////////////////////////////////////////
// 文件类型数据包头
//  注一:
//        m_wDataType == FILE_BASE_EX
//                                m_dwAttrib = 股票证券市场,m_szFileName仅包含文件名
//  m_wDataType == FILE_NEWS_EX
//                                m_dwAttrib = 消息来源,m_szFileName 包含目录的文件名,目录名为消息来源
//                                如:  "上交所消息\\0501Z012.TXT","新兰德\\XLD0001.TXT"
//  m_wDataType == FILE_HTML_EX
//                                m_dwAttrib 保留, m_szFileName为URL
//        m_wDataType        == FILE_SOFTWARE_EX
//                                m_dwAttrib 分析软件类型, 用于初步判断
//                                m_szFileName 分析软件 ID 特征字符串 + '\\' + 文件名
//                                如 "SuperStk\\SuperStk.EXE",
//                                ID 特征字符串为 "SuperStk", "SuperStk.EXE" 为文件名
//                                特征字符串 和 文件名及其含义由分析软件商定义
//  注二:
//                数据文件循环播出,每个文件有唯一的序列号,以避免重复接收
typedef struct tagRCV_FILE_HEADEx
{
        DWORD        m_dwAttrib;                                                        // 文件子类型
        DWORD        m_dwLen;                                                        // 文件长度
        DWORD        m_dwSerialNo;                                                // 序列号
        char        m_szFileName[MAX_PATH];                                // 文件名 or URL
} RCV_FILE_HEADEx;

//////////////////////////////////////////////////////////////////////////////////
//  数据通知消息
//直接数据引用通知消息
//        wParam = RCV_WPARAM;
//  lParam 指向 RCV_DATA结构;
//        返回 1 已经处理, 0 未处理或不能处理

#define RCV_REPORT                        0x3f001234
#define RCV_FILEDATA                0x3f001235

// 注一:
//          记录数表示行情数据和补充数据(包括 Header)的数据包数,对文件类型数据, = 1
// 注二:
//          若 m_bDISK = FALSE, m_pData 为数据缓冲区指针
//                 ******** 数据共享,不能修改数据 **********
//                 m_bDISK = TRUE,  m_pData 为该文件的存盘文件名,一般情况只有
//                 升级软件等大文件用存盘方式
typedef struct tagRCV_DATA
{
        int                                        m_wDataType;                        // 文件类型
        int                                        m_nPacketNum;                        // 记录数,参见注一
        RCV_FILE_HEADEx                m_File;                                        // 文件接口
        BOOL                                m_bDISK;                                // 文件是否已存盘的文件
        union
        {
                RCV_REPORT_STRUCTEx  *        m_pReport;
                RCV_REPORT_STRUCTExV2 *        m_pReportV2;
                RCV_HISTORY_STRUCTEx *        m_pDay;
                RCV_MINUTE_STRUCTEx  *        m_pMinute;
                RCV_POWER_STRUCTEx         *        m_pPower;
                void                                 *        m_pData;                // 参见注二
        };
} RCV_DATA;

/* 消息处理程序 DEMO
LONG OnStkDataOK(UINT wParam,LONG lParam)
{
        RCV_DATA*                pHeader;
        pHeader = (RCV_DATA *)lParam;
        switch( wParam )
        {
        case RCV_REPORT:                                                // 共享数据引用方式,股票行情
                for(i=0; i<pHeader->m_nPacketNum; i++)
                {
                        pHeader->m_pReport ...
                        // 数据处理
                }
                break;

        case RCV_FILEDATA:                                                // 共享数据引用方式,文件
                switch(pHeader->m_wDataType)
                {
                case FILE_HISTORY_EX:                                // 补日线数据
                        break;
                case FILE_MINUTE_EX:                                // 补分钟线数据
                        break;
                case FILE_POWER_EX:                                        // 补充除权数据
                        break;
                case FILE_BASE_EX:                                        // 钱龙兼容基本资料文件,m_szFileName仅包含文件名
                        break;
                case FILE_NEWS_EX:                                        // 新闻类,其类型由m_szFileName中子目录名来定
                        break;
                case FILE_HTML_EX:                                        // HTML文件,m_szFileName为URL
                        break;
                case FILE_SOFTWARE_EX:                                // 升级软件
                        break;
                }
                break;
        default:
                return 0;                                                        // unknown data
        }
        return 1;
}
*/


//////////////////////////////////////////////////////////////////////////////////
//APIs
#ifdef __cplusplus
extern "C"{
#endif

//////////////////////////////////////////////////////////////////////////////////
// 注册函数

// 股票初始化
// 入口参数:
//                hWnd                        处理消息的窗口句柄
//                Msg                                用户自定义消息
//                nWorkMode                接口工作方式,参见工作方式类型定义
// 返回参数:
//                 1                                成功        
//                -1                                失败
// 注:
//                注册后,驱动程序会向处理窗口发送消息; 若不注册,通过查询方式亦可取得数据
//                若股票接收没启动,则启动股票接收程序
int WINAPI        Stock_Init(HWND hWnd,UINT Msg,int nWorkMode);

// 退出,停止发送消息
// 入口参数:
//                hWnd                        处理消息的窗口句柄,同 Stock_Init 的调用入口参数
//        返回参数:
//                 1                                成功        
//                -1                                失败
int WINAPI         Stock_Quit(HWND hWnd);

// 激活接收程序,进行设置
// 入口参数:
//                        bSetup                TRUE                显示窗口,进行设置
//                                                FALSE                隐含窗口
// 返回参数:
//                         1                        成功
//                        -1                        失败
int        WINAPI  SetupReceiver(BOOL bSetup);

//        取得股票驱动信息
//        入口参数:
//                        nInfo                索引
//                        pBuf                缓冲区
//        出口参数:
//                        nInfo == RI_IDSTRING,        返回特征字符串长度, pBuf 为特征字符串
//                                                                        如:        "TongShi_StockDrv_1.00"
//                        nInfo == RI_IDCODE,                返回信息卡 ID 号, pBuf 为字符串形式的 ID 号
//                                                                        如:        0x78001234          "78001234"
//                        nInfo == RI_VERSION,        返回信息卡版本号, pBuf 为字符串版本
//                                                                        如:  1.00                  "1.00"               
//                        nInfo == RI_V2SUPPORT,        返回是否支持深圳SJS库结构, pBuf无效
DWORD WINAPI  GetStockDrvInfo(int nInfo,void * pBuf);


void WINAPI  ReInitStockInfo();

//重新取得股票数据

#ifdef __cplusplus
}
#endif
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:25 | 显示全部楼层
zzhkk1提供
看宏汇NSD中的数据输出:
程序如下,当然这个程序只能够在宏汇NSD中使用,您可以在www.hh.com.cn/nsd下载宏汇NSD,然后在菜单上选择“工具->数据输出”,再在数据输出窗口左上角选择“新建数据输出”,在选择数据输项目里选择“分笔数据输出2”,以后的操作都是向导,直至完成。
////////////////////////////////////////////////////////////////////////
//  输出指定品种和指定日期的分笔数据(Tick)
////////////////////////////////////////////////////////////////////////

//定义dbf类
DBF类 dbf;

//定义输出文件的路径和名称
char dbfname[128];
//sprintf(dbfname, "%s\\0001.dbf", 输出路径);
sprintf(dbfname, "%s\\%s%s%d至%d的分笔数据.dbf", 输出路径,当前品种代码,当前品种名称,开始日期,截止日期);
输出("文件保存路径为%s", dbfname);
//输出("%s", dbfname);

//判断创建数据库是否成功
if (!dbf.创建数据库(dbfname))
{
        显示调试信息(错误, "创建“%s”失败", dbfname);
        return;
}

//判断用户选择字段信息
if (是否含有字段("时间"))      dbf.添加字段("Time",  'C', 20, 0, "时间");
if (是否含有字段("价格"))      dbf.添加字段("Price", 'N', 6, 2, "价格");
if (是否含有字段("买/卖"))     dbf.添加字段("BS",    'C', 2, 0, "买/卖");
if (是否含有字段("成交量"))    dbf.添加字段("Volume",'N', 6, 0, "成交量");
if (是否含有字段("成交金额"))  dbf.添加字段("Money", 'N', 6, 2, "成交金额");
if (是否含有字段("成交笔数"))  dbf.添加字段("bishu", 'N', 6, 0, "成交笔数");

if (是否含有字段("卖量5"))  dbf.添加字段("SV5", 'N', 6, 0, "卖量5");
if (是否含有字段("卖量4"))  dbf.添加字段("SV4", 'N', 6, 0, "卖量4");
if (是否含有字段("卖量3"))  dbf.添加字段("SV3", 'N', 6, 0, "卖量3");
if (是否含有字段("卖量2"))  dbf.添加字段("SV2", 'N', 6, 0, "卖量2");
if (是否含有字段("卖量1"))  dbf.添加字段("SV1", 'N', 6, 0, "卖量1");
if (是否含有字段("卖价5"))  dbf.添加字段("SP5", 'N', 6, 2, "卖价5");
if (是否含有字段("卖价4"))  dbf.添加字段("SP4", 'N', 6, 2, "卖价4");
if (是否含有字段("卖价3"))  dbf.添加字段("SP3", 'N', 6, 2, "卖价3");
if (是否含有字段("卖价2"))  dbf.添加字段("SP2", 'N', 6, 2, "卖价2");
if (是否含有字段("卖价1"))  dbf.添加字段("SP1", 'N', 6, 2, "卖价1");
if (是否含有字段("买量1"))  dbf.添加字段("BV1", 'N', 6, 0, "买量1");
if (是否含有字段("买量2"))  dbf.添加字段("BV2", 'N', 6, 0, "买量2");
if (是否含有字段("买量3"))  dbf.添加字段("BV3", 'N', 6, 0, "买量3");
if (是否含有字段("买量4"))  dbf.添加字段("BV4", 'N', 6, 0, "买量4");
if (是否含有字段("买量5"))  dbf.添加字段("BV5", 'N', 6, 0, "买量5");
if (是否含有字段("买价1"))  dbf.添加字段("BP1", 'N', 6, 2, "买价1");
if (是否含有字段("买价2"))  dbf.添加字段("BP2", 'N', 6, 2, "买价2");
if (是否含有字段("买价3"))  dbf.添加字段("BP3", 'N', 6, 2, "买价3");
if (是否含有字段("买价4"))  dbf.添加字段("BP4", 'N', 6, 2, "买价4");
if (是否含有字段("买价5"))  dbf.添加字段("BP5", 'N', 6, 2, "买价5");
if (是否含有字段("买比"))   dbf.添加字段("bsRatio", 'N', 6, 2, "买比");

//定义分笔成交类
分笔成交类 clsTick;

//输出("%d - %d", 开始索引, 截止索引);


//取数据日期(周期),并输出成交价格、成交量和成交金额
long lDate, lTime;
char szMark[4];
char szTime[32];
for (int j=开始索引; j<=截止索引; j++)
{
        
        lDate = K线数据[j].取日期();
        输出("输出%s股票 %d的分笔数据",当前品种代码,lDate);
        if (!clsTick.读取分笔成交(lDate))
        {
                输出("输出日期为%d 的数据失败! 请先下载该代码的Tick数据", lDate);
                continue;        
        }
        
        int total = clsTick.总笔数();
        int intVolume=0;
        输出("成交总笔数%d", total);
        for (int i=0; i<total; i++)
        {
                sprintf(szMark, "%c", clsTick[买卖标志]);
                lTime = clsTick.取时间();
                sprintf(szTime, "%2d-%2d-%2d %2d:%2d:%2d", lDate / 10000, lDate / 100 % 100, lDate % 100, lTime / 10000, lTime / 100 % 100, lTime % 100);
                dbf.设置字符串("Time", szTime);
                dbf.设置数据("Price",clsTick[成交价]);
                dbf.设置字符串("BS",szMark);
                intVolume=(i>0)?clsTick[成交量]-clsTick[i-1][成交量] : clsTick[成交量];
                dbf.设置数据("Volume",intVolume);
                dbf.设置数据("Money",intVolume*clsTick[成交价]);
                dbf.设置数据("bishu",(i>0) ? clsTick[成交笔数]-clsTick[i-1][成交笔数] : clsTick[成交笔数]);
               
               
                dbf.设置数据("SV5",clsTick[卖量5]);
                dbf.设置数据("SV4",clsTick[卖量4]);
                dbf.设置数据("SV3",clsTick[卖量3]);
                dbf.设置数据("SV2",clsTick[卖量2]);
                dbf.设置数据("SV1",clsTick[卖量1]);
                dbf.设置数据("SP5",clsTick[卖价5]);
                dbf.设置数据("SP4",clsTick[卖价4]);
                dbf.设置数据("SP3",clsTick[卖价3]);
                dbf.设置数据("SP2",clsTick[卖价2]);
                dbf.设置数据("SP1",clsTick[卖价1]);
                dbf.设置数据("BV1",clsTick[买量1]);
                dbf.设置数据("BV2",clsTick[买量2]);
                dbf.设置数据("BV3",clsTick[买量3]);
                dbf.设置数据("BV4",clsTick[买量4]);
                dbf.设置数据("BV5",clsTick[买量5]);
                dbf.设置数据("BP1",clsTick[买价1]);
                dbf.设置数据("BP2",clsTick[买价2]);
                dbf.设置数据("BP3",clsTick[买价3]);
                dbf.设置数据("BP4",clsTick[买价4]);
                dbf.设置数据("BP5",clsTick[买价5]);
               
                dbf.设置数据("bsRatio",clsTick[买卖比]);               
                dbf.追加记录();
        }
}

//关闭打开的数据
dbf.关闭();


结果就是一个DBF数据库
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:27 | 显示全部楼层
chen712提供
大家好,我会写一些VB的程序,只是功底不深。我能用读二制文件的方法读大智慧的日数据,但读5分钟数据时,日期格式是10位的,不是很明白,那位好心人能帮我解决一下???
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:28 | 显示全部楼层
ak4701提供
在PRP文件中,从第24字节开始到622268字节,每64字节为一条记录,每条记录中以4字节表示一个数值,这些数据记录了该文件个股分笔资料的位置(索引表),再从这个表中即可找出对应的分笔资料。
    其实你用16进制文件编辑器打开PRP文件,你就会发现一些规律,再进行下一步处理。
    用程序改写PRP文件相应部分,再由分析家读取,则更直接些。
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:30 | 显示全部楼层
ak4701提供
几年前我写过程序成功从分析家 *。PRP 文件中提分笔数据。找出来,试了一下,你自己分析一下,数据是否正确,如果有价值,我可将源代码给你。结果如下(600050)今天部分分笔数据:

记录号  DATE         TIME                NEW_P      NEW_V     BUY1_V     BUY2_V     BUY3_V     BUY4_V     BUY5_V    SELL1_V    SELL2_V    SELL3_V    SELL4_V    SELL5_V       BUY1_P       BUY2_P       BUY3_P       BUY4_P       BUY5_P      SELL1_P      SELL2_P      SELL3_P      SELL4_P      SELL5_P
        1  20050309     09:30:00             3.26       2228        299       2093       8622                            16900      24025      21179                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
        2  20050309     09:30:11             3.27       1167       2366       9732      22927                              136      27364      25519                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
        3  20050309     09:30:19             3.27       1961        538       2444      11377                            27231      26500      23308                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
        4  20050309     09:30:22             3.26        661        809       3213      11656                            29812      28478      24116                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
        5  20050309     09:30:27             3.26        127        722       3213      11675                            29795      28468      24205                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
        6  20050309     09:30:33             3.26        408        721       3516      11704                            30751      28488      25436                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
        7  20050309     09:30:36             3.26        365        323       3516      11704                            30695      28688      25446                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
        8  20050309     09:30:41             3.26        307         27       3516      11722                            30713      28688      24451                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
        9  20050309     09:30:48             3.27          3         27       3516      11722                            30713      28693      24581                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
       10  20050309     09:30:53             3.26        106         70       4516      11739                            30679      28863      24591                               3.26         3.25         3.24                                   3.27         3.28         3.29                          
       11  20050309     09:30:57             3.26        100       4646      11739      26480                              129      30679      28872                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       12  20050309     09:31:02             3.26         50       4779      11739      26480                             1099      30789      29032                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       13  20050309     09:31:07             3.26        303       5499      11739      26480                             1049      30889      29072                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       14  20050309     09:31:13             3.26        122       5583      11739      26480                             1519      31099      29086                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       15  20050309     09:31:18             3.26         50       7605      11739      26700                             1539      31629      29141                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       16  20050309     09:31:22             3.26        150       7630      11749      26700                             1601      31669      29151                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       17  20050309     09:31:27             3.25        556       7655      11749      26719                             2625      33888      29163                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       18  20050309     09:31:33             3.25        365       6860      11749      26742                             3025      33888      29163                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       19  20050309     09:31:38             3.26        888      10866      11799      26742                             2938      33888      29268                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       20  20050309     09:31:43             3.25       1801       8976      11799      26762                             2761      34138      29492                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       21  20050309     09:31:49             3.26        170       8416      11819      26762                             4310      34148      29497                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       22  20050309     09:31:56             3.26        423       8520      11729      26964                             6392      34609      29592                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       23  20050309     09:32:05             3.26         50       8321      11729      26964                             6317      34609      29626                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       24  20050309     09:32:07             3.26        140       8391      11592      26964                             7250      34649      32908                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       25  20050309     09:32:12             3.26         44       8570      11592      26964                             7297      34593      32968                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       26  20050309     09:32:18             3.25        322       8627      11592      26964                             7377      34593      32968                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       27  20050309     09:32:24             3.25        136       9560      11652      26959                             7445      34698      32978                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       28  20050309     09:32:29             3.26        215       9274      11752      26949                             7538      34718      33093                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       29  20050309     09:32:33             3.26        130       9313      11762      26949                             7394      34755      33113                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       30  20050309     09:32:37             3.25        271       9323      11762      26949                             9674      34765      33132                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       31  20050309     09:32:49             3.25         10       9151      11903      26949                            10202      35025      33082                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       32  20050309     09:32:54             3.26        152       9126      11933      26959                            10409      35025      33157                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       33  20050309     09:32:56             3.25        265       9246      11933      26979                            10409      35026      33157                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       34  20050309     09:33:05             3.25        229       8997      11933      27079                            10405      35036      33232                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       35  20050309     09:33:07             3.25         20       8984      11933      27079                            10627      35036      33265                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       36  20050309     09:33:12             3.26         43       8944      11929      27080                            10900      35131      33285                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       37  20050309     09:33:17             3.26        755       8465      11919      27100                            11185      35206      33295                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       38  20050309     09:33:27             3.25       1059       7417      11979      27100                            12076      35215      36295                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       39  20050309     09:33:33             3.25       4048       3479      11965      27100                            12141      35215      36312                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       40  20050309     09:33:38             3.26         37       3464      11975      27100                            12104      35222      36392                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       41  20050309     09:33:42             3.25        315       3189      11975      27100                            12193      35257      36508                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       42  20050309     09:33:48             3.25         10       3189      11991      27130                            12252      35313      36508                               3.25         3.24         3.23                                   3.26         3.27         3.28                          
       43  20050309     09:33:56
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:32 | 显示全部楼层
飞狐交易师行情接口规范V3.0
*                                                        (适用于单向数据传输方式)
****************************************************************************************/


****************************************************************************************/
*        驱动程序安装后,应该在系统注册库中注册以下信息,分析软件通过该注册信息启动动态库                *
*        HKEY_LOCAL_MACHINE/SOFTWARE/StockDrv 下                                                                                                *
*        Driver  = "驱动DLL全路径"                                                                                                                        *
****************************************************************************************/



#ifndef __STOCKDRV_H__
#define __STOCKDRV_H__

/////////////////////////////////////////////////////////////////////////////////
//增补说明
//2003年9月1日,增补上海、深圳市场5档买卖盘支持
//        a.当用RCV_WORK_SENDMSG工作模式时,分析家V5.0.1后的版本才支持支持上海、深圳市场5档买卖盘
//        b.与之前版本相比,新增了RCV_REPORT_STRUCTExV3结构用以代替RCV_REPORT_STRUCTExV2结构,驱动程序升级仅需要用前者替换后者即可
//2001年9月1日,增补深圳行情库SJS库的更改
//        a.工作模式增加RCV_WORK_SENDMSG模式,建议驱动程序支持RCV_WORK_MEMSHARE和RCV_WORK_SENDMSG两种工作模式以支持各种版本的飞狐
//        b.RCV_WORK_SENDMSG工作模式与RCV_WORK_MEMSHARE的唯一区别在于使用RCV_REPORT_STRUCTExV2数据结构替代RCV_REPORT_STRUCTEx数据结构传输动态行情
//        c.若GetStockDrvInfo(RI_V2SUPPORT)返回1,则分析家启用RCV_WORK_SENDMSG工作模式,否则启用RCV_WORK_MEMSHARE工作模式,分析家采用这种方式来兼容前后版本
//        d.采用RCV_WORK_SENDMSG工作模式,飞狐系统能够支持4位和6位深圳股票代码
//        e.RCV_WORK_SENDMSG工作模式只在飞狐V3.9x后的版本才支持。
/////////////////////////////////////////////////////////////////////////////////

// 工作方式类型定义
#define RCV_WORK_DEMAND                                0                                        // 查询接口,方式一
#define RCV_WORK_MEMSHARE                        2                                        // 内存共享直接引用,方式二
#define RCV_WORK_SENDMSG                        4                                        // 版本 2 建议使用的方式,对于六位代码的深圳市场必须使用这种模式       
// 其他工作方式保留


/*
指数代号-名称
1A0001  上证[url=www.macd.cn/result.php?sn=综合指数]综合指数[/url]                1A0002  上证A股指数                1A0003  上证B股指数
1B0001  上证工业指数                1B0002  上证[url=www.macd.cn/result.php?sn=商业指数]商业指数[/url]                1B0004  上证[url=www.macd.cn/result.php?sn=[url=www.macd.cn/result.php?sn=地产指数]地产指数[/url]][url=www.macd.cn/result.php?sn=地产指数]地产指数[/url][/url]
1B0005  上证公用事业                1B0006  上证综合                        1B0007  上证30指数

2A01        深证成分指数                2A02        深证成分A                        2A03        深证成分B
2B01        深证工业                    2B02        深证商业                        2B03        深证金融
2B04        深证地产                        2B05        深证公共事业                2B06        深证综合
2B07        深证基金                        2C01        深证指数                        2C02        深证A股
2C03        深证B股
*/

/////////////////////////////////////////////////////////////////////////////////////////
// 以下是接口方式二

// 证券市场
#define                SH_MARKET_EX                        'HS'                // 上海
#define                SZ_MARKET_EX                        'ZS'                // 深圳
#define                HK_MARKET_EX                        'KH'                // 香港

// 文件数据类型
// 结构数组形式的文件数据
#define                FILE_HISTORY_EX                        2                        // 补日线数据
#define                FILE_MINUTE_EX                        4                        // 补分钟线数据
#define                FILE_POWER_EX                        6                        // 补充除权数据

#define                FILE_BASE_EX                        0x1000                // 钱龙兼容基本资料文件,m_szFileName仅包含文件名
#define                FILE_NEWS_EX                        0x1002                // 新闻类,其类型由m_szFileName中子目录名来定
#define                FILE_HTML_EX                        0x1004                // HTML文件,m_szFileName为URL

#define                FILE_SOFTWARE_EX                0x2000                // 升级软件

// 消息子类型
#define                News_Sha_Ex                                 2                        // 上证消息
#define                News_Szn_Ex                                 4                        // 深证消息
#define                News_Fin_Ex                                 6                        // 财经报道
#define                News_TVSta_Ex                         8                        // 电视台通知
#define                News_Unknown_Ex                         -1                        // 未知提供者

//Definition For nInfo of Function GetStockDrvInfo(int nInfo,void * pBuf);
#define                RI_IDSTRING                                1                        // 厂商名称,返回(LPCSTR)厂商名
#define                RI_IDCODE                                2                        // 卡号
#define                RI_VERSION                                3                        // 驱动程序版本
#define                RI_V2SUPPORT                        6                        // 支持深圳SJS库结构

#define                STKLABEL_LEN                        10                        // 股号数据长度,国内市场股号编码兼容钱龙
#define                STKNAME_LEN                                32                        // 股名长度


//////////////////////////////////////////////////////////////////////////////////
//行情数据(版本1数据结构RCV_WORK_MEMSHARE)
typedef struct tagRCV_REPORT_STRUCTEx
{
        WORD        m_wMarket;                                                                        // 股票市场类型
        char        m_szLabel[STKLABEL_LEN];                                        // 股票代码,以'\0'结尾
        char        m_szName[STKNAME_LEN];                                                // 股票名称,以'\0'结尾
       
        float        m_fLastClose;                                                                // 昨收
        float        m_fOpen;                                                                        // 今开
        float        m_fHigh;                                                                        // 最高
        float        m_fLow;                                                                                // 最低
        float        m_fNewPrice;                                                                // 最新
        float        m_fVolume;                                                                        // 成交量
        float        m_fAmount;                                                                        // 成交额

        float        m_fBuyPrice[3];                                                                // 申买价1,2,3
        float        m_fBuyVolume[3];                                                        // 申买量1,2,3
        float        m_fSellPrice[3];                                                        // 申卖价1,2,3
        float        m_fSellVolume[3];                                                        // 申卖量1,2,3
} RCV_REPORT_STRUCTEx;

//////////////////////////////////////////////////////////////////////////////////
//行情数据(版本2数据结构RCV_WORK_SENDMSG)
typedef struct tagRCV_REPORT_STRUCTExV2       
{
        WORD        m_cbSize;                                                                        // 结构大小
        time_t        m_time;                                                                                // 成交时间
        WORD        m_wMarket;                                                                        // 股票市场类型
        char        m_szLabel[STKLABEL_LEN];                                        // 股票代码,以'\0'结尾
        char        m_szName[STKNAME_LEN];                                                // 股票名称,以'\0'结尾
       
        float        m_fLastClose;                                                                // 昨收
        float        m_fOpen;                                                                        // 今开
        float        m_fHigh;                                                                        // 最高
        float        m_fLow;                                                                                // 最低
        float        m_fNewPrice;                                                                // 最新
        float        m_fVolume;                                                                        // 成交量
        float        m_fAmount;                                                                        // 成交额

        float        m_fBuyPrice[3];                                                                // 申买价1,2,3
        float        m_fBuyVolume[3];                                                        // 申买量1,2,3
        float        m_fSellPrice[3];                                                        // 申卖价1,2,3
        float        m_fSellVolume[3];                                                        // 申卖量1,2,3

        float        m_fBuyPrice4;                                                                // 申买价4
        float        m_fBuyVolume4;                                                                // 申买量4
        float        m_fSellPrice4;                                                                // 申卖价4
        float        m_fSellVolume4;                                                                // 申卖量4
} RCV_REPORT_STRUCTExV2;

//////////////////////////////////////////////////////////////////////////////////
//行情数据(版本3数据结构RCV_WORK_SENDMSG,兼容RCV_REPORT_STRUCTExV2结构,使用m_cbSize区分不同结构)
//版本3支持5档买卖盘

typedef struct tagRCV_REPORT_STRUCTExV3       
{
        WORD        m_cbSize;                                                                        // 结构大小
        time_t        m_time;                                                                                // 成交时间
        WORD        m_wMarket;                                                                        // 股票市场类型
        char        m_szLabel[STKLABEL_LEN];                                        // 股票代码,以'\0'结尾
        char        m_szName[STKNAME_LEN];                                                // 股票名称,以'\0'结尾
       
        float        m_fLastClose;                                                                // 昨收
        float        m_fOpen;                                                                        // 今开
        float        m_fHigh;                                                                        // 最高
        float        m_fLow;                                                                                // 最低
        float        m_fNewPrice;                                                                // 最新
        float        m_fVolume;                                                                        // 成交量
        float        m_fAmount;                                                                        // 成交额

        float        m_fBuyPrice[3];                                                                // 申买价1,2,3
        float        m_fBuyVolume[3];                                                        // 申买量1,2,3
        float        m_fSellPrice[3];                                                        // 申卖价1,2,3
        float        m_fSellVolume[3];                                                        // 申卖量1,2,3

        float        m_fBuyPrice4;                                                                // 申买价4
        float        m_fBuyVolume4;                                                                // 申买量4
        float        m_fSellPrice4;                                                                // 申卖价4
        float        m_fSellVolume4;                                                                // 申卖量4

        float        m_fBuyPrice5;                                                                // 申买价5
        float        m_fBuyVolume5;                                                                // 申买量5
        float        m_fSellPrice5;                                                                // 申卖价5
        float        m_fSellVolume5;                                                                // 申卖量5
} RCV_REPORT_STRUCTExV3;

//////////////////////////////////////////////////////////////////////////////////
//补充数据头
//数据头 m_dwHeadTag == EKE_HEAD_TAG
#define EKE_HEAD_TAG        0xffffffff

typedef struct        tagRCV_EKE_HEADEx
{
        DWORD        m_dwHeadTag;                                                                // = EKE_HEAD_TAG
        WORD        m_wMarket;                                                                        // 市场类型
        char        m_szLabel[STKLABEL_LEN];                                        // 股票代码
}RCV_EKE_HEADEx;

//补充日线数据
typedef union tagRCV_HISTORY_STRUCTEx
{
        struct
        {
                time_t        m_time;                                //UCT
                float        m_fOpen;                        //开盘
                float        m_fHigh;                        //最高
                float        m_fLow;                                //最低
                float        m_fClose;                        //收盘
                float        m_fVolume;                        //量
                float        m_fAmount;                        //额
                WORD        m_wAdvance;                        //涨数,仅大盘有效
                WORD        m_wDecline;                        //跌数,仅大盘有效
        };
        RCV_EKE_HEADEx        m_head;
}RCV_HISTORY_STRUCTEx;

//补充分时线数据
typedef union tagRCV_MINUTE_STRUCTEx
{
        struct{
                time_t        m_time;                                // UCT
                float        m_fPrice;
                float        m_fVolume;
                float        m_fAmount;
        };
        RCV_EKE_HEADEx        m_head;
}RCV_MINUTE_STRUCTEx;

//补充除权数据
typedef union tagRCV_POWER_STRUCTEx
{
        struct
        {
                time_t        m_time;                                // UCT
                float        m_fGive;                        // 每股送
                float        m_fPei;                                // 每股配
                float        m_fPeiPrice;                // 配股价,仅当 m_fPei!=0.0f 时有效
                float        m_fProfit;                        // 每股红利
        };
        RCV_EKE_HEADEx        m_head;
}RCV_POWER_STRUCTEx;

//////////////////////////////////////////////////////////////////////////////////
// 文件类型数据包头
//  注一:
//        m_wDataType == FILE_BASE_EX
//                                m_dwAttrib = 股票证券市场,m_szFileName仅包含文件名
//  m_wDataType == FILE_NEWS_EX
//                                m_dwAttrib = 消息来源,m_szFileName 包含目录的文件名,目录名为消息来源
//                                如:  "上交所消息\\0501Z012.TXT","新兰德\\XLD0001.TXT"
//  m_wDataType == FILE_HTML_EX
//                                m_dwAttrib 保留, m_szFileName为URL
//        m_wDataType        == FILE_SOFTWARE_EX
//                                m_dwAttrib 分析软件类型, 用于初步判断
//                                m_szFileName 分析软件 ID 特征字符串 + '\\' + 文件名
//                                如 "FoxTrader_V3\\FoxTrader.EXE",
//                                ID 特征字符串为 "SuperStk", "SuperStk.EXE" 为文件名
//                                特征字符串 和 文件名及其含义由分析软件商定义
//  注二:
//                数据文件循环播出,每个文件有唯一的序列号,以避免重复接收
typedef struct tagRCV_FILE_HEADEx
{
        DWORD        m_dwAttrib;                                                        // 文件子类型
        DWORD        m_dwLen;                                                        // 文件长度
        DWORD        m_dwSerialNo;                                                // 序列号
        char        m_szFileName[MAX_PATH];                                // 文件名 or URL
} RCV_FILE_HEADEx;

//////////////////////////////////////////////////////////////////////////////////
//  数据通知消息
//直接数据引用通知消息
//        wParam = RCV_WPARAM;
//  lParam 指向 RCV_DATA结构;
//        返回 1 已经处理, 0 未处理或不能处理

#define RCV_REPORT                        0x3f001234
#define RCV_FILEDATA                0x3f001235

// 注一:
//          记录数表示行情数据和补充数据(包括 Header)的数据包数,对文件类型数据, = 1
// 注二:
//          若 m_bDISK = FALSE, m_pData 为数据缓冲区指针
//                 ******** 数据共享,不能修改数据 **********
//                 m_bDISK = TRUE,  m_pData 为该文件的存盘文件名,一般情况只有
//                 升级软件等大文件用存盘方式
typedef struct tagRCV_DATA
{
        int                                        m_wDataType;                        // 文件类型
        int                                        m_nPacketNum;                        // 记录数,参见注一
        RCV_FILE_HEADEx                m_File;                                        // 文件接口
        BOOL                                m_bDISK;                                // 文件是否已存盘的文件
        union
        {
                RCV_REPORT_STRUCTEx  *        m_pReport;
                RCV_REPORT_STRUCTExV2*        m_pReportV2;
                RCV_REPORT_STRUCTExV3*        m_pReportV3;
                RCV_HISTORY_STRUCTEx *        m_pDay;
                RCV_MINUTE_STRUCTEx  *        m_pMinute;
                RCV_POWER_STRUCTEx   *        m_pPower;
                void                     *        m_pData;                // 参见注二
        };
} RCV_DATA;

/* 消息处理程序 DEMO
LONG OnStkDataOK(UINT wParam,LONG lParam)
{
        RCV_DATA*                pHeader;
        pHeader = (RCV_DATA *)lParam;
        switch( wParam )
        {
        case RCV_REPORT:                                                // 共享数据引用方式,股票行情
                for(i=0; i<pHeader->m_nPacketNum; i++)
                {
                        pHeader->m_pReport ...
                        // 数据处理
                }
                break;

        case RCV_FILEDATA:                                                // 共享数据引用方式,文件
                switch(pHeader->m_wDataType)
                {
                case FILE_HISTORY_EX:                                // 补日线数据
                        break;
                case FILE_MINUTE_EX:                                // 补分钟线数据
                        break;
                case FILE_POWER_EX:                                        // 补充除权数据
                        break;
                case FILE_BASE_EX:                                        // 钱龙兼容基本资料文件,m_szFileName仅包含文件名
                        break;
                case FILE_NEWS_EX:                                        // 新闻类,其类型由m_szFileName中子目录名来定
                        break;
                case FILE_HTML_EX:                                        // HTML文件,m_szFileName为URL
                        break;
                case FILE_SOFTWARE_EX:                                // 升级软件
                        break;
                }
                break;
        default:
                return 0;                                                        // unknown data
        }
        return 1;
}
*/


//////////////////////////////////////////////////////////////////////////////////
//APIs
#ifdef __cplusplus
extern "C"{
#endif

//////////////////////////////////////////////////////////////////////////////////
// 注册函数

// 股票初始化
// 入口参数:
//                hWnd                        处理消息的窗口句柄
//                Msg                                用户自定义消息
//                nWorkMode                接口工作方式,参见工作方式类型定义
// 返回参数:
//                 1                                成功       
//                -1                                失败
// 注:
//                注册后,驱动程序会向处理窗口发送消息; 若不注册,通过查询方式亦可取得数据
//                若股票接收没启动,则启动股票接收程序
int WINAPI        Stock_Init(HWND hWnd,UINT Msg,int nWorkMode);

// 退出,停止发送消息
// 入口参数:
//                hWnd                        处理消息的窗口句柄,同 Stock_Init 的调用入口参数
//        返回参数:
//                 1                                成功       
//                -1                                失败
int WINAPI         Stock_Quit(HWND hWnd);

// 激活接收程序,进行设置
// 入口参数:
//                        bSetup                TRUE                显示窗口,进行设置
//                                                FALSE                隐含窗口
// 返回参数:
//                         1                        成功
//                        -1                        失败
int        WINAPI  SetupReceiver(BOOL bSetup);

//        取得股票驱动信息
//        入口参数:
//                        nInfo                索引
//                        pBuf                缓冲区
//        出口参数:
//                        nInfo == RI_IDSTRING,        返回特征字符串长度, pBuf 为特征字符串
//                                                                        如:        "TongShi_StockDrv_1.00"
//                        nInfo == RI_IDCODE,                返回信息卡 ID 号, pBuf 为字符串形式的 ID 号
//                                                                        如:        0x78001234          "78001234"
//                        nInfo == RI_VERSION,        返回信息卡版本号, pBuf 为字符串版本
//                                                                        如:  1.00                  "1.00"               
//                        nInfo == RI_V2SUPPORT,        返回是否支持深圳SJS库结构, pBuf无效
DWORD WINAPI  GetStockDrvInfo(int nInfo,void * pBuf);


void WINAPI  ReInitStockInfo();

//重新取得股票数据

#ifdef __cplusplus
}
#endif


#endif // __STOCKDRV_H__
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:33 | 显示全部楼层
钱龙3.0版数据存储格式
  
   上海日线存储路径为:\ml30\data\shase\day,文件扩展名为:.day
   上海周线存储路径为:\ml30\data\shase\week,文件扩展名为: .wek
   上海月线存储路径为:\ml30\data\shase\month,文件扩展名为: .mnt
   深圳日线存储路径为:\ml30\data\sznse\day
   深圳周线存储路径为:\ml30\data\sznse\week
   深圳月线存储路径为:\ml30\data\sznse\month
  
   以深发展日线为例:
   1A76:0100 D6 CD 2F 01 52 07 01 00-52 07 01 00 52 07 01 00
   1A76:0110 52 07 01 00 86 0F 00 00-4D 02 00 00 00 00 00 00
   1A76:0120 00 00 00 00 00 00 00 00-D7 CD 2F 01 60 03 01 00
   1A76:0130 60 03 01 00 60 03 01 00-60 03 01 00 82 05 00 00
   1A76:0140 D4 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
  
   每一条记录的长度为40字节:
   1-4字节为日期,D6 CD 2F 01转换为十进制是:19910102
   5-8字节为开盘价*1000
   9-12字节为最高价*1000
   13-16字节为最低价*1000
   17-20字节为收盘价*1000
   21-24字节为成交量(手)
   25-28字节为成交金额
   其余12字节未使用
  
   另:周线,月线格式与日线格式一致.
  
   下面是我用C语言编的一个显示深发展日线的小程序,运行时要将000001.day拷到当前目录.
  
   #include <stdio.h>
   #include <conio.h>
   #include <stdlib.h>
  
   typedef struct {
   unsigned long date;
   unsigned long open;
   unsigned long high;
   unsigned long low;
   unsigned long close;
   unsigned long travl;
   unsigned long traca;
   char unuse[12];
   } RECORD;
  
   RECORD reco;
   int readrec(FILE *);
  
   void main()
   {
   FILE *fp;
   if((fp = fopen("000001.day","rb")) == NULL) // 打开深发展日线
   { printf("Error: Can^t open 000001.DAY !\n");
   exit(0); }
   readrec(fp);
   fclose(fp);
   if(getch()==0) getch();
   exit(0);
   }
  
   int readrec(FILE *fp)
   {
   float fn;
   while (! feof(fp)) {
   fread(&reco,sizeof(RECORD),1,fp);
   printf("%10lu ",reco.date);
   fn=float(reco.open)/1000;
   printf("%8.2f ",fn);
   fn=float(reco.high)/1000;
   printf("%8.2f ",fn);
   fn=float(reco.low)/1000;
   printf("%8.2f ",fn);
   fn=float(reco.close)/1000;
   printf("%8.2f ",fn);
   printf("%8lu ",reco.travl);
   printf("%8lu\n",reco.traca);
   }
   printf("\n");
   return 0;
   }
  

【 作者:loveice 时间:2003-7-28 23:56:30 】  
  分析家3.1x版数据存储格式
  
   上海日线存储文件为:\superstk\data\sh\day.dat
   深圳日线存储文件为:\superstk\data\sz\day.dat
  
   以上海日线存储文件day.dat为例:
  
   00000h: F4 9B 13 FC 10 02 00 00-00 00 00 00 D1 04 00 00
   00000h: 81 0C 00 00 48 0C 00 00-31 41 30 30 30 31 00 FF
   00020h: FF FF B0 09 00 00 16 00-17 00 18 00 19 00 1A 00
   00030h: 1B 00 1C 00 1D 00 1E 00-07 0A FF FF FF FF FF FF
   00040h: FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
   00050h: FF FF FF FF FF FF FF FF
   ......
   ......
   41000h: 80 47 B2 2B B9 1E 25 41-CD CC 4C 41 EC 51 18 41
   41010h: 9A 99 41 41 80 06 B2 47-40 1C BC 4C 00 00 00 00
   41020h: 00 3C B6 2B 34 33 3F 41-AF 47 49 41 01 00 30 41
   41030h: 34 33 3B 41 00 07 12 47-A4 3C 26 4C 00 00 00 00
  
   该文件格式与磁盘文件物理存储方式类似:
  
   起止地址 数据内容 数据含义 数据类型
   00 - 03 F4 9B 13 FC 日线文件标志 Integer
   04 - 07 10 02 00 00 保留 Integer
   08 - 0B 00 00 00 00 保留 Integer
   0C - 0F D1 04 00 00 证券总数 Integer
   10 - 13 81 0C 00 00 需添加之起始块号 Integer
   14 - 17 48 0C 00 00 当前最后空块号 Integer
   18 - 21 31 41 30 30 30...FF 证券代码 Char[10]
   22 - 25 B0 09 00 00 日线记录数 Integer
   26 - 57 16 00 17 00...FF FF 记录块号 Word[25]
   ......
   41000 - 41003 80 47 B2 2B 日期 Integer
   41004 - 41007 B9 1E 25 41 开盘价 Single
   41008 - 4100B CD CC 4C 41 最高价 Single
   4100C - 4100F EC 51 18 41 最低价 Single
   41010 - 41013 9A 99 41 41 收盘价 Single
   41014 - 41017 80 06 B2 47 成交量 Single
   41018 - 4101B 40 1C BC 4C 成交金额 Single
   4101C - 4101D 00 00 上涨家数 Word
   4101E - 4101F 00 00 下跌家数 Word
  
   注:
   1)起止地址、数据内容为十六进制,数据类型为 Delphi 下之定义。
   2)从18h开始至40017h每64byte为一条股票数据分配记录,含义如上表18h - 57h所示;
   3)从41000h开始每8KB为一股票数据存储块,每个股票数据存储块共存储256条日线记录,每一条记录的长度为32 byte(含义如上表;上涨家数及下跌家数只对指数有效);
   4)从41000h开始的8KB为第0号数据存储块,以后类推;
   5)系统对每个股票日线数据存储以存储块为单位进行分配。
   6)具体应用实例分析家数据管理程序。
   7) 日期字段的意义为:实际日期 = StrToDate(^1970-01-01^)+(日期字段 div 86400);即“日期字段”除以86400所得数为实际日期距1970年01月01日的天数。
  
  
胜龙的数据格式
  
   上海日线存储路径为:\slon\data\sh\day,文件扩展名为:.day
   上海周线存储路径为:\slon\data\sh\week,文件扩展名为: .wek
   上海月线存储路径为:\slon\data\sh\month,文件扩展名为: .mnt
   深圳日线存储路径为:\slon\data\sz\day
   深圳周线存储路径为:\slon\data\sz\week
   深圳月线存储路径为:\slon\data\sz\month
   以深发展日线为例:
   0F74:0100 29 32 D0 FE AD F8 FE FF-AD F8 FE FF AD F8 FE FF
   0F74:0110 AD F8 FE FF 77 F0 FF FF-B2 FD FF FF FF FF FF FF
   0F74:0120 FE FF FF FF 94 E3 FB FF-28 32 D0 FE 9F FC FE FF
   0F74:0130 9F FC FE FF 9F FC FE FF-9F FC FE FF 7D FA FF FF
   0F74:0140 2B FF FF FF FF FF FF FF-FE FF FF FF 94 E3 FB FF
   每一条记录的长度为40字节:
   1-4字节为日期(如19910102)转换为整数的反码
   5-8字节为开盘价*1000 的反码
   9-12字节为最高价*1000 的反码
   13-16字节为最低价*1000 的反码
   17-20字节为收盘价*1000 的反码
   21-24字节为成交量(手) 的反码
   25-28字节为成交金额(万元)的反码
   29-36字节未使用
   37-40字节为除权价*1000 的反码
   另:周线,月线格式与日线格式一致.
   下面是我用C语言编的一个显示深发展日线的小程序,运行时要将
   000001.day拷到当前目录.
   #include <stdio.h>
   #include <stdlib.h>
   #include <conio.h>
   typedef struct
   {
   unsigned long date;
   unsigned long open;
   unsigned long low;
   unsigned long high;
   unsigned long close;
   unsigned long travl;
   unsigned long traca;
   char unuse[12];
   } RECORD;
   RECORD reco;
   int readrec(FILE *);
   void main()
   {
   FILE *fp;
   if((fp = fopen("000001.day","rb")) == NULL)
   {
   printf("Error: Can^t open 000001.DAY !\n");
   exit(0);
   }
   readrec(fp);
   fclose(fp);
   if(getch()==0) getch();
   exit(0);
   }
   int readrec(FILE *fp)
   {
   float fn;
   while (! feof(fp))
   {
   fread(&reco,sizeof(RECORD),1,fp);
   printf("%10lu ",~reco.date);
   fn=float(~reco.open)/1000;
   printf("%8.2f ",fn);
   fn=float(~reco.low)/1000;
   printf("%8.2f ",fn);
   fn=float(~reco.high)/1000;
   printf("%8.2f ",fn);
   fn=float(~reco.close)/1000;
   printf("%8.2f ",fn);
   printf("%8lu ",~reco.travl);
   printf("%8lu\n",~reco.traca);
   if(kbhit()) break;
   }
   printf("\n");
   return 0;
   }

【 作者:loveice 时间:2003-7-28 23:59:06 】  
  汇金数据格式
  
   上海日线存储路径为:\hjin\exe\lineday\sh,文件扩展名为:.psd
   上海周线存储路径为:\hjin\exe\lineweek\sh,文件扩展名为: .psw
   上海月线存储路径为:\hjin\exe\linemon\sh,文件扩展名为: .psm
   深圳日线存储路径为:\hjin\exe\lineday\sz
   深圳周线存储路径为:\hjin\exe\lineweek\sz
   深圳月线存储路径为:\hjin\exe\linemon\sz
   以深发展日线为例:
   1A76:0100 D6 CD 2F 01 EC D1 86 42-EC D1 86 42 EC D1 86 42
   1A76:0110 EC D1 86 42 7B F9 86 42-14 E6 00 00 20 D7 CD 2F
   1A76:0120 01 CD CC 84 42 CD CC 84-42 CD CC 84 42 CD CC 84
   1A76:0130 42 D5 04 85 42 D0 52 00-00 20 D8 CD 2F 01 54 23
   1A76:0140 84 42 54 23 84 42 54 23-84 42 54 23 84 42 9E E7
   1A76:0150 83 42 A0 41 00 00 20
   每一条记录的长度为29字节:
   1-4字节为日期,D6 CD 2F 01转换为十进制是:19910102
   5-8字节为开盘价
   9-12字节为最高价
   13-16字节为最低价
   17-20字节为收盘价
   21-24字节为均价
   25-28字节为成交量(股)
   其余1字节未使用
   另:周线,月线格式与日线格式一致.
   下面是我用C语言编的一个显示深发展日线的小程序,运行时要将
   sz0001.psd拷到当前目录.
   #include <stdio.h>
   #include <conio.h>
   #include <stdlib.h>
   typedef struct {
   unsigned long date; //日期
   float open; //开盘价
   float high; //最高价
   float low; //最低价
   float close; //收盘价
   float cavl; //均价
   unsigned long travl; //成交量
   char unuse;
   } RECORD;
   RECORD reco;
   int readrec(FILE *);
   void main()
   {
   FILE *fp;
   if((fp = fopen("sz0001.psd","rb")) == NULL) // 打开深发展日线
   { printf("Error: Can^t open SZ0001.PSD !\n");
   exit(0); }
   readrec(fp);
   fclose(fp);
   if(getch()==0) getch();
   exit(0);
   }
   int readrec(FILE *fp)
   {
   while (! feof(fp)) {
   fread(&reco,sizeof(RECORD),1,fp);
   printf("%10lu ",reco.date);
   printf("%8.2f ",reco.open);
   printf("%8.2f ",reco.high);
   printf("%8.2f ",reco.low);
   printf("%8.2f ",reco.close);
   printf("%8.2f ",reco.cavl);
   printf("%8lu\n",reco.travl);
   }
   printf("\n");
   return 0;
   }  

【 作者:loveice 时间:2003-7-28 23:59:44 】  
  海融动态“闪电版”日线数据格式
  
   上海日线存储路径为:\hrdyn\shday,文件扩展名为:.day
   深圳日线存储路径为:\hrdyn\szday,文件扩展名为:.day
  
   以深发展日线(0001.day)为例:
  
   0000h: F8 30 31 01 CD CC 88 41-AE 47 89 41 00 00 86 41
   0010h: 71 3D 86 41 24 02 20 00-62 26 87 41 00 00 00 00
   0020h: 00 00 00 00 00 00 00 00-F9 30 31 01 66 66 86 41
   0030h: CB A1 88 41 14 AE 85 41-A4 70 87 41 9C C5 11 00
   0040h: AA C3 86 41 00 00 00 00-00 00 00 00 00 00 00 00
  
  
  
   起止地址 数据内容 数据含义 数据类型
   0000 - 0003 F8 30 31 01 日 期 Integer
   0004 - 0007 CD CC 88 41 开盘价 Single
   0008 - 000B AE 47 89 41 最高价 Single
   000C - 000F 00 00 86 41 最低价 Single
   0010 - 0013 71 3D 86 41 收盘价 Single
   0014 - 0017 24 02 20 00 成交量 Integer
   0018 - 001B 62 26 87 41 均 价 Single
   001C - 001F 00 00 00 00 前收盘 Single
   0020 - 0021 00 00 竞 Word
   0022 - 0023 00 00 量
   Word
   0024 - 0027 00 00 00 00 成交笔数 Integer
  
   注:
   1)起止地址、数据内容为十六进制,数据类型为 Delphi 下之定义。
   2)从0028h开始每40byte为一条股票数据记录,含义如上表0000h - 0027h所示;
  

【 作者:loveice 时间:2003-7-29 0:00:16 】  
  投资家数据数据结构
  
   投资家日线文件数据结构
  
   每28个字节为一日。
   Date:LongInt; //日期(距1970.01.01的秒数)
   OPen:LongInt; //开盘(元)
   Close:LongInt; //收盘(元)
   High:LongInt; //最高价(元)
   Low:LongInt; //最低价(元)
   Volume:LongInt; //成交量(股)
   Money:LongInt; //成交额(元)
  
   日期,x/86400取余后如果余数大于等于57600则加1(取整方法为如果大于16:00收盘时间则加1,否则不加1,视为昨天。)即为1970-01-01到当前的天数。分析家则不用这样都是整数。 开盘价(算法同分析家) 收盘价(算法同分析家) 最高价(算法同分析家)
   最低价(算法同分析家) 成交量(股)(算法同分析家) 成交额(元)(算法同分析家)从钱龙转过来正确,但自动接收好像不对为0  

天亿日线文件数据结构
  
   沪市日线文件路径:默认在\DATA\SHASE\DAY下。
   深市日线文件路径:默认在\DATA\SZNSE\DAY下。
  
   日线文件命名规则:股票代码.DAY
  
   每个日K线为40字节,具体如下:
   Date:LongInt; //日期
   OPen:LongInt; //开盘(元/1000)
   High:LongInt; //最高价(元/1000)
   Low:LongInt; //最低价(元/1000)
   Close:LongInt; //收盘(元/1000)
   Money:LongInt; //成交额(千元)
   Volume:LongInt; //成交量(手)
   Nouse1:LongInt; //没用
   Nouse2:LongInt; //没用
   Nouse3:LongInt; //没用
  
  

【 作者:loveice 时间:2003-7-29 0:00:51 】  
  天网数据数据结构
  
   天网日线文件数据结构
  
   沪市日线文件路径:默认在YYY\DATA\SHASE\DAY下。
   深市日线文件路径:默认在YYY\DATA\SZNSE\DAY下。
  
   日线文件命名规则:股票代码.DAY
  
   每个日K线为40字节,具体如下:
   Date:LongInt; //日期
   OPen:LongInt; //开盘(元/1000)
   High:LongInt; //最高价(元/1000)
   Low:LongInt; //最低价(元/1000)
   Close:LongInt; //收盘(元/1000)
   Money:LongInt; //没用
   Volume:LongInt; //成交量(手)
   Nouse1:LongInt; //没用
   Nouse2:LongInt; //没用
   Nouse3:LongInt; //没用
  
  

【 作者:loveice 时间:2003-7-29 0:01:20 】  
  慧眼日线文件数据结构
  
   日线文件路径:默认在\Stkdt下。
  
   日线文件命名规则:股票代码.DAT
  
   每个日K线为28字节,具体如下:
   Date:LongInt; //日期
   OPen:LongInt; //开盘(元/100)
   High:LongInt; //最高价(元/100)
   Low:LongInt; //最低价(元/100)
   Close:LongInt; //收盘(元/100)
   App:LongInt; //涨跌(收盘价之差)
   Volume:LongInt; //成交量(手)
  
   慧眼代码表文件数据结构
  
   慧眼98静态版的lstf.dat的数据结构(本文件是列表与日线无关)
  
   以4位整型为单位。
  
   第四个为日期。前100个字节为头信息。好像不能动。每个股票为60字节
  
   为代码(ha600001) 为名称
   开(分) 高(分) 低(分) 收(分)
   涨跌(分) 成交量(手) ?00 00 10 16(0) ?0
   ?0 ?0 ?0 ----------
  
   一个长整型的各位的含义
  
   即与00 00 11 13异或的结果
  
   显示值 (1-H)2^28 (1-L)2^24 (2-H)2^20 (2-L)2^16 (3-H)2^12 (3-L)2^8 (4-H)2^4 (4-L)2^0
   0 268435456 16777216 1048567 65536 1*4096 1*256 1*16 3
   1 1 1 1 1 0 0 0 2
   2 2 2 2 2 3 3 3 1
   3 3 3 3 3 2 2 2 0
   4 4 4 4 4 5 5 5 7
   5 5 5 5 5 4 4 4 6
   6 6 6 6 6 7 7 7 5
   7 7 7 7 7 6 6 6 4
   8 8 8 8 8 9 9 9 11
   9 9 9 9 9 8 8 8 10
   a a a a a 11 11 11 9
   b b b b b 10 10 10 8
   c c c c c 13 13 13 15
   d d d d d 12 12 12 14
   e e e e e 15 15 15 13
   f f f f f 14 14 14 12
  
   如果涨跌幅是负的话,则用FF FF FF FF 减去用上面算法算出的数再减1
  
   显示的成交量可以与内建的流通量一起由慧眼算换手率。

恒生数据数据结构
  
   (一)恒生日线文件数据结构
  
   沪市日线文件路径:默认在HSNEW\DATA\SHASE\DAY下。
   深市日线文件路径:默认在HSNEW\DATA\SZNSE\DAY下。
  
   日线文件命名规则:股票代码.DAY
  
   每个日K线为40字节,具体如下:
   Date:LongInt; //日期
   OPen:LongInt; //开盘(元/1000)
   High:LongInt; //最高价(元/1000)
   Low:LongInt; //最低价(元/1000)
   Close:LongInt; //收盘(元/1000)
   Money:LongInt; //成交额(千元)
   Volume:LongInt; //成交量(手)
   Nouse1:LongInt; //没用
   Nouse2:LongInt; //没用
   Nouse3:LongInt; //没用
  

【 作者:loveice 时间:2003-7-29 0:02:19 】  
  (二)钱龙代码表文件格式
  
   沪市代码表文件路径:默认为ML30\DATA\SHASE\NAMETBL.SHA
   深市代码表文件路径:默认为ML30\DATA\SZNSE\NAMETBL.SZN
  
   First0:ShortInt; //1字节,只能为00
   Name:array [1..8] of Char;
   Kind:ShortInt;
   Code:array [1..6] of Char;//代码深圳为XXXX__
   YesClose:LongInt;//昨收
   Open:LongInt;//开盘
   High:LongInt;//最高
   Low:LongInt;//最低
   Close:LongInt;//收盘
   Volume:LongInt;//总手
   Money:LongInt;//金额
   Buy1M:LongInt;//买一价
   Buy1V:LongInt;//买一量
   Buy2M:LongInt;//买二价
   Buy2V:LongInt;//买二量
   Buy3M:LongInt;//买三价
   Buy3V:LongInt;//买三量
   Sale1M:LongInt;//卖一价
   Sale1V:LongInt;//卖一量
   Sale2M:LongInt;//卖二价
   Sale2V:LongInt;//卖二量
   Sale3M:LongInt;//卖三价
   Sale3V:LongInt;//卖三量
   Per:SmallInt;//只能为100??
   NowV:LongInt;//现手
  
   (三)钱龙网络版动态数据格式(即ml30\lond\dat下的数据格式)
  
   // Set the default value
   #define EXCH_MIN 240
   #define EXCH_A 9*60+30
   #define EXCH_AE 11*60+30
   #define EXCH_B 13*60+00
   #define EXCH_BE 15*60+00
   #define SEP_TAG 0xffffffff
   #define TRA_MAXN 1000
   #define INFO_PARA 0x84
   #define TYPE_NUM 0x4
   #define FALSE 0x0
   #define TRUE 0x1
   #define SLHS_SIZE 0x300
   #define SH_ZS ^a^
   #define SH_AG ^b^
   #define SH_BG ^c^
   #define SH_ZQ ^d^
   #define SZ_ZS ^A^
   #define SZ_AG ^B^
   #define SZ_BG ^C^
   #define SZ_ZQ ^D^
   #define DH_ZS 0x10
   #define DH_AG 0x11
   #define DH_BG 0x12
   #define DH_ZQ 0x13
   #define DZ_ZS 0x20
   #define DZ_AG 0x21
   #define DZ_BG 0x22
   #define DZ_ZQ 0x23
  
   struct APD_stock_data{ // in 199YMMDD.DAT
   unsigned char data_id; // =0x73 with min_data,// =0x09 without min_data,// =0x20 is deleted
   unsigned char stock_type; // many be a,b,c,d or A,B,C,D
   unsigned char stock_code[6]; // stock code
   unsigned char stock_name[8]; // name of the stock
   unsigned long last_close_price;
   unsigned long open_price;
   unsigned long high_price;
   unsigned long low_price;
   unsigned long close_price;
   unsigned long total_volume;
   unsigned long total_value;
   };
  
   struct APD_stock_min{ // store data for normal shares
   unsigned long cur_price; // price of every minutes
   unsigned long total_volume; // summary volume by this minute
   unsigned int average_percent; // swing percent of the average value<
   };
  
   struct APD_index_min{ // store data for index
   unsigned long cur_price; // index of every minutes
   unsigned long total_volume; // summary volume by this minute
   unsigned int average_percent; // swing percent of the average index
   unsigned int buy_vigour; // the vigour value of buying
   unsigned int sell_vigour; // the vigour value of selling
   };
  
   // Develop data files by appdata structured upwards
  
   struct Data_5min{ // in .nmn files
   unsigned long min_off; // Format is MMDDHHMM
   unsigned long open_price; // 0.001
   unsigned long high_price; // 0.001
   unsigned long low_price; // 0.001
   unsigned long close_price; // 0.001
   unsigned long min_amount; // 100
   unsigned long min_volume; // 100
   unsigned long time_count; // sum trade time
   unsigned char share_value; // share value
   unsigned char share_number; // share break number
   unsigned int share_bonus; // share bonus
   unsigned long shares_number; // sum number
   };
  
   struct His_data{ // in lonhis.???
   unsigned long cur_price;
   unsigned long total_volume; // total volume
   unsigned long total_value; // total value by this minute
   unsigned long buy_volume; // initiactive total buy volume
   unsigned long sell_volume; // initiactive total sell volume
   unsigned int rise_num; // summary rise shares of this minute
   unsigned int fall_num; // summary fall shares of this minute
   unsigned int average_percent; // swing percent of the average index
   unsigned int buy_vigour; // the vigour value of buying
   unsigned int sell_vigour; // the vigour value of selling
   unsigned int value_ADL; // the value of current ADL index
   unsigned int swing_flag; // the flag of rise or fall
   };
  
   struct Tra_data{ // in lontra.???
   unsigned int time_off;
   unsigned long cur_price;
   unsigned long total_vol;
   unsigned long buy_price;
   unsigned long sell_price;
   };
  
   struct Info_data{ // in loninfo.???
   unsigned char stock_id; // This byte is to id stock
   unsigned char data_tag; // always be 0 to id
   unsigned int stock_num;
   unsigned int start_num;
   unsigned int max_tra;
   unsigned int min_exch;
   unsigned int exch_min;
   unsigned int A_begin_time;
   unsigned int A_end_time;
   unsigned int B_begin_time;
   unsigned int B_end_time;
   };
  
   struct Cdp_data{ // shacdp.dat of HXTW
   unsigned char stock_code[6];
   unsigned char reserved[20];
   unsigned long reserved2;
   };
  
   // some dynamic data files structured upwards
  
   struct Data_day{ // in .day files
   unsigned long day_date; // Format is YYYYMMDD
   unsigned long open_price; // 0.001
   unsigned long high_price; // 0.001
   unsigned long low_price; // 0.001
   unsigned long close_price; // 0.001
   unsigned long day_amount; // 1000
   unsigned long day_volume; // 100
   unsigned long time_count; // sum trade time
   unsigned char share_value; // share value
   unsigned char share_number; // share break number
   unsigned int share_bonus; // share bonus
   unsigned long shares_number; // sum number
   };
  
   struct Slon_para{ // in file slonpara.dat
   unsigned int sh_A_para; // Offset of SH_A stock
   unsigned int sh_B_para;
   unsigned int sh_C_para;
   unsigned int sh_total_para;
   unsigned int sz_A_para;
   unsigned int sz_B_para;
   unsigned int sz_C_para;
   unsigned int sz_total_para;
   unsigned int data_tag[3];
   };
  
   struct Slon_day{ // in .day files of Slon
   unsigned long day_date; // Format is YYYYMMDD
   unsigned long open_price; // 0.001
   unsigned long close_price; // 0.001
   unsigned long high_price; // 0.001
   unsigned long low_price; // 0.001
   unsigned long day_amount; // 1000
   unsigned long day_volume; // 100
   unsigned int reserved[6]; // Some infomation I don^t know
   };
  
   struct Slon_HS{ // in lonhs.dat of Slon
   unsigned int data_tag1; // Some infomation I don^t know
   unsigned char stock_type; // =0xff is delete, =0x64 is OK
   unsigned long stock_code; // number of stock code
   unsigned char stock_name[8]; // name of stock
   unsigned char data_tag2; // =0x0, Some infomation I don^t know
   unsigned int data_tag3; // =0x64, Some infomation I don^t know
   unsigned int last_close_price;
   unsigned int open_price;
   unsigned long PMA5_volume; // The volume of 5day average
   unsigned int high_price;
   unsigned int low_price;
   unsigned int close_price;
   unsigned long data_tag4; // Some infomation I don^t know
   unsigned long total_volume1; // Total volume
   unsigned long total_volume2; // Total volume
   unsigned int buy_1_price; // The price of buying now
   unsigned char buy_2_sub; // The offset of buy 1 and buy 2 price
   unsigned char buy_3_sub; // The offset of buy 1 and buy 3 price
   unsigned long buy_1_volume;
   unsigned long buy_2_volume;
   unsigned long buy_3_volume;
   unsigned int sell_1_price; // The price of selling now
   unsigned char sell_2_add; // The offset of sell 1 and sell 2 price
   unsigned char sell_3_add; // The offset of sell 1 and sell 3 price
   unsigned long sell_1_volume;
   unsigned long sell_2_volume;
   unsigned long sell_3_volume;
   unsigned int refx;
   unsigned int refy;
   unsigned int hisfptr;
   unsigned int numppg;
   unsigned char pgnum;
   unsigned int hisptr00;
   unsigned int hisptr01;
   unsigned int hisptr02;
   unsigned int hisptr03;
   unsigned int hisptr04;
   unsigned int hisptr05;
   unsigned int hisptr06;
   unsigned int hisptr07;
   unsigned int hisptr08;
   unsigned int hisptr09;
   unsigned int data_tag5;
   unsigned long cur_volume;
   unsigned char reserved1[12];
   unsigned int minfptr;
   unsigned int minsize;
   unsigned long data_tag6;
   unsigned long out_volume;
   unsigned char reserved2[133];
   unsigned char data_tag7; // always 07
   unsigned char reserved3[145];
   unsigned char end_hour;
   unsigned char end_minute;
   unsigned int lastmin_vol;
   unsigned int data_tag8;
   unsigned long total_volume3;
   unsigned int cur_price;
   unsigned long average_price;
   unsigned char reserved4[82];
   };
  
   /* SLON data structure from MR.ZHAO BIAO
  
   Lonhs.dat结构分析(QB)
   位置  长度  类型    说明
   1   2   INTEGER  ******************
   2   1   STRING   标志,FF->delete 64->ok
   3   4   LONG    股票代码
   4   8   STRING   股票名称
   5   1   STRING   00-> ? *****************
   6   2   INTEGER  64-> ? *****************
   7   2   INTEGER  前收盘价
   8   2   INTEGER  开盘价
   9   4   LONG    五日均量
   10   2   INTEGER  最高价
   11   2   INTEGER  最低价
   12   2   INTEGER  收盘价
  
  

图文卡与钱龙分析软件接口规范
  
   第一章 系统概述
  
   系统的物理结构
  
   股票分析软件 Lonsd.exe(单机版)
  
   驱动程序 Driver.exe(TSR)
  
   操作系统 DOS3.30 or High
  
   硬件平台 PC + 数据接收机
  
   数据接收机可有多种实现方式,典型的有:
  
   VBI(图文电视)方式
  
   RDS(调频副载波)方式
  
   MODEM(调制解调器)方式
  
   可视图文方式
  
   X.25方式
  
   股票分析软件Lonsd.exe通过驱动程序Diver.exe访问股票的行情数据,与不同的接收方式或硬件平台无关,而每一种数据接收机均需一个特殊的驱动程序Diver.exe以保证数据的正常接收。驱动程序Diver.exe为一常驻内存程序(TSR),负责实时数据的接收。所有的数据接收机的硬件生产厂商需提供用户针对该接收机的驱动程序Diver.exe,并保证能接收到本规范所定义的钱龙动态股票分析软件所需要的数据项,用户即可使用钱龙公司出品的最新股票分析单机版软件。实时数据发射端和数据接收机之间的通讯协定由数据接收机的硬件生产厂商决定,只须满足速度及稳定性要求即可。
  
   系统的配置需求
  
   CPU 80386、80486 or Pretium
  
   Memory >=2M, Free Memory>=1.6M( 建议>=4M)
  
   Display Standard VGA 640*480 16色
  
   DOS VER3.30 or High(建议使用SmartDrv.exe)
  
   TLOOS 钱龙公司天生赢家Winnegro专用软件狗一个
  
   接收速度 建议>=1 记录数/秒
  
   第二章 动态单机版工作流程
  
   驱动程序Diver.exe和分析软件Lonsd.exe的共用数据区
  
   共用数据区由BIOS通讯区和行情数据区两部分组成。BIOS通讯区由硬件类型、硬件机号、行情类型、数据区地址(段地址和偏移量),数据区记录首指针、尾指针和Diver驻留标志等元素组成。行情数据区以队列方式存放,每条启示为96个字节,共有256条记录,记录格式见第三章。
  
   驱动程序Diver.exe的工作流程
  
   非驻留部分:
  
   初始化,检查硬件-数据接收机是否存在。
  
   接收所有股票的基本资料,建立证券名称对照表(需存盘,含各种指数),证券名称对照表见第三章,证券名称对照表按类别(type)排序,相同类别则按股票代号排序。
  
   初始化BIOS通讯区,置硬件类型、硬件机号和行情类型、数据区段地址、偏移置和Diver驻留标志均需为0。
  
   驻留部分:
  
   Driver驻留标志置为0xaa,检查分析软件是否启动,即判断数据区内存地址是否已置好。
  
   若好,则接收数据。若当前数据首指针为n,则将行情数据写至(数据区内存地址+n*88)位置,然后置数据首指针置为n+1。(当n=255时,数据首指针置为0)。
  
   若数据区内存地址为0,则停止接收数据。
  
   分析软件Lonsd.exe的工作流程
  
   检查是否已安装驱动程序,若是则申请数据区内存,置数据区内存地址。
  
   将数据区首指针和尾指针置为0。
  
   接收股票行情数据:判断首指针是否等于尾指针,若不等,设当前尾指针为m,则从(数据区内存地址+m*88)读一条记录,然后置数据尾指针置为m+1。(当m=255时,数据尾指针置为0)。
  
   进入分析系统,循环处理第3条。
  
   退出分析软件后将数据区内存地址重新置为0。
  
   第三章 数据区、数据包及数据文件格式
  
   BIOS通讯区数据表
  
   硬件类型 0040:00f0 byte 1 Driver 不能为0
  
   硬件机号 0040:00f1-00f5 5byte 5 Driver  
  
   行情类型 0040:00f6-00f7 16bit 1 Driver 最多为16种
  
   数据区段地址 0040:00f8-00f9 word 1 Lonsd  
  
   数据区偏移地址 0040:00fa-00fb word 1 Lonsd  
  
   记录首指针 0040:00fc byte 1 Lonsd 由Driver改变
  
   记录尾指针 0040:00fd byte 1 Lonsd 由Lonsd改变
  
   汇金指标 0040:00fe byte 1 无  
  
   Driver驻留标志 0040:00ff byte 1 Driver 已驻留为0xaa
  
   总计 0040:00f0-00ff   16    
  
   注:1、当汇金指标的值<=0f时,其值等于0,新股增加采用插入方式,其值等于1,新股增加采用代码表的方式,即使用exe目录下的NameTbl.Sha、NameTbl.Sza。
  
   2、当汇金指标的值>0f时,则表示接收行情的方式当ax=0时,使用软中断接收行情,当ax=1时,使用硬中断接收行情0,并使用exe目录下的NameTbl.Sha、NameTbl.Sza。
  
   指数数据包
  
   数据包类型 type char 1 证券类型
  
   证券代码 code(6) char 6  
  
   昨日收盘 close long 4  
  
   今日开盘 open long 4  
  
   今日最高 high long 4  
  
   今日最低 low long 4  
  
   今日最新 new long 4  
  
   总买盘量 vbuy long 4 可忽略
  
   总卖盘量 bsell long 4 可忽略
  
   总成交量 volume long 4 单位:百股
  
   成交金额 amount long 4 单位:百元
  
   总家数 total int 2 可忽略
  
   日期 date long 4 可忽略
  
   时间 time Long 4 可忽略
  
   保留 reserved(34) Char 34  
  
   校验码 chksum Char 1  
  
   股票名称 name Char 8  
  
   总计     96  
  
   个股数据包
  
   数据包类型 type Char 1 证券类型
  
   证券代码 code(6) Char 6  
  
   昨日收盘 close Long 4  
  
   今日开盘 open Long 4  
  
   今日最高 high Long 4  
  
   今日最低 low Long 4  
  
   今日最新 new Long 4  
  
   买盘价1 pbuy1 Long 4  
  
   买盘量1 vbuy1 Long 4  
  
   买盘价2 pbuy2 Long 4  
  
   买盘量2 vbuy2 Long 4  
  
   买盘价3 pbuy3 Long 4  
  
   买盘量3 vbuy3 Long 4  
  
   卖盘价1 psell1 Long 4  
  
   卖盘量1 vsell1 Long 4  
  
   卖盘价2 psell2 Long 4  
  
   卖盘量2 vsell2 Long 4  
  
   卖盘价3 psell3 Long 4  
  
   卖盘量3 vsell3 Long 4  
  
   总成交量 volume Long 4 单位:股
  
   成交金额 amount Long 4 单位:元
  
   校验码 chksum Char 1  
  
   股票名称 name Char 8  
  
   总计     96  
  
   信息数据包
  
   数据包类型 type Char 1  
  
   时间 time Int 2 如12:59表示为1259
  
   流水号 sieralno Int 2 信息编号(0-9999)
  
   提供者 provider Char 14 信息来源
  
   总块数 totblock Int 2  
  
   块号 blockno Int 2 块号=0时为信息标题
  
   信息内容 content(64) Char 64 每块信息为64字节
  
   校验码 chksum Char 1  
  
   总计     88  
  
   证券名称对照表NameTbl.Sha NameTbl.Szn
  
   证券类型 type Char 1 Bit7为标志位
  
   证券代码 code(6) Char 6 不满8位填空格
  
   证券名称 name(8) Char 8  
  
   最小交易单位 unit Char 1 每手股数/10
  
   总计     16  
  
   注意事项
  
   所有股票的价格及指数的值均为实际值乘1000。股票的成交金额以元为单位,成交量(买卖盘)以股数为单位。指数的成交金额以百元为单位,成交量(买卖盘)以百股为单位。
  
   日期的表示:如1996年1月1日为19960101(长整型)。
  
   B股的价格单位:上交所为美元,深交所为港元,因此在计算B股指数的成交金额时必须乘上汇率,否则会导致B股成交金额和大盘成交金额有误差。
  
   信息数据包块号=0时的内容为该信息的标题。信息的正文块号从1开始。
  
   两个证券名称对照表文件的目录分别为\ML30\DATA\SHASE\NameTbl.Sha和\ML30\DATA\SZNSE\NameTbl.Sza。
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:35 | 显示全部楼层
分析家DAD格式前20个字节为头信息:

1~4        为安装数据的标识(33 FC 19 8C)
5~8        为 ?? ?? ?? ?? 未知
9~12        为本文件的股票数
13~16        为00 00 00 00
17~20        为FF FF FF FF


对于单日的安装数据

标识(33 FC 19 8C) ?? ?? ?? ?? 本文件的股票数 00 00 00 00
FF FF FF FF SHXX(SZXX) XXXX(XX 00 00) 00(00 00 00)|(重复上一只股票的最低价的后三位,不指逻辑上的,如果是第一只则用40 00 00)
?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
日期 开盘价 最高价 最低价
收盘价 成交量(手) 成交额(元) ?? ?? ?? ??
FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

对于多日的安装数据

标识(33 FC 19 8C) ?? ?? ?? ?? 本文件的股票数 00 00 00 00
FF FF FF FF SHXX(SZXX) XXXX(XX 00 00) 00(00 00 00)|(重复上一只股票的最低价的后三位,不指逻辑上的,如果是第一只则用40 00 00)
?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
日期 开盘价 最高价 最低价
收盘价 成交量(手) 成交额(元) ?? ?? ?? ??
日期 开盘价 最高价 最低价
收盘价 成交量(手) 成交额(元) ?? ?? ?? ??
日期 开盘价 最高价 最低价
收盘价 成交量(手) 成交额(元) ?? ?? ?? ??
日期 开盘价 最高价 最低价
收盘价 成交量(手) 成交额(元) ?? ?? ?? ??
日期 开盘价 最高价 最低价
收盘价 成交量(手) 成交额(元) ?? ?? ?? ??
FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


每个日K线为36字节

time_t        Date;        //日期,UCT方式
float        OPen;        //开盘(元)
float        High;        //最高价(元)
float        Low;        //最低价(元)
float        Close;        //收盘(元)
float        Money;        //成交量(手)
float        Volume;        //成交额(元)
float        Nouse1;        //未用
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 2 天

 楼主| 发表于 2005-4-23 13:37 | 显示全部楼层
以上是抛砖引玉,以方便大家使用和交流。
金币:
奖励:
热心:
注册时间:
2004-3-2

回复 使用道具 举报

签到天数: 1 天

发表于 2005-4-23 14:05 | 显示全部楼层
做个各种数据相互转换的软件就好了.
金币:
奖励:
热心:
注册时间:
2003-7-9

回复 使用道具 举报

发表于 2005-4-23 14:08 | 显示全部楼层
很想学,但基础都没有,我看不懂.

谢谢你.
金币:
奖励:
热心:
注册时间:
2004-9-25

回复 使用道具 举报

ljl88900 该用户已被删除
发表于 2005-4-23 15:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
金币:
奖励:
热心:
注册时间:

回复 使用道具 举报

发表于 2005-4-23 16:20 | 显示全部楼层
Originally posted by aaawxm at 2005-4-23 14:05
做个各种数据相互转换的软件就好了.

:*22*::*22*::*22*:
金币:
奖励:
热心:
注册时间:
2003-3-3

回复 使用道具 举报

发表于 2005-4-23 16:24 | 显示全部楼层
Originally posted by lylyl at 2005-4-23 13:37
以上是抛砖引玉,以方便大家使用和交流。

:*9*::*9*::*9*:
金币:
奖励:
热心:
注册时间:
2003-3-3

回复 使用道具 举报

ljl88900 该用户已被删除
发表于 2005-4-23 18:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
金币:
奖励:
热心:
注册时间:

回复 使用道具 举报

发表于 2005-4-23 19:41 | 显示全部楼层
d6 cd 2f 01 是16进制数 012fcdd6,  用计算器转换一下就可以得到19910102

-------
楼上的钱龙3.0版数据存储格式里,有以下一句:
"1-4字节为日期,D6 CD 2F 01转换为十进制是:19910102 "
请问高手:19910102 数据是怎么转化过来的,在进制转换方面我不熟悉,请大家指教(请列出转换表达式即可)。
谢谢!
参与人数 2 +5 时间 理由
ljl88900 + 3 2005-4-24 08:43
lylyl + 2 2005-4-24 00:37

查看全部评分

金币:
奖励:
热心:
注册时间:
2004-2-5

回复 使用道具 举报

签到天数: 1 天

发表于 2005-4-23 19:56 | 显示全部楼层
参与人数 1 +2 时间 理由
lylyl + 2 2005-4-24 00:38

查看全部评分

金币:
奖励:
热心:
注册时间:
2002-5-20

回复 使用道具 举报

签到天数: 1006 天

发表于 2005-4-24 00:23 | 显示全部楼层
支持这个帖子,辛苦楼主把各个帖子的资料集中在一起!:)
金币:
奖励:
热心:
注册时间:
2003-12-31

回复 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站声明:1、本站所有广告均与MACD无关;2、MACD仅提供交流平台,网友发布信息非MACD观点与意思表达,因网友发布的信息造成任何后果,均与MACD无关。
MACD俱乐部(1997-2019)官方域名:macd.cn   MACD网校(2006-2019)官方域名:macdwx.com
值班热线[9:00—17:30]:18292674919   24小时网站应急电话:18292674919
找回密码、投诉QQ:89918815 友情链接QQ:95008905 广告商务联系QQ:17017506 电话:18292674919
增值电信业务经营许可证: 陕ICP19026207号—2  陕ICP备20004035号

举报|意见反馈|Archiver|手机版|小黑屋|MACD俱乐部 ( 陕ICP备20004035号 )

GMT+8, 2024-4-28 04:49 , Processed in 0.077508 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表