代码拉取完成,页面将自动刷新
#include "mdspi.h"
#include <iostream>
using namespace std;
MdSpi::MdSpi(QObject *parent) : QObject(parent)
{
this->setParent(parent);
}
MdSpi::~MdSpi()
{
}
void MdSpi::OnFrontConnected()
{
cout << "行情建立网络连接成功" << endl;
CThostFtdcReqUserLoginField loginReq;
memset(&loginReq, 0, sizeof(loginReq));
strcpy(loginReq.BrokerID, "9999");
strcpy(loginReq.UserID, "000001");
static int requestID = 0;
int result = g_pMdUserApi->ReqUserLogin(&loginReq, ++requestID);
if (!result)
cout << "行情发送登录请求成功" << endl;
else
cerr << "行情发送登录请求失败" << endl;
}
void MdSpi::OnRspUserLogin(CThostFtdcRspUserLoginField* pRspUserLogin, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast)
{
bool bResult = pRspInfo && (pRspInfo->ErrorID != 0);
if (!bResult) {
cout << "行情账户登录成功" << endl;
cout << "交易日: " << pRspUserLogin->TradingDay << endl;
g_pMdUserApi->SubscribeMarketData(ppInstrumentID, iInstrumentId);
}
else
cerr << "返回错误--->>> ErrorID=" << pRspInfo->ErrorID << ", ErrorMsg=" << pRspInfo->ErrorMsg << endl;
}
void MdSpi::OnRspSubMarketData(CThostFtdcSpecificInstrumentField* pSpecificInstrument, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast)
{
bool bResult = pRspInfo && (pRspInfo->ErrorID != 0);
if (!bResult) {
cout << "订阅行情成功" << endl;
cout << "合约代码: " << pSpecificInstrument->InstrumentID << endl;
cout << "ErrorMsg " << pRspInfo->ErrorMsg << endl;
cout << "nRequestID " <<nRequestID << endl;
cout << "bIsLast " << bIsLast << endl;
}
else
cerr << "返回错误--->>> ErrorID=" << pRspInfo->ErrorID << ", ErrorMsg=" << pRspInfo->ErrorMsg << endl;
}
void MdSpi::OnRtnDepthMarketData(CThostFtdcDepthMarketDataField* pDepthMarketData)
{
QString dm = pDepthMarketData->InstrumentID;
QString updatetime = pDepthMarketData->UpdateTime;
QString lastprice = QString::number(pDepthMarketData->LastPrice);
QString buyprice = QString::number(pDepthMarketData->BidPrice1);
QString buyvol = QString::number(pDepthMarketData->BidVolume1);
QString sellprice = QString::number(pDepthMarketData->AskPrice1);
QString sellvol = QString::number(pDepthMarketData->AskVolume1);
QString zf = QString::number(((pDepthMarketData->LastPrice-pDepthMarketData->PreClosePrice)*100/pDepthMarketData->PreClosePrice),'f',2);
QString vol = QString::number(pDepthMarketData->Volume);
QString zt = QString::number(pDepthMarketData->UpperLimitPrice);
QString dt = QString::number(pDepthMarketData->LowerLimitPrice);
QString HqTick = dm +","+ updatetime +","+lastprice +","+buyprice +","+buyvol +","+sellprice +","+sellvol +","+zf +","+vol +","+zt +","+dt;
emit sendData(HqTick);
}
void MdSpi::OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
cout<<pRspInfo->ErrorMsg<<endl;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。