期货数据服务器以及取数据接口

期货数据服务器使用期货、期权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

posted @ 2019-07-19 13:34  股市的小黄花  阅读(3376)  评论(0编辑  收藏  举报