项目实战:Qt获取CTP量化交易接口测试数据工具 v1.0.0(获取深度行情数据、订阅取消订阅)

若该文为原创文章,转载请注明出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/137937666

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

Qt开发专栏:项目实战(点击传送门)


需求

  使用Qt软件开发K线股P相关软件,先开发一个通过CTP量化交易的sdk获取相关推送数据的工具(当前深度行情数据)。


注意

  采集数据测试

  • 1.晚上9点以后可以采集到数据
  • 2.工作日 上午9:00 — 10:15,10:30 — 11:30,下午13:30 — 15:00

Demo

  请添加图片描述
  请添加图片描述

  在这里插入图片描述

  在这里插入图片描述

windows运行包下载地址

 CSDNf粉丝0积分下载:https://download.csdn.net/download/qq21497936/89165596
 QQ群:博客首页扫码进入QQ技术群,点击**“文件”搜索“testCTPSdk”**,群内与博文同步更新)


VS移植过程QtCreator

  将vs的开发demo,调用sdk,迁移至QtCreator的IDE进行模块化的开发,便于设计软件构架、模块化封装和多工程测试。
  在这里插入图片描述
  在这里插入图片描述


功能描述v1.0.0

  • 注册登录服务器后台
  • 开始按钮注册订阅
  • 结束按钮取消订阅
  • 导出抓取得文本数据

模块化部署

  在这里插入图片描述


关键源码

TestSdkWidget异步多线程初始化


void TestSdkWidget::initControl()
{// 初始化sdk管理类{// 线程初始化_pStockSdkManager = StockSdkManager::getInstance();_pStockSdkManagerThread = new QThread();_pStockSdkManager->moveToThread(_pStockSdkManagerThread);connect(_pStockSdkManagerThread, SIGNAL(started()),_pStockSdkManager, SLOT(slot_start()));// 关联connect(_pStockSdkManager, SIGNAL(signal_stateLog(QString)),this, SLOT(slot_stateLog(QString)));// 开始_pStockSdkManagerThread->start();}// 按钮使能ui->pushButton_start->setEnabled(true);ui->pushButton_stop->setEnabled(false);
}

StockSdkManager.h

#ifndef STOCKSDKMANAGER_H
#define STOCKSDKMANAGER_H#include <QObject>
#include <QMutex>#include "MdSpi.h"class StockSdkManager : public QObject
{Q_OBJECT
private:explicit StockSdkManager(QObject *parent = 0);public:static StockSdkManager * getInstance();         // 单例获取指针signals:void signal_stateLog(QString logStr);           // 日志抛出public slots:void slot_start();                              // 线程开启void slot_stop();                               // 线程关闭public slots:void slot_startGetInfo();                       // 注册抓取数据(注册合约ID)void slot_stopGetInfo();                        // 注销注册停止获取private:static StockSdkManager *_pInstance;static QMutex _mutex;private:bool _running;private:CThostFtdcMdApi* _pMdapi;                       // 合约apiMdSpi *_pMdSpi;                                 // 合约处理(重载类)
};#endif // STOCKSDKMANAGER_H

MdSpi.h:合约处理类(重载函数获取处理数据)

#ifndef MDSPI_H
#define MDSPI_H#include <QObject>#include "ThostFtdcMdApi.h"
#include "ThostFtdcUserApiStruct.h"class MdSpi : public CThostFtdcMdSpi
{
public:MdSpi();~MdSpi();public:CThostFtdcMdApi *getMdapi() const;public:void setMdapi(CThostFtdcMdApi *pMdapi);public:virtual void OnFrontConnected();virtual void OnFrontDisconnected(int nReason);virtual void OnRspUserLogin(CThostFtdcRspUserLoginField* pRspUserLogin, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast);virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField* pDepthMarketData);private:CThostFtdcMdApi* _pMdapi;private:CThostFtdcDepthMarketDataField _preTick;
};#endif // MDSPI_H

工程模板v1.0.0

  在这里插入图片描述


入坑

入坑一:无法停止获取

问题

  点击停止获取

原因

  调用sdk的join函数进入库内部线程循环,此时调用join处阻塞。

处理

  管理类子线程调用join,那么join阻塞该线程,调用注册和注销在管理类外直接调用。
  在这里插入图片描述

  在这里插入图片描述


若该文为原创文章,转载请注明出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/137937666

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/651181.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抽象的代理模式1.0版本

前言&#xff1a; 在阅读Spring Security官方文档时&#xff0c;里面设计到了一种设计模式——代理模式Proxy 众里寻她千百度&#xff0c;蓦然回首&#xff0c;那人却在灯火阑珊处 开始 在之前的文章里陈述了一个观点——编程语言和语言没有区别 现看看我们日常生活中的代理…

Java之复制图片

从文件夹中复制图片 从这个文件夹&#xff1a; 复制到这个空的文件夹&#xff1a; 代码如下&#xff1a; import java.io.*; import java.util.Scanner;/*** 普通文件的复制*/public class TestDome10 {public static void main(String[] args) {// 输入两个路径// 从哪里(源路…

智慧养猪场视频AI智能监控与可视化管理方案

在科技日新月异的今天&#xff0c;智能化、自动化已成为众多行业追求的方向。养猪业作为传统农业的重要组成部分&#xff0c;同样迎来了技术革新的春风。特别是随着人们对食品安全等问题的日益关注&#xff0c;养猪场视频监控监管方案的智能化升级显得尤为重要。 养猪场视频智…

用过最佳的wordpress模板

西瓜红&#xff0c;作为一种充满活力和激情的颜色&#xff0c;总是能给人留下深刻的印象。当这种鲜艳的色彩与经典的设计元素相结合时&#xff0c;就能打造出一款既时尚又实用的WordPress企业模板。今天&#xff0c;我们向您隆重推荐这款西瓜红经典配色WordPress企业模板。 这…

18种WEB常见漏洞:揭秘网络安全的薄弱点

输入验证漏洞: 认证和会话管理漏洞: 安全配置错误: 其他漏洞: 防范措施: Web 应用程序是现代互联网的核心&#xff0c;但它们也容易受到各种安全漏洞的影响。了解常见的 Web 漏洞类型&#xff0c;对于开发人员、安全测试人员和普通用户都至关重要。以下将介绍 18 种常见的 …

最受站长欢迎的wordpress模板

蓝色与黄色&#xff0c;作为经典的互补色&#xff0c;它们在企业网站设计中总能碰撞出令人印象深刻的火花。当这两种鲜艳的色彩巧妙结合时&#xff0c;不仅能够吸引访客的注意力&#xff0c;还能传达出一种活力四射、积极向上的企业形象。 今天&#xff0c;我们为您推荐的这款…

vue实现周日历 日历按周切换 vue日程管理

实现的功能 1、点击今天&#xff1a;回到今日日期并选中今日日期&#xff0c;查当天数据 2、点击左箭头&#xff1a;切换上一周 3、点击右箭头&#xff1a;切换下一周 4、黄圆圈代表有日程提醒&#xff0c;点击选中&#xff0c;下方对应显示当前日程提醒的内容&#xff0c;没有…

【论文笔记 | 异步联邦】PORT:How Asynchronous can Federated Learning Be?

1. 论文信息 How Asynchronous can Federated Learning Be?2022 IEEE/ACM 30th International Symposium on Quality of Service (IWQoS). IEEE, 2022&#xff0c;不属于ccf认定 2. introduction 2.1. 背景&#xff1a; 现有的异步FL文献中设计的启发式方法都只反映设计空…

c++输入年月日,计算是该年的第几天

直接把每个月的天数存到数组直接相加会很方便&#xff0c;不用过多的判断。 注意&#xff1a;润年判断方法&#xff08;可以被4整除但不能被100整除&#xff0c;或者可以被400整除&#xff09; #include <iostream> using namespace std;int main() {int year,month,da…

如何在vue3+vite中优雅的使用iconify图标

前言 从Vue2迁移到Vue3&#xff0c;在使用上有着很大的差别。本文的话主要是针对图标的使用差别上进行分析&#xff0c;同时给出基于iconify图标库中unplugin-icons的用法。这里特殊说明一下&#xff1a;其实element-plus中用到的图标也是基于iconify图标库的&#xff0c;在我们…

创新入门|AI如何个性化重塑B2B营销,五大法宝助您领先市场

人工智能&#xff08;AI&#xff09;在企业对企业&#xff08;B2B&#xff09;营销中的出现&#xff0c;标志着从传统战略向高效、个性化方法的关键转变。 这一演变凸显了人工智能在了解复杂的市场动态和客户偏好方面的重要性&#xff0c;为建立更有针对性、以结果为导向的营销…

人工智能如何提高公司效率的 5 种方法

人工智能是当今最热门的话题之一&#xff0c;但并不是每个人都了解其对商业的价值规模。由此可见&#xff0c;现有的AI技术可以将企业的生产力提升40%。 在机器学习的帮助下&#xff0c;Netflix 利用自动化个性化推荐每年赚取 10 亿美元。当公司使用人工智能时&#xff0c;34%…