亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

需求

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

注意

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

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

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

Demo

  

VS移植過(guò)程QtCreator

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

功能描述v1.0.0 注冊(cè)登錄服務(wù)器后臺(tái)開(kā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)));
        // 開(kāi)始
        _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();                              // 線程開(kāi)啟
    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 

入坑

入坑一:無(wú)法停止獲取 問(wèn)題

點(diǎn)擊停止獲取

原因

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

處理

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

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

相關(guān)文章

最新評(píng)論