在Linux系统下用C++实现CTP接收存储合tick行情

本文详细介绍了如何使用C++编程语言配合CThostFtdc库实现期货交易系统的MDAPI接口,包括配置文件编写、MdSpi类的实现、登录与行情订阅过程,以及数据处理和文件保存方法。

一、准备工作

  1. 确保你有相应的库文件以及头文件, 没有的可以在这个SimNow仿真交易【官方网站】下载
  2. 确保有接口手册, 这能提高开发效率, ::::::上海期货信息技术有限公司::::::提供了相应chm的下载

二、代码实现

        1. 准备配置文件Config.h

        在其中用宏来代替相应位置的变量, 这样做的好处是方便我们后续修改账户密码, 以及修改想要关注的行情编号

        下面代码的双引号中写上你自己的对应字符串

#ifndef _CONFIG_H
#define _CONFIG_H

// 定义行情服务器地址
#define URL                     ""
// 定义期货公司编号
#define MyBrokerID              ""
// 定义用户账号
#define MyUserID                ""
// 定义用户密码
#define MyPassword              ""
// 定义用户产品信息
#define MyUserProductInfo       ""
// 定义订阅的行情数据
#define SubscribeMarketDatas    { "c2405", "m2405" }
// 用于控制是否在终端打印详细数据, 注销PRINT_DATA则不打印
// #define PRINT_DATA

#endif
         2. 准备MdSpi.h, 在其中定义MdSpi来继承CThostFtdcMdSpi, 以便之后重新其中对应的Spi函数, 来实现我们想要的功能, 函数内对应结构体请自行在chm中查看
class MdSpi : public CThostFtdcMdSpi
{
public:
    // 构造函数, 初始化行情线程
    MdSpi(CThostFtdcMdApi *pMdApi, string path = "./Datas");

    // 析构函数, 释放行情线程
    ~MdSpi();

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

    // 登录请求响应
    void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

    // 订阅行情应答
    void OnRspSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

    // 深度行情通知
    void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData);

private:
    string __savePath;                       // 行情数据保存路径
    CThostFtdcMdApi *__pMdUserApi = nullptr; // CTP行情API指针
    string __tradingDay;                   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值