股票行情实时接收.(100分)

  • 主题发起人 主题发起人 nnscccn
  • 开始时间 开始时间
N

nnscccn

Unregistered / Unconfirmed
GUEST, unregistred user!
用万能数据引擎III之类的接收,请问该怎样解决?是否要自己编写一个接口程序?最好能给出
示例程序.
 
服务器在哪里呢????

呵呵~~~~~~~~~~~~~~~~~~~~~
>> 是否要自己编写一个接口程序?
如果对方给了你接口或你知道就编个咯!!!
 
描述清楚你的问题
 
同上,别人要钱的哦
 
万能数据引擎III,可以用于分析家等软件的实时行情接收,现在我自己编一个程序,引用它的数据,该怎么做?如果不知道万能数据引擎,可以到网上查一下,它给出了接口规范.
/****************************************************************************************
* 在注册库的 HKEY_LOCAL_MACHINE/SOFTWARE/StockDrv 下 *
* Driver = "驱动DLL全路径" *
* *
****************************************************************************************/
// 工作方式类型定义
#define RCV_WORK_DEMAND 0 // 查询接口,方式一
#define RCV_WORK_MEMSHARE 2 // 内存共享直接引用,方式二
#define RCV_WORK_SENDMSG 4 // 版本 2 建议使用的方式
// 其他工作方式保留

// 消息类型
#define RCV_REPORT 0x3f001234
#define RCV_FILEDATA 0x3f001235

#define TS_StockDrv_IdTxt "BoyaNet_StockDrv_3.00" // 《投资家》万能接口特征串

//==================================== 数据结构 =================================================
// 证券市场
#define SH_MARKET_EX 'HS' // 上海证券
#define SZ_MARKET_EX 'ZS' // 深圳证券
#define CZ_MARKET_EX 'ZC' // 郑州商品
#define DL_MARKET_EX 'LD' // 大连商品
#define SF_MARKET_EX 'FS' // 上海商品
#define SM_MARKET_EX 'MS' // 上海金属
#define CE_MARKET_EX 'EC' // 亚洲指数
#define CB_MARKET_EX 'BC' // CBOT
#define CC_MARKET_EX 'CC' // 软商品
#define MC_MARKET_EX 'CM' // C M X
#define IM_MARKET_EX 'MI' // 外汇期货
#define LM_MARKET_EX 'ML' // L M E
#define NY_MARKET_EX 'YN' // NYSE
#define AI_MARKET_EX 'IA' // 亚洲期指
#define WH_MARKET_EX 'HW' // 外汇交易
#define XH_MARKET_EX 'HX' // 欧美指数
#define CM_MARKET_EX 'MC' // C M E
#define NF_MARKET_EX 'FN' // 欧美期指
#define NM_MARKET_EX 'MN' // 石油产品
#define LC_MARKET_EX 'CL' // 巴黎油籽
#define LI_MARKET_EX 'IL' // 马来西亚
#define SI_MARKET_EX 'IS' // 温尼伯格
#define HS_MARKET_EX 'SH' // H S I
#define HK_MARKET_EX 'HK' // 香港股票
#define ZJ_MARKET_EX 'JZ' // ZJFE

// 文ZJFE件数据类型
// 结构数组形式的文件数据
#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 FILE_TYPE_RES -1 // 保留

// 消息子类型
#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_ERRRATE 4 // 取信道误码
#define RI_STKNUM 5 // 取上市股票总家数
#define RI_SUPPORTEXTHQ 6 // 是否支持JSJ格式

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


//////////////////////////////////////////////////////////////////////////////////
//行情数据
typedef struct tagRCV_REPORT_STRUCTEx //通视Ver1.0行情结构
{
WORD m_wMarket; // 股票市场类型
char m_szLabel[STKLABEL_LEN]; // 股票代码,以'/0'结尾
char m_szName[STKNAME_LEN]; // 股票名称,以'/0'结尾

float YClose; // 昨收
float Open; // 今开
float High; // 最高
float Low; // 最低
float New; // 最新
float Vol; // 成交量 (股票:手,期贷:合约,外汇:无)
float Amount; // 成交额

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;

typedef struct tagNEW_RCV_REPORT_STRUCTEx //通视Ver2.0行情结构
{
WORD m_cbSize; // 结构大小
time_t m_time; // 交易时间
WORD m_wMarket; // 股票市场类型
char m_szLabel[STKLABEL_LEN]; // 股票代码,以'/0'结尾
char m_szName[STKNAME_LEN]; // 股票名称,以'/0'结尾

float YClose; // 昨收
float Open; // 今开
float High; // 最高
float Low; // 最低
float New; // 最新
float Vol; // 成交量 (股票:手,期贷:合约,外汇:无)
float Amount; // 成交额

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

} NEW_RCV_REPORT_STRUCTEx;

//////////////////////////////////////////////////////////////////////////////////
//补充数据头
//数据头 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_FileTime = 基本面资料文件创建日期
// m_wDataType == FILE_NEWS_EX
// m_dwAttrib = 消息来源,m_szFileName 包含目录的文件名,目录名为消息来源
// m_dwSerialNo = 序列号
// 如: "上交所消息//0501Z012.TXT","新兰德//XLD0001.TXT"
// m_wDataType == FILE_HTML_EX
// m_dwAttrib 保留,m_szFileName为URL
// m_wDataType == FILE_SOFTWARE_EX
// m_dwAttrib 分析软件类型,用于初步判断
// m_szFileName 分析软件 ID 特征字符串 + '//' + 文件名
// 如 "TongShi//TS//RECEIVE//RECEIVE.EXE",
// ID 特征字符串为 "TongShi","TS//RECEIVE//RECEIVE.EXE" 为文件名
// 特征字符串 和 文件名及其含义由分析软件商定义
// 注二:
// 数据文件循环播出,每个文件有唯一的序列号,以避免重复接收
typedef struct tagRCV_FILE_HEADEx
{
DWORD m_dwAttrib; // 文件子类型
DWORD m_dwLen; // 文件长度
union {
DWORD m_dwSerialNo; // 序列号,对股评
time_t m_FileTime; // 文件创建时间
};
char m_szFileName[MAX_PATH]; // 文件名 or URL
} RCV_FILE_HEADEx;

//////////////////////////////////////////////////////////////////////////////////
// 数据通知消息
//查询方式通知消息
// wParam = MsgPara_StkData 有股票数据
// wParam = MsgPara_File 有文件数据文件
//直接数据引用通知消息
// wParam = RCV_WPARAM;
// lParam 指向 RCV_DATA结构;
// 返回 1 已经处理,0 未处理或不能处理,目前该返回值被忽略

// 注一:
// 记录数表示行情数据和补充数据(包括 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
{
NEW_RCV_REPORT_STRUCTEx * m_pReportEx;
RCV_REPORT_STRUCTEx * m_pReport;
RCV_HISTORY_STRUCTEx * m_pDay;
RCV_MINUTE_STRUCTEx * m_pMinute;
RCV_POWER_STRUCTEx * m_pPower;
void * m_pData; // 参见注二
};
} RCV_DATA;

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

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

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

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

//////////////////////////////////////////////////////////////////////////////////
// 行情接口

// 取已接收到的股票总数
//int WINAPI GetTotalNumber();
int WINAPI GetTotalNumber();

/////////////////////////////////////////////////////////////////////////////////////
// 扩展行情接口

// 由序号取股票数据(扩展)
// 入口参数:
// nNo 序号
// pBuf 存放股票数据的缓冲区
// 返回参数:
// NoStockData 无股票数据
// 注:
// 该函数提供股票数据的主要数据;分析软件刚运行时,可以快速建立数据框架
//int WINAPI GetStockByNoEx(int nNo,RCV_REPORT_STRUCTEx * pBuf);
int WINAPI GetStockByNoEx(int nNo,RCV_REPORT_STRUCTEx * pBuf);

// 由股号取股票数据(扩展)
// 入口参数:
// pszStockCode股票代号
// nMarket 证券市场
// pBuf 存放股票数据的缓冲区
// 返回参数:
// NoStockData 无股票数据
// 注:
// 该函数提供股票数据的主要数据;分析软件刚运行时,可以快速建立数据框架
//int WINAPI GetStockByCodeEx(char * pszStockCode,int nMarket,RCV_REPORT_STRUCTEx * pBuf);
int WINAPI GetStockByCodeEx(char * pszStockCode,int nMarket,RCV_REPORT_STRUCTEx * pBuf);

//取下一新股票数据
// 入口参数:
// pBuf 存放股票数据的缓冲区
// 返回参数:
// NoStockData 无股票数据
// 注:
// 该函数返回最新的股票数据,包含各字段数据
//int WINAPI GetNewStockDataEx(RCV_REPORT_STRUCTEx * pBuf);
int WINAPI GetNewStockDataEx(RCV_REPORT_STRUCTEx * pBuf);

// 扩展文件接口
// 入口参数:
// pHeader 补充数据头 或 文件头
// pHeader.m_pData 指向数据缓冲区
// 返回参数:
// 数据文件长度,== 0,表示无数据
// 注:
// 若 pHeader == NULL 则只返回文件长度,以便分配内存,不拷贝数据.
//int WINAPI GetNextFileEx(RCV_DATA * pHeader);
int WINAPI GetNextFileEx(RCV_DATA * pHeader);

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

// 取得股票驱动信息
// 入口参数:
// nInfo 索引
// pBuf 缓冲区
// 出口参数:
// nInfo == RI_IDSTRING, 返回特征字符串长度,pBuf 为特征字符串
// 如: "BoyaNet_StockDrv_3.00"
// nInfo == RI_IDCODE, 返回信息卡 ID 号,pBuf 为字符串形式的 ID 号
// 如: 0x78001234 "78001234"
// nInfo == RI_VERSION, 返回信息卡版本号,pBuf 为字符串版本
// 如: 3.00 "3.00"
// nInfo == RI_ERRRATE, 取信道误码,
// nInfo == RI_STKNUM, 取上市股票总家数
//DWORD WINAPI GetStockDrvInfo(int nInfo,void * pBuf);
DWORD WINAPI GetStockDrvInfo(int nInfo,void * pBuf);

#ifdef __cplusplus
}
#endif
现在我想知道怎么编程接收?
 
这是C的头文件
 
多人接受答案了。
 
后退
顶部