• CTP行情推送规则是怎样执行文件的?


    CTP行情推送规则如下:

    (1)1秒2次快照行情。

    (2)有更新才推送,没有更新的合约推送。

    (3)第一次连接后推送初始行情。

    CTP推送行情的基本原则是每秒推送两次,但推送时间(毫秒级)并不是严格的000、500,即有可能推送时间是300、800。

    通过CTP API连上CTP系统后,CTP会惯例的推送一笔最近的行情数据,用于提醒客户端当前市场是否有行情。

    开盘前的集合竞价撮合阶段,交易所也会推送行情。开盘时刻的行情的时间戳可能大于等于500,也可能小于 500。

    互联网环境下,开盘后CTP会推送合约的状态(如开盘后,合约状态更新为连续交易),消息推送时间与开盘后第一笔行情时间几乎是重合的。

    CTP行情推送规则

    3、CTP行情接收

    CTPMarketDataSource.h文件:

    #ifndef CTPMARKETDATASOURCE_H

    #define CTPMARKETDATASOURCE_H

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    #include "ThostFtdcMdApi.h"

    class CTPMarketDataSource : public CThostFtdcMdSpi

    {

    public:

    explicit CTPMarketDataSource(const char* yml);

    void startMarketDataSource();

    ~CTPMarketDataSource();

    public:

    //当客户端与交易后台建立起通信连接时(还未登录前)被调用。

    void OnFrontConnected();

    //当客户端与交易后台通信连接断开时被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。

    //@param nReason 错误原因

    // 0x1001 网络读失败

    // 0x1002 网络写失败

    // 0x2001 接收心跳超时

    // 0x2002 发送心跳失败

    // 0x2003 收到错误报文

    void OnFrontDisconnected(int nReason);

    //心跳超时警告。当长时间未收到报文时,该方法被调用。

    //@param nTimeLapse 距离上次接收报文的时间

    void OnHeartBeatWarning(int nTimeLapse);

    //登录请求响应

    void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin,

    CThostFtdcRspInfoField *pRspInfo,

    int nRequestID, bool bIsLast);

    ///登出请求响应

    void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout,

    CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

    //错误应答

    void OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

    //订阅行情应答

    void OnRspSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument,

    CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

    //取消订阅行情应答

    void OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument,

    CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

    //深度行情通知

    void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData);

    private:

    CThostFtdcMdApi *m_pMdUserApi;

    };

    #endif // CTPMARKETDATASOURCE_H

    //最后执行。

     

  • 相关阅读:
    L2+/L3级智能驾驶功能量产,为何说侧向补盲激光雷达是必备传感器?
    git问题: git@10.18.*.*: Permission denied (publickey,password)
    竟然还有人说ArrayList是2倍扩容,今天带你手撕ArrayList源码
    代码随想录-021-349.两个数组的交集
    终于找到了!Jenkins最全最详细入门指南
    极智开发 | Ant Design 组件库之步骤条
    虾皮shopee官方平台开放api接口采集商品数据信息获取产品详情数据根据关键词推荐获取商品列表、优惠价、销量调试示例
    【刷题之路】LeetCode 2073. 买票需要的时间
    c++ 类中隐藏的六个(c11之后 八个)默认函数
    【SpringBoot】数据访问 —— MySQL
  • 原文地址:https://blog.csdn.net/Q_121463726/article/details/126503271