Files
QTradeProgram/include/FTInterface.h

478 lines
16 KiB
C
Raw Normal View History

2025-08-15 15:57:31 +08:00
#pragma once
#include "tool.h"
#include <QObject>
#include <QCoreapplication>
#include <QDebug>
#include "PrecisionTimer.h"
#include "..\Sqbase\qorderprocessor.h"
#include "..\Sqbase\OrderBookParser.h"
class ReplyCodeItem;
struct ReplyCodeItem {
QString stockCode; // <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>
//QString stockName; // <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>
//double orderPrice; // <20><><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD>
double stockQuantityTh; // <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
//int orderCount; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//QString orderType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (BID/ASK)
//QDateTime orderTime; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
};
class CFTInterface :public QObject,public FTSPI_Qot, public FTSPI_Trd, public FTSPI_Conn
{
Q_OBJECT
public:
CFTInterface();
~CFTInterface();
public:
bool bConnected;
public:
FTAPI_Qot *m_pQotApi;
int m_ReplySerialNo;
int m_GetStaticInfoSerialNo;
void getSecurityStaticInfo(string strCode);
int m_GetIpoListSerialNo;
void getIpoListInfo();
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
int m_GetPlateSetSerialNo;
void getPlateSetSerial();
public:
Futu::u32_t m_StockFilterSerialNo;
int m_nPagenumber;
void getAllStock_HK();
Futu::u32_t m_SubSerialNo;
Futu::u32_t m_GetBasicQotSerialNo;
Futu::u32_t m_GetOrderBookSerialNo;
QMap<QString, float> m_replyCodeQuantity;
QList<QSharedPointer<ReplyCodeItem>> m_codeList;
void subStock();
void setReplyList(QList<QSharedPointer<ReplyCodeItem>> & replyCodes) ;
QOrderProcessor processor;
signals:
void InitConnect(QString str);
void DisConnect(QString str);
void SecurityStaticInfo(QString str);
void RequestHistoryKL(QString str);
void PlateSetSerial(QByteArray data);
void AllStock_HK(QByteArray data);
public:
/******************** FTSPI_Conn ********************************/
/**
* @brief <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram pConn <EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
* @param nErrCode <EFBFBD><EFBFBD><EFBFBD><EFBFBD>32λΪFTAPI_ConnectFailType<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32λΪϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>32λΪFTAPI_InitFail<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32λΪFTAPI_InitFailType<EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>
* @param strDesc <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual void OnInitConnect(FTAPI_Conn* pConn, Futu::i64_t nErrCode, const char* strDesc);
bool InitConn(); // <20><><EFBFBD><EFBFBD> Futu OPenD
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ӶϿ<EFBFBD>
* @praram pConn <EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
* @param nErrCode <EFBFBD><EFBFBD>32λΪFTAPI_ConnectFailType<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD>32λΪϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual void OnDisConnect(FTAPI_Conn* pConn, Futu::i64_t nErrCode) {};
void DisConn();
/******************** FTSPI_Conn ********************************/
/******************** FTSPI_Trd ********************************/
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD>б<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetAccList.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetAccList(Futu::u32_t nSerialNo, const Trd_GetAccList::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_UnlockTrade.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_UnlockTrade(Futu::u32_t nSerialNo, const Trd_UnlockTrade::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_SubAccPush.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_SubAccPush(Futu::u32_t nSerialNo, const Trd_SubAccPush::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>˻<EFBFBD><EFBFBD>ʽ<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetFunds.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetFunds(Futu::u32_t nSerialNo, const Trd_GetFunds::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>˻<EFBFBD><EFBFBD>ֲ<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetPositionList.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetPositionList(Futu::u32_t nSerialNo, const Trd_GetPositionList::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetMaxTrdQtys.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetMaxTrdQtys(Futu::u32_t nSerialNo, const Trd_GetMaxTrdQtys::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetOrderList.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetOrderList(Futu::u32_t nSerialNo, const Trd_GetOrderList::Response &stRsp) {};
/**
* @brief <EFBFBD>µ<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_PlaceOrder.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_PlaceOrder(Futu::u32_t nSerialNo, const Trd_PlaceOrder::Response &stRsp) {};
/**
* @brief <EFBFBD>޸Ķ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_ModifyOrder.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_ModifyOrder(Futu::u32_t nSerialNo, const Trd_ModifyOrder::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ճɽ<EFBFBD><EFBFBD>б<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetOrderFillList.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetOrderFillList(Futu::u32_t nSerialNo, const Trd_GetOrderFillList::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetHistoryOrderList.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetHistoryOrderList(Futu::u32_t nSerialNo, const Trd_GetHistoryOrderList::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetMarginRatio.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetMarginRatio(Futu::u32_t nSerialNo, const Trd_GetMarginRatio::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ʷ<EFBFBD>ɽ<EFBFBD><EFBFBD>б<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_GetHistoryOrderFillList.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetHistoryOrderFillList(Futu::u32_t nSerialNo, const Trd_GetHistoryOrderFillList::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD>Trd_GetOrderFee.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetOrderFee(Futu::u32_t nSerialNo, const Trd_GetOrderFee::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_UpdateOrder.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdateOrder(const Trd_UpdateOrder::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Trd_UpdateOrderFill.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdateOrderFill(const Trd_UpdateOrderFill::Response &stRsp) {};
/******************** FTSPI_Trd ********************************/
/******************** FTSPI_Qot ********************************/
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD>״̬
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>GetGlobalState.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetGlobalState(Futu::u32_t nSerialNo, const GetGlobalState::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_Sub.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_Sub(Futu::u32_t nSerialNo, const Qot_Sub::Response &stRsp) ;
/**
* @brief ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_RegQotPush.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_RegQotPush(Futu::u32_t nSerialNo, const Qot_RegQotPush::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetSubInfo.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetSubInfo(Futu::u32_t nSerialNo, const Qot_GetSubInfo::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetTicker.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetTicker(Futu::u32_t nSerialNo, const Qot_GetTicker::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetBasicQot.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetBasicQot(Futu::u32_t nSerialNo, const Qot_GetBasicQot::Response &stRsp) ;
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetOrderBook.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetOrderBook(Futu::u32_t nSerialNo, const Qot_GetOrderBook::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡK<EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetKL.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetKL(Futu::u32_t nSerialNo, const Qot_GetKL::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ʱ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetRT.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetRT(Futu::u32_t nSerialNo, const Qot_GetRT::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetBroker.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetBroker(Futu::u32_t nSerialNo, const Qot_GetBroker::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>DB
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_RequestRehab.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_RequestRehab(Futu::u32_t nSerialNo, const Qot_RequestRehab::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷK<EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>DB
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_RequestHistoryKL.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_RequestHistoryKL(Futu::u32_t nSerialNo, const Qot_RequestHistoryKL::Response &stRsp) ;
void getRequestHistoryKL();
Futu::u32_t m_RequestHistoryKLSerialNo;
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ʷK<EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_RequestHistoryKLQuota.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_RequestHistoryKLQuota(Futu::u32_t nSerialNo, const Qot_RequestHistoryKLQuota::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetTradeDate.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetTradeDate(Futu::u32_t nSerialNo, const Qot_GetTradeDate::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD>Ϣ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetStaticInfo.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetStaticInfo(Futu::u32_t nSerialNo, const Qot_GetStaticInfo::Response &stRsp);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetSecuritySnapshot.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetSecuritySnapshot(Futu::u32_t nSerialNo, const Qot_GetSecuritySnapshot::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µİ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetPlateSet.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetPlateSet(Futu::u32_t nSerialNo, const Qot_GetPlateSet::Response &stRsp);
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĹ<EFBFBD>Ʊ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetPlateSecurity.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetPlateSecurity(Futu::u32_t nSerialNo, const Qot_GetPlateSecurity::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ع<EFBFBD>Ʊ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetReference.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetReference(Futu::u32_t nSerialNo, const Qot_GetReference::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetOwnerPlate.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetOwnerPlate(Futu::u32_t nSerialNo, const Qot_GetOwnerPlate::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><EFBFBD>ֹɱ<EFBFBD>б<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetHoldingChangeList.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetHoldingChangeList(Futu::u32_t nSerialNo, const Qot_GetHoldingChangeList::Response &stRsp) {};
/**
* @brief ɸѡ<EFBFBD><EFBFBD>Ȩ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetOptionChain.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetOptionChain(Futu::u32_t nSerialNo, const Qot_GetOptionChain::Response &stRsp) {};
/**
* @brief ɸѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetWarrant.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetWarrant(Futu::u32_t nSerialNo, const Qot_GetWarrant::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetCapitalFlow.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetCapitalFlow(Futu::u32_t nSerialNo, const Qot_GetCapitalFlow::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>ʽ<EFBFBD><EFBFBD>ֲ<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetCapitalDistribution.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetCapitalDistribution(Futu::u32_t nSerialNo, const Qot_GetCapitalDistribution::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ѡ<EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĹ<EFBFBD>Ʊ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetUserSecurity.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetUserSecurity(Futu::u32_t nSerialNo, const Qot_GetUserSecurity::Response &stRsp) {};
/**
* @brief <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĹ<EFBFBD>Ʊ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_ModifyUserSecurity.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_ModifyUserSecurity(Futu::u32_t nSerialNo, const Qot_ModifyUserSecurity::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_StockFilter.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_StockFilter(Futu::u32_t nSerialNo, const Qot_StockFilter::Response &stRsp) ;
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetCodeChange.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetCodeChange(Futu::u32_t nSerialNo, const Qot_GetCodeChange::Response &stRsp) {};
/**
* @brief <EFBFBD>¹<EFBFBD>IPO
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetIpoList.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetIpoList(Futu::u32_t nSerialNo, const Qot_GetIpoList::Response &stRsp) {};
/**
* @brief <EFBFBD>ڻ<EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetFutureInfo.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetFutureInfo(Futu::u32_t nSerialNo, const Qot_GetFutureInfo::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>г<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_RequestTradeDate.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_RequestTradeDate(Futu::u32_t nSerialNo, const Qot_RequestTradeDate::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_SetPriceReminder.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_SetPriceReminder(Futu::u32_t nSerialNo, const Qot_SetPriceReminder::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetPriceReminder.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetPriceReminder(Futu::u32_t nSerialNo, const Qot_GetPriceReminder::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ѡ<EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetUserSecurityGroup.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetUserSecurityGroup(Futu::u32_t nSerialNo, const Qot_GetUserSecurityGroup::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD>г<EFBFBD>״̬
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetMarketState.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetMarketState(Futu::u32_t nSerialNo, const Qot_GetMarketState::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_GetOptionExpirationDate.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnReply_GetOptionExpirationDate(Futu::u32_t nSerialNo, const Qot_GetOptionExpirationDate::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Notify.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_Notify(const Notify::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_UpdateTicker.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdateTicker(const Qot_UpdateTicker::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_UpdateBasicQot.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdateBasicQot(const Qot_UpdateBasicQot::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_UpdateOrderBook.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdateOrderBook(const Qot_UpdateOrderBook::Response &stRsp);
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>K<EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_UpdateKL.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdateKL(const Qot_UpdateKL::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ʱ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_UpdateRT.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdateRT(const Qot_UpdateRT::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD>
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_UpdateBroker.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdateBroker(const Qot_UpdateBroker::Response &stRsp) {};
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨ
* @praram nSerialNo <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
* @param stRsp <EFBFBD>ذ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD>Qot_UpdatePriceReminder.protoЭ<EFBFBD><EFBFBD>
*/
virtual void OnPush_UpdatePriceReminder(const Qot_UpdatePriceReminder::Response &stRsp) {};
/******************** FTSPI_Qot ********************************/
};