47d8f1d0d3
同时对vn.trader的CTA模块进行了一些修改。
195 lines
6.4 KiB
C++
195 lines
6.4 KiB
C++
void MdApi::processFrontConnected(Task task)
|
|
{
|
|
PyLock lock;
|
|
this->onFrontConnected();
|
|
};
|
|
|
|
void MdApi::processFrontDisconnected(Task task)
|
|
{
|
|
PyLock lock;
|
|
this->onFrontDisconnected(task.task_id);
|
|
};
|
|
|
|
void MdApi::processRspUserLogin(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPRspUserLoginField task_data = any_cast<CKSOTPRspUserLoginField>(task.task_data);
|
|
dict data;
|
|
data["MaxOrderRef"] = task_data.MaxOrderRef;
|
|
data["UserID"] = task_data.UserID;
|
|
data["TradingDay"] = task_data.TradingDay;
|
|
data["SessionID"] = task_data.SessionID;
|
|
data["SystemName"] = task_data.SystemName;
|
|
data["FrontID"] = task_data.FrontID;
|
|
data["BrokerID"] = task_data.BrokerID;
|
|
data["LoginTime"] = task_data.LoginTime;
|
|
data["SSETime"] = task_data.SSETime;
|
|
|
|
CKSOTPRspInfoField task_error = any_cast<CKSOTPRspInfoField>(task.task_error);
|
|
dict error;
|
|
error["ErrorMsg"] = task_error.ErrorMsg;
|
|
error["ErrorID"] = task_error.ErrorID;
|
|
|
|
this->onRspUserLogin(data, error, task.task_id, task.task_last);
|
|
};
|
|
|
|
void MdApi::processRspUserLogout(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPUserLogoutField task_data = any_cast<CKSOTPUserLogoutField>(task.task_data);
|
|
dict data;
|
|
data["UserID"] = task_data.UserID;
|
|
data["BrokerID"] = task_data.BrokerID;
|
|
|
|
CKSOTPRspInfoField task_error = any_cast<CKSOTPRspInfoField>(task.task_error);
|
|
dict error;
|
|
error["ErrorMsg"] = task_error.ErrorMsg;
|
|
error["ErrorID"] = task_error.ErrorID;
|
|
|
|
this->onRspUserLogout(data, error, task.task_id, task.task_last);
|
|
};
|
|
|
|
void MdApi::processRspError(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPRspInfoField task_error = any_cast<CKSOTPRspInfoField>(task.task_error);
|
|
dict error;
|
|
error["ErrorMsg"] = task_error.ErrorMsg;
|
|
error["ErrorID"] = task_error.ErrorID;
|
|
|
|
this->onRspError(error, task.task_id, task.task_last);
|
|
};
|
|
|
|
void MdApi::processRspSubMarketData(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPSpecificInstrumentField task_data = any_cast<CKSOTPSpecificInstrumentField>(task.task_data);
|
|
dict data;
|
|
data["InstrumentID"] = task_data.InstrumentID;
|
|
data["ExchangeID"] = task_data.ExchangeID;
|
|
|
|
CKSOTPRspInfoField task_error = any_cast<CKSOTPRspInfoField>(task.task_error);
|
|
dict error;
|
|
error["ErrorMsg"] = task_error.ErrorMsg;
|
|
error["ErrorID"] = task_error.ErrorID;
|
|
|
|
this->onRspSubMarketData(data, error, task.task_id, task.task_last);
|
|
};
|
|
|
|
void MdApi::processRspUnSubMarketData(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPSpecificInstrumentField task_data = any_cast<CKSOTPSpecificInstrumentField>(task.task_data);
|
|
dict data;
|
|
data["InstrumentID"] = task_data.InstrumentID;
|
|
data["ExchangeID"] = task_data.ExchangeID;
|
|
|
|
CKSOTPRspInfoField task_error = any_cast<CKSOTPRspInfoField>(task.task_error);
|
|
dict error;
|
|
error["ErrorMsg"] = task_error.ErrorMsg;
|
|
error["ErrorID"] = task_error.ErrorID;
|
|
|
|
this->onRspUnSubMarketData(data, error, task.task_id, task.task_last);
|
|
};
|
|
|
|
void MdApi::processRspSubForQuoteRsp(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPSpecificInstrumentField task_data = any_cast<CKSOTPSpecificInstrumentField>(task.task_data);
|
|
dict data;
|
|
data["InstrumentID"] = task_data.InstrumentID;
|
|
data["ExchangeID"] = task_data.ExchangeID;
|
|
|
|
CKSOTPRspInfoField task_error = any_cast<CKSOTPRspInfoField>(task.task_error);
|
|
dict error;
|
|
error["ErrorMsg"] = task_error.ErrorMsg;
|
|
error["ErrorID"] = task_error.ErrorID;
|
|
|
|
this->onRspSubForQuoteRsp(data, error, task.task_id, task.task_last);
|
|
};
|
|
|
|
void MdApi::processRspUnSubForQuoteRsp(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPSpecificInstrumentField task_data = any_cast<CKSOTPSpecificInstrumentField>(task.task_data);
|
|
dict data;
|
|
data["InstrumentID"] = task_data.InstrumentID;
|
|
data["ExchangeID"] = task_data.ExchangeID;
|
|
|
|
CKSOTPRspInfoField task_error = any_cast<CKSOTPRspInfoField>(task.task_error);
|
|
dict error;
|
|
error["ErrorMsg"] = task_error.ErrorMsg;
|
|
error["ErrorID"] = task_error.ErrorID;
|
|
|
|
this->onRspUnSubForQuoteRsp(data, error, task.task_id, task.task_last);
|
|
};
|
|
|
|
void MdApi::processRtnDepthMarketData(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPDepthMarketDataField task_data = any_cast<CKSOTPDepthMarketDataField>(task.task_data);
|
|
dict data;
|
|
data["HighestPrice"] = task_data.HighestPrice;
|
|
data["BidPrice5"] = task_data.BidPrice5;
|
|
data["BidPrice4"] = task_data.BidPrice4;
|
|
data["BidPrice1"] = task_data.BidPrice1;
|
|
data["BidPrice3"] = task_data.BidPrice3;
|
|
data["BidPrice2"] = task_data.BidPrice2;
|
|
data["LowerLimitPrice"] = task_data.LowerLimitPrice;
|
|
data["OpenPrice"] = task_data.OpenPrice;
|
|
data["AskPrice5"] = task_data.AskPrice5;
|
|
data["AskPrice4"] = task_data.AskPrice4;
|
|
data["AskPrice3"] = task_data.AskPrice3;
|
|
data["PreClosePrice"] = task_data.PreClosePrice;
|
|
data["AskPrice1"] = task_data.AskPrice1;
|
|
data["PreSettlementPrice"] = task_data.PreSettlementPrice;
|
|
data["AskVolume1"] = task_data.AskVolume1;
|
|
data["UpdateTime"] = task_data.UpdateTime;
|
|
data["UpdateMillisec"] = task_data.UpdateMillisec;
|
|
data["AveragePrice"] = task_data.AveragePrice;
|
|
data["BidVolume5"] = task_data.BidVolume5;
|
|
data["BidVolume4"] = task_data.BidVolume4;
|
|
data["BidVolume3"] = task_data.BidVolume3;
|
|
data["BidVolume2"] = task_data.BidVolume2;
|
|
data["PreOpenInterest"] = task_data.PreOpenInterest;
|
|
data["AskPrice2"] = task_data.AskPrice2;
|
|
data["Volume"] = task_data.Volume;
|
|
data["AskVolume3"] = task_data.AskVolume3;
|
|
data["AskVolume2"] = task_data.AskVolume2;
|
|
data["AskVolume5"] = task_data.AskVolume5;
|
|
data["AskVolume4"] = task_data.AskVolume4;
|
|
data["UpperLimitPrice"] = task_data.UpperLimitPrice;
|
|
data["BidVolume1"] = task_data.BidVolume1;
|
|
data["InstrumentID"] = task_data.InstrumentID;
|
|
data["ClosePrice"] = task_data.ClosePrice;
|
|
data["ExchangeID"] = task_data.ExchangeID;
|
|
data["TradingDay"] = task_data.TradingDay;
|
|
data["PreDelta"] = task_data.PreDelta;
|
|
data["OpenInterest"] = task_data.OpenInterest;
|
|
data["CurrDelta"] = task_data.CurrDelta;
|
|
data["Turnover"] = task_data.Turnover;
|
|
data["LastPrice"] = task_data.LastPrice;
|
|
data["SettlementPrice"] = task_data.SettlementPrice;
|
|
data["ExchangeInstID"] = task_data.ExchangeInstID;
|
|
data["LowestPrice"] = task_data.LowestPrice;
|
|
data["ActionDay"] = task_data.ActionDay;
|
|
|
|
this->onRtnDepthMarketData(data);
|
|
};
|
|
|
|
void MdApi::processRtnForQuoteRsp(Task task)
|
|
{
|
|
PyLock lock;
|
|
CKSOTPForQuoteRspField task_data = any_cast<CKSOTPForQuoteRspField>(task.task_data);
|
|
dict data;
|
|
data["InstrumentID"] = task_data.InstrumentID;
|
|
data["ActionDay"] = task_data.ActionDay;
|
|
data["ExchangeID"] = task_data.ExchangeID;
|
|
data["TradingDay"] = task_data.TradingDay;
|
|
data["ForQuoteSysID"] = task_data.ForQuoteSysID;
|
|
data["ForQuoteTime"] = task_data.ForQuoteTime;
|
|
|
|
this->onRtnForQuoteRsp(data);
|
|
};
|
|
|