期貨數據服務器以及取數據接口


期貨數據服務器使用期貨、期權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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM