期货数据服务器使用期货、期权tick数据接收软件在共享内存中提供的tick数据,实时生成k线,并且给客户端提供无缝数据服务。
功能如下:
1、合约属性。
2、合约指数表。
3、合约主力表。
4、可交易合约。
5、交易日。
6、大宗商品指数。
7、指数原始价格。
8、常规K线。
9、tick数据同步。
10、K线校验。
服务器基于boost::asio,支持自动重连、自动分包粘包。
贴下数据接口代码:
#pragma once
#if defined(ISLIB)
#define LIB_NETWORK_EXPORT __declspec(dllexport)
#else
#define LIB_NETWORK_EXPORT
#endif // (ISLIB)
#include "protocol_define.h"
#include "user_define_struct.h"
class CFutureDataClientSpi
{
public:
///当客户端与服务端连接时(还未登录),该方法被调用
virtual void OnRspConnect() {};
///断开服务端连接
virtual void OnRspDisConnect() {};
///交易日
virtual void OnRspTradingDay(int* pDate, bool bLast) {};
///合约属性
virtual void OnRspInstrumentProperty(const SinstrumentProperty* p, bool bLast) {};
///大宗商品
virtual void OnRspCommodity(const Scommodity* p, bool bLast) {};
///原始价格
virtual void OnRspOriginalPrice(const Soriginal* p, bool bLast) {};
///可交易合约
virtual void OnRspTradingCode(CThostFtdcInstrumentField* p, bool bLast) {};
///指数
virtual void OnRspIndexTable(const CThostFtdcDepthMarketDataField* p, bool bLast) {};
///主力
virtual void OnRspMainTable(SmainSubMain* p, bool bLast) {};
///K线回报
virtual void OnRspKline(const char* pCode, int nCycle, Skline* kline, bool bLast) {};
///Tick回报
virtual void OnRspSyscTick(int nDate, const char* pName, const char* pFile, bool bLast) {};
///历史K线回报
virtual void OnRspSyscKline(const char* pCode, int nCycle, Skline* kline, bool bLast) {};
///历史交易日
virtual void OnRspHistoryTradingDay(int nDate, bool bLast) {};
///历史主力次主力
virtual void OnRspHistoryMainSubMain(SmainSubMain* p, bool bLast) {};
///初始化成功
virtual void OnInitOK() {};
///错误请求
virtual void OnErrorMsg(const char* pMsg, bool bLast) {};
private:
};
class LIB_NETWORK_EXPORT CFutureDataClientApi
{
public:
static CFutureDataClientApi* CreateNetWorkApi();
///注册回调接口
///@param p 派生自回调接口类的实例
virtual void RegistSpi(CFutureDataClientSpi* p) = 0;
///连接数据服务器
///@param nPort 端口
///@param pAddress IP地址
virtual void ConnectService(unsigned int nPort, const char* pAddress) = 0;
///登录账户
///@param user 用户名
///@param password 密码
virtual void Login(const char* user, const char* password) = 0;
///销毁
virtual void Release() = 0;
///请求合约属性
virtual void ReqInstrumentProperty() = 0;
///请求大宗商品
virtual void ReqCommodity() = 0;
///请求原始价格
virtual void ReqOriginalPrice() = 0;
///求交易日
virtual void ReqTradingDay() = 0;
///可交易合约
virtual void ReqTradingCode() = 0;
///主力合约
virtual void ReqMainTable() = 0;
///指数合约
virtual void ReqIndexTable() = 0;
///请求结束
virtual void ReqOver() = 0;
///请求K线
virtual void ReqCommonKline(SreqKline* pReq) = 0;
///请求同步tick
virtual void ReqSyscTick(SreqTick* pReq) = 0;
///请求同步k线
virtual void ReqSyscKline(SreqKline* pReq) = 0;
///请求同步历史交易日
virtual void ReqHistoryTradingday() = 0;
///请求同步历史主力
virtual void ReqHistoryMain(SreqHistoryMain* pReq) = 0;
};