欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Qt開發(fā)獲取CTP量化交易接口測試數(shù)據(jù)工具

 更新時(shí)間:2024年04月22日 08:48:59   作者:長沙紅胖子Qt  
這篇文章主要為大家詳細(xì)介紹了如何使用Qt軟件開發(fā)K線股P相關(guān)軟件,先開發(fā)一個(gè)通過CTP量化交易的sdk獲取相關(guān)推送數(shù)據(jù)的工具,需要的可以參考下

需求

使用Qt軟件開發(fā)K線股P相關(guān)軟件,先開發(fā)一個(gè)通過CTP量化交易的sdk獲取相關(guān)推送數(shù)據(jù)的工具(當(dāng)前深度行情數(shù)據(jù))。

注意

采集數(shù)據(jù)測試

1.晚上9點(diǎn)以后可以采集到數(shù)據(jù)

2.工作日 上午9:00 — 10:15,10:30 — 11:30,下午13:30 — 15:00

Demo

  

VS移植過程QtCreator

將vs的開發(fā)demo,調(diào)用sdk,遷移至QtCreator的IDE進(jìn)行模塊化的開發(fā),便于設(shè)計(jì)軟件構(gòu)架、模塊化封裝和多工程測試。 

功能描述v1.0.0 注冊(cè)登錄服務(wù)器后臺(tái)開始按鈕注冊(cè)訂閱結(jié)束按鈕取消訂閱導(dǎo)出抓取得文本數(shù)據(jù)

模塊化部署  

關(guān)鍵源碼

TestSdkWidget異步多線程初始化

void TestSdkWidget::initControl()
{
    // 初始化sdk管理類
    {
        // 線程初始化
        _pStockSdkManager = StockSdkManager::getInstance();
        _pStockSdkManagerThread = new QThread();
        _pStockSdkManager->moveToThread(_pStockSdkManagerThread);
        connect(_pStockSdkManagerThread, SIGNAL(started()),
                _pStockSdkManager, SLOT(slot_start()));
        // 關(guān)聯(lián)
        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();                               // 線程關(guān)閉

public slots:
    void slot_startGetInfo();                       // 注冊(cè)抓取數(shù)據(jù)(注冊(cè)合約ID)
    void slot_stopGetInfo();                        // 注銷注冊(cè)停止獲取

private:
    static StockSdkManager *_pInstance;
    static QMutex _mutex;

private:
    bool _running;

private:
    CThostFtdcMdApi* _pMdapi;                       // 合約api
    MdSpi *_pMdSpi;                                 // 合約處理(重載類)
};


#endif // STOCKSDKMANAGER_H

MdSpi.h:合約處理類(重載函數(shù)獲取處理數(shù)據(jù))

#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 

入坑

入坑一:無法停止獲取 問題

點(diǎn)擊停止獲取

原因

調(diào)用sdk的join函數(shù)進(jìn)入庫內(nèi)部線程循環(huán),此時(shí)調(diào)用join處阻塞。

處理

管理類子線程調(diào)用join,那么join阻塞該線程,調(diào)用注冊(cè)和注銷在管理類外直接調(diào)用。 

以上就是基于Qt開發(fā)獲取CTP量化交易接口測試數(shù)據(jù)工具的詳細(xì)內(nèi)容,更多關(guān)于Qt獲取CTP量化交易數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • QT使用QML實(shí)現(xiàn)地圖繪制虛線的示例代碼

    QT使用QML實(shí)現(xiàn)地圖繪制虛線的示例代碼

    QML提供了MapPolyline用于在地圖上繪制線段,這篇文章主要為大家詳細(xì)介紹了QT如何使用QML實(shí)現(xiàn)在地圖上繪制虛線,需要的小伙伴可以參考一下
    2023-07-07
  • C++圖解單向鏈表類模板和iterator迭代器類模版詳解

    C++圖解單向鏈表類模板和iterator迭代器類模版詳解

    這篇文章主要為大家詳細(xì)介紹了C++圖解單向鏈表類模板和iterator迭代器類模版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++ 字符串去重排序?qū)嵗a

    C++ 字符串去重排序?qū)嵗a

    這篇文章主要介紹了C++ 字符串去重排序?qū)嵗a的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • c++如何實(shí)現(xiàn)跳表(skiplist)

    c++如何實(shí)現(xiàn)跳表(skiplist)

    這篇文章主要介紹了c++如何實(shí)現(xiàn)跳表,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • c++11 chrono全面解析(最高可達(dá)納秒級(jí)別的精度)

    c++11 chrono全面解析(最高可達(dá)納秒級(jí)別的精度)

    chrono是c++ 11中的時(shí)間庫,本文就來詳細(xì)的介紹一下chrono庫的具體使用,關(guān)鍵是理解里面時(shí)間段(Durations)、時(shí)間點(diǎn)(Time points)的概念,感興趣的可以了解一下
    2021-11-11
  • C語言實(shí)現(xiàn)通訊錄功能

    C語言實(shí)現(xiàn)通訊錄功能

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)通訊錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C語言中的const和free用法詳解

    C語言中的const和free用法詳解

    C語言中的const和C++中的const是有區(qū)別的,而且在使用VS編譯測試的時(shí)候,如果是C的話,請(qǐng)一定要建立一個(gè)后綴為C的文件,不要是CPP的文件。因?yàn)?,兩個(gè)編譯器會(huì)有差別的。下面通過本文給大家分享C語言中的const和free用法,感興趣的朋友一起看看吧
    2017-04-04
  • 如何判斷一個(gè)整數(shù)的二進(jìn)制中有多少個(gè)1

    如何判斷一個(gè)整數(shù)的二進(jìn)制中有多少個(gè)1

    本篇文章是對(duì)如何判斷一個(gè)整數(shù)的二進(jìn)制中有多少個(gè)1的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言循環(huán)鏈表的原理與使用操作

    C語言循環(huán)鏈表的原理與使用操作

    無論是靜態(tài)鏈表還是動(dòng)態(tài)鏈表,有時(shí)在解決具體問題時(shí),需要我們對(duì)其結(jié)構(gòu)進(jìn)行稍微地調(diào)整。比如,可以把鏈表的兩頭連接,使其成為了一個(gè)環(huán)狀鏈表,通常稱為循環(huán)鏈表
    2022-05-05
  • C語言實(shí)現(xiàn)矩陣翻轉(zhuǎn)(上下翻轉(zhuǎn)、左右翻轉(zhuǎn))

    C語言實(shí)現(xiàn)矩陣翻轉(zhuǎn)(上下翻轉(zhuǎn)、左右翻轉(zhuǎn))

    這篇文章主要介紹了C語言實(shí)現(xiàn)矩陣翻轉(zhuǎn)(上下翻轉(zhuǎn)、左右翻轉(zhuǎn))的相關(guān)資料,需要的朋友可以參考下
    2017-05-05

最新評(píng)論