期货数据服务器以及取数据接口
期货数据服务器使用期货、期权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; };
请求响应异步调用,x64库同样不区分debug/release,支持任何vs版本。
https://files.cnblogs.com/files/rmdmn/FutureDataClientApi.rar