zoukankan      html  css  js  c++  java
  • 期货数据服务器以及取数据接口

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

  • 相关阅读:
    linux驱动开发学习一:创建一个字符设备
    如何高效的对有序数组去重
    找到缺失的第一个正整数
    .NET不可变集合已经正式发布
    中国人唯一不认可的成功——就是家庭的和睦,人生的平淡【转】
    自己动手搭建 MongoDB 环境,并建立一个 .NET HelloWorld 程序测试
    ASP.NET MVC 中如何用自定义 Handler 来处理来自 AJAX 请求的 HttpRequestValidationException 错误
    自己动手搭建 Redis 环境,并建立一个 .NET HelloWorld 程序测试
    ServiceStack 介绍
    一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL
  • 原文地址:https://www.cnblogs.com/rmdmn/p/11212756.html
Copyright © 2011-2022 走看看