• 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

    //最后执行。

     

  • 相关阅读:
    sap业务伙伴分组后台配置的问题
    软件测试的学习笔记(5)
    scanf(“%s“, filename);这里的scanf函数中,“,”逗号符号后面什么时候需要用“&”这个符号,什么时候不需要用这个“&”符号?
    剑指 Offer 68 - II. 二叉树的最近公共祖先
    如何使用ChatGPT构建一个Web应用程序?
    Kotlin语言数组,Map集合的学习
    【JAVA高级】——封装JDBC中的DaoUtils工具类(Object类型方法)
    关于计算机丢失MSVCP140.dll是什么意思?MSVCP140.dll缺失的5个解决方案分享
    数据库主从切换过程中Druid没法获取连接错误
    K8S集群Pod资源自动扩缩容方案
  • 原文地址:https://blog.csdn.net/Q_121463726/article/details/126503271