vnpy/vn.ctp/vnctptd/vnctptd/vnctptd.cpp
2016-03-05 16:29:51 +08:00

10508 lines
318 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// vnctptd.cpp : 定义 DLL 应用程序的导出函数。
//
#include "vnctptd.h"
///-------------------------------------------------------------------------------------
///从Python对象到C++类型转换用的函数
///-------------------------------------------------------------------------------------
void getInt(dict d, string key, int *value)
{
if (d.has_key(key)) //检查字典中是否存在该键值
{
object o = d[key]; //获取该键值
extract<int> x(o); //创建提取器
if (x.check()) //如果可以提取
{
*value = x(); //对目标整数指针赋值
}
}
}
void getDouble(dict d, string key, double *value)
{
if (d.has_key(key))
{
object o = d[key];
extract<double> x(o);
if (x.check())
{
*value = x();
}
}
}
void getStr(dict d, string key, char *value)
{
if (d.has_key(key))
{
object o = d[key];
extract<string> x(o);
if (x.check())
{
string s = x();
const char *buffer = s.c_str();
//对字符串指针赋值必须使用strcpy_s, vs2013使用strcpy编译通不过
//+1应该是因为C++字符串的结尾符号不是特别确定不加这个1会出错
#ifdef _MSC_VER //WIN32
strcpy_s(value, strlen(buffer) + 1, buffer);
#elif __GNUC__
strncpy(value, buffer, strlen(buffer) + 1);
#endif
}
}
}
void getChar(dict d, string key, char *value)
{
if (d.has_key(key))
{
object o = d[key];
extract<string> x(o);
if (x.check())
{
string s = x();
const char *buffer = s.c_str();
*value = *buffer;
}
}
}
///-------------------------------------------------------------------------------------
///C++的回调函数将数据保存到队列中
///-------------------------------------------------------------------------------------
void TdApi::OnFrontConnected()
{
Task task = Task();
task.task_name = ONFRONTCONNECTED;
this->task_queue.push(task);
};
void TdApi::OnFrontDisconnected(int nReason)
{
Task task = Task();
task.task_name = ONFRONTDISCONNECTED;
task.task_id = nReason;
this->task_queue.push(task);
};
void TdApi::OnHeartBeatWarning(int nTimeLapse)
{
Task task = Task();
task.task_name = ONHEARTBEATWARNING;
task.task_id = nTimeLapse;
this->task_queue.push(task);
};
void TdApi::OnRspAuthenticate(CThostFtdcRspAuthenticateField *pRspAuthenticateField, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPAUTHENTICATE;
if (pRspAuthenticateField)
{
task.task_data = *pRspAuthenticateField;
}
else
{
CThostFtdcRspAuthenticateField empty_data = CThostFtdcRspAuthenticateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPUSERLOGIN;
if (pRspUserLogin)
{
task.task_data = *pRspUserLogin;
}
else
{
CThostFtdcRspUserLoginField empty_data = CThostFtdcRspUserLoginField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPUSERLOGOUT;
if (pUserLogout)
{
task.task_data = *pUserLogout;
}
else
{
CThostFtdcUserLogoutField empty_data = CThostFtdcUserLogoutField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspUserPasswordUpdate(CThostFtdcUserPasswordUpdateField *pUserPasswordUpdate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPUSERPASSWORDUPDATE;
if (pUserPasswordUpdate)
{
task.task_data = *pUserPasswordUpdate;
}
else
{
CThostFtdcUserPasswordUpdateField empty_data = CThostFtdcUserPasswordUpdateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspTradingAccountPasswordUpdate(CThostFtdcTradingAccountPasswordUpdateField *pTradingAccountPasswordUpdate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPTRADINGACCOUNTPASSWORDUPDATE;
if (pTradingAccountPasswordUpdate)
{
task.task_data = *pTradingAccountPasswordUpdate;
}
else
{
CThostFtdcTradingAccountPasswordUpdateField empty_data = CThostFtdcTradingAccountPasswordUpdateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPORDERINSERT;
if (pInputOrder)
{
task.task_data = *pInputOrder;
}
else
{
CThostFtdcInputOrderField empty_data = CThostFtdcInputOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspParkedOrderInsert(CThostFtdcParkedOrderField *pParkedOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPPARKEDORDERINSERT;
if (pParkedOrder)
{
task.task_data = *pParkedOrder;
}
else
{
CThostFtdcParkedOrderField empty_data = CThostFtdcParkedOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspParkedOrderAction(CThostFtdcParkedOrderActionField *pParkedOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPPARKEDORDERACTION;
if (pParkedOrderAction)
{
task.task_data = *pParkedOrderAction;
}
else
{
CThostFtdcParkedOrderActionField empty_data = CThostFtdcParkedOrderActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPORDERACTION;
if (pInputOrderAction)
{
task.task_data = *pInputOrderAction;
}
else
{
CThostFtdcInputOrderActionField empty_data = CThostFtdcInputOrderActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQueryMaxOrderVolume(CThostFtdcQueryMaxOrderVolumeField *pQueryMaxOrderVolume, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQUERYMAXORDERVOLUME;
if (pQueryMaxOrderVolume)
{
task.task_data = *pQueryMaxOrderVolume;
}
else
{
CThostFtdcQueryMaxOrderVolumeField empty_data = CThostFtdcQueryMaxOrderVolumeField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPSETTLEMENTINFOCONFIRM;
if (pSettlementInfoConfirm)
{
task.task_data = *pSettlementInfoConfirm;
}
else
{
CThostFtdcSettlementInfoConfirmField empty_data = CThostFtdcSettlementInfoConfirmField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspRemoveParkedOrder(CThostFtdcRemoveParkedOrderField *pRemoveParkedOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPREMOVEPARKEDORDER;
if (pRemoveParkedOrder)
{
task.task_data = *pRemoveParkedOrder;
}
else
{
CThostFtdcRemoveParkedOrderField empty_data = CThostFtdcRemoveParkedOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspRemoveParkedOrderAction(CThostFtdcRemoveParkedOrderActionField *pRemoveParkedOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPREMOVEPARKEDORDERACTION;
if (pRemoveParkedOrderAction)
{
task.task_data = *pRemoveParkedOrderAction;
}
else
{
CThostFtdcRemoveParkedOrderActionField empty_data = CThostFtdcRemoveParkedOrderActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspExecOrderInsert(CThostFtdcInputExecOrderField *pInputExecOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPEXECORDERINSERT;
if (pInputExecOrder)
{
task.task_data = *pInputExecOrder;
}
else
{
CThostFtdcInputExecOrderField empty_data = CThostFtdcInputExecOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspExecOrderAction(CThostFtdcInputExecOrderActionField *pInputExecOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPEXECORDERACTION;
if (pInputExecOrderAction)
{
task.task_data = *pInputExecOrderAction;
}
else
{
CThostFtdcInputExecOrderActionField empty_data = CThostFtdcInputExecOrderActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspForQuoteInsert(CThostFtdcInputForQuoteField *pInputForQuote, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPFORQUOTEINSERT;
if (pInputForQuote)
{
task.task_data = *pInputForQuote;
}
else
{
CThostFtdcInputForQuoteField empty_data = CThostFtdcInputForQuoteField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQuoteInsert(CThostFtdcInputQuoteField *pInputQuote, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQUOTEINSERT;
if (pInputQuote)
{
task.task_data = *pInputQuote;
}
else
{
CThostFtdcInputQuoteField empty_data = CThostFtdcInputQuoteField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQuoteAction(CThostFtdcInputQuoteActionField *pInputQuoteAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQUOTEACTION;
if (pInputQuoteAction)
{
task.task_data = *pInputQuoteAction;
}
else
{
CThostFtdcInputQuoteActionField empty_data = CThostFtdcInputQuoteActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspLockInsert(CThostFtdcInputLockField *pInputLock, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPLOCKINSERT;
if (pInputLock)
{
task.task_data = *pInputLock;
}
else
{
CThostFtdcInputLockField empty_data = CThostFtdcInputLockField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspCombActionInsert(CThostFtdcInputCombActionField *pInputCombAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPCOMBACTIONINSERT;
if (pInputCombAction)
{
task.task_data = *pInputCombAction;
}
else
{
CThostFtdcInputCombActionField empty_data = CThostFtdcInputCombActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryOrder(CThostFtdcOrderField *pOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYORDER;
if (pOrder)
{
task.task_data = *pOrder;
}
else
{
CThostFtdcOrderField empty_data = CThostFtdcOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryTrade(CThostFtdcTradeField *pTrade, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYTRADE;
if (pTrade)
{
task.task_data = *pTrade;
}
else
{
CThostFtdcTradeField empty_data = CThostFtdcTradeField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInvestorPosition(CThostFtdcInvestorPositionField *pInvestorPosition, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINVESTORPOSITION;
if (pInvestorPosition)
{
task.task_data = *pInvestorPosition;
}
else
{
CThostFtdcInvestorPositionField empty_data = CThostFtdcInvestorPositionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryTradingAccount(CThostFtdcTradingAccountField *pTradingAccount, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYTRADINGACCOUNT;
if (pTradingAccount)
{
task.task_data = *pTradingAccount;
}
else
{
CThostFtdcTradingAccountField empty_data = CThostFtdcTradingAccountField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInvestor(CThostFtdcInvestorField *pInvestor, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINVESTOR;
if (pInvestor)
{
task.task_data = *pInvestor;
}
else
{
CThostFtdcInvestorField empty_data = CThostFtdcInvestorField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryTradingCode(CThostFtdcTradingCodeField *pTradingCode, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYTRADINGCODE;
if (pTradingCode)
{
task.task_data = *pTradingCode;
}
else
{
CThostFtdcTradingCodeField empty_data = CThostFtdcTradingCodeField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInstrumentMarginRate(CThostFtdcInstrumentMarginRateField *pInstrumentMarginRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINSTRUMENTMARGINRATE;
if (pInstrumentMarginRate)
{
task.task_data = *pInstrumentMarginRate;
}
else
{
CThostFtdcInstrumentMarginRateField empty_data = CThostFtdcInstrumentMarginRateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInstrumentCommissionRate(CThostFtdcInstrumentCommissionRateField *pInstrumentCommissionRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINSTRUMENTCOMMISSIONRATE;
if (pInstrumentCommissionRate)
{
task.task_data = *pInstrumentCommissionRate;
}
else
{
CThostFtdcInstrumentCommissionRateField empty_data = CThostFtdcInstrumentCommissionRateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryExchange(CThostFtdcExchangeField *pExchange, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYEXCHANGE;
if (pExchange)
{
task.task_data = *pExchange;
}
else
{
CThostFtdcExchangeField empty_data = CThostFtdcExchangeField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryProduct(CThostFtdcProductField *pProduct, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYPRODUCT;
if (pProduct)
{
task.task_data = *pProduct;
}
else
{
CThostFtdcProductField empty_data = CThostFtdcProductField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINSTRUMENT;
if (pInstrument)
{
task.task_data = *pInstrument;
}
else
{
CThostFtdcInstrumentField empty_data = CThostFtdcInstrumentField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYDEPTHMARKETDATA;
if (pDepthMarketData)
{
task.task_data = *pDepthMarketData;
}
else
{
CThostFtdcDepthMarketDataField empty_data = CThostFtdcDepthMarketDataField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQrySettlementInfo(CThostFtdcSettlementInfoField *pSettlementInfo, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYSETTLEMENTINFO;
if (pSettlementInfo)
{
task.task_data = *pSettlementInfo;
}
else
{
CThostFtdcSettlementInfoField empty_data = CThostFtdcSettlementInfoField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryTransferBank(CThostFtdcTransferBankField *pTransferBank, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYTRANSFERBANK;
if (pTransferBank)
{
task.task_data = *pTransferBank;
}
else
{
CThostFtdcTransferBankField empty_data = CThostFtdcTransferBankField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInvestorPositionDetail(CThostFtdcInvestorPositionDetailField *pInvestorPositionDetail, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINVESTORPOSITIONDETAIL;
if (pInvestorPositionDetail)
{
task.task_data = *pInvestorPositionDetail;
}
else
{
CThostFtdcInvestorPositionDetailField empty_data = CThostFtdcInvestorPositionDetailField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryNotice(CThostFtdcNoticeField *pNotice, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYNOTICE;
if (pNotice)
{
task.task_data = *pNotice;
}
else
{
CThostFtdcNoticeField empty_data = CThostFtdcNoticeField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQrySettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYSETTLEMENTINFOCONFIRM;
if (pSettlementInfoConfirm)
{
task.task_data = *pSettlementInfoConfirm;
}
else
{
CThostFtdcSettlementInfoConfirmField empty_data = CThostFtdcSettlementInfoConfirmField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInvestorPositionCombineDetail(CThostFtdcInvestorPositionCombineDetailField *pInvestorPositionCombineDetail, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINVESTORPOSITIONCOMBINEDETAIL;
if (pInvestorPositionCombineDetail)
{
task.task_data = *pInvestorPositionCombineDetail;
}
else
{
CThostFtdcInvestorPositionCombineDetailField empty_data = CThostFtdcInvestorPositionCombineDetailField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryCFMMCTradingAccountKey(CThostFtdcCFMMCTradingAccountKeyField *pCFMMCTradingAccountKey, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYCFMMCTRADINGACCOUNTKEY;
if (pCFMMCTradingAccountKey)
{
task.task_data = *pCFMMCTradingAccountKey;
}
else
{
CThostFtdcCFMMCTradingAccountKeyField empty_data = CThostFtdcCFMMCTradingAccountKeyField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryEWarrantOffset(CThostFtdcEWarrantOffsetField *pEWarrantOffset, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYEWARRANTOFFSET;
if (pEWarrantOffset)
{
task.task_data = *pEWarrantOffset;
}
else
{
CThostFtdcEWarrantOffsetField empty_data = CThostFtdcEWarrantOffsetField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInvestorProductGroupMargin(CThostFtdcInvestorProductGroupMarginField *pInvestorProductGroupMargin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINVESTORPRODUCTGROUPMARGIN;
if (pInvestorProductGroupMargin)
{
task.task_data = *pInvestorProductGroupMargin;
}
else
{
CThostFtdcInvestorProductGroupMarginField empty_data = CThostFtdcInvestorProductGroupMarginField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryExchangeMarginRate(CThostFtdcExchangeMarginRateField *pExchangeMarginRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYEXCHANGEMARGINRATE;
if (pExchangeMarginRate)
{
task.task_data = *pExchangeMarginRate;
}
else
{
CThostFtdcExchangeMarginRateField empty_data = CThostFtdcExchangeMarginRateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryExchangeMarginRateAdjust(CThostFtdcExchangeMarginRateAdjustField *pExchangeMarginRateAdjust, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYEXCHANGEMARGINRATEADJUST;
if (pExchangeMarginRateAdjust)
{
task.task_data = *pExchangeMarginRateAdjust;
}
else
{
CThostFtdcExchangeMarginRateAdjustField empty_data = CThostFtdcExchangeMarginRateAdjustField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryExchangeRate(CThostFtdcExchangeRateField *pExchangeRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYEXCHANGERATE;
if (pExchangeRate)
{
task.task_data = *pExchangeRate;
}
else
{
CThostFtdcExchangeRateField empty_data = CThostFtdcExchangeRateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQrySecAgentACIDMap(CThostFtdcSecAgentACIDMapField *pSecAgentACIDMap, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYSECAGENTACIDMAP;
if (pSecAgentACIDMap)
{
task.task_data = *pSecAgentACIDMap;
}
else
{
CThostFtdcSecAgentACIDMapField empty_data = CThostFtdcSecAgentACIDMapField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryProductExchRate(CThostFtdcProductExchRateField *pProductExchRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYPRODUCTEXCHRATE;
if (pProductExchRate)
{
task.task_data = *pProductExchRate;
}
else
{
CThostFtdcProductExchRateField empty_data = CThostFtdcProductExchRateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryProductGroup(CThostFtdcProductGroupField *pProductGroup, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYPRODUCTGROUP;
if (pProductGroup)
{
task.task_data = *pProductGroup;
}
else
{
CThostFtdcProductGroupField empty_data = CThostFtdcProductGroupField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryOptionInstrTradeCost(CThostFtdcOptionInstrTradeCostField *pOptionInstrTradeCost, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYOPTIONINSTRTRADECOST;
if (pOptionInstrTradeCost)
{
task.task_data = *pOptionInstrTradeCost;
}
else
{
CThostFtdcOptionInstrTradeCostField empty_data = CThostFtdcOptionInstrTradeCostField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryOptionInstrCommRate(CThostFtdcOptionInstrCommRateField *pOptionInstrCommRate, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYOPTIONINSTRCOMMRATE;
if (pOptionInstrCommRate)
{
task.task_data = *pOptionInstrCommRate;
}
else
{
CThostFtdcOptionInstrCommRateField empty_data = CThostFtdcOptionInstrCommRateField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryExecOrder(CThostFtdcExecOrderField *pExecOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYEXECORDER;
if (pExecOrder)
{
task.task_data = *pExecOrder;
}
else
{
CThostFtdcExecOrderField empty_data = CThostFtdcExecOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryForQuote(CThostFtdcForQuoteField *pForQuote, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYFORQUOTE;
if (pForQuote)
{
task.task_data = *pForQuote;
}
else
{
CThostFtdcForQuoteField empty_data = CThostFtdcForQuoteField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryQuote(CThostFtdcQuoteField *pQuote, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYQUOTE;
if (pQuote)
{
task.task_data = *pQuote;
}
else
{
CThostFtdcQuoteField empty_data = CThostFtdcQuoteField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryLock(CThostFtdcLockField *pLock, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYLOCK;
if (pLock)
{
task.task_data = *pLock;
}
else
{
CThostFtdcLockField empty_data = CThostFtdcLockField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryLockPosition(CThostFtdcLockPositionField *pLockPosition, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYLOCKPOSITION;
if (pLockPosition)
{
task.task_data = *pLockPosition;
}
else
{
CThostFtdcLockPositionField empty_data = CThostFtdcLockPositionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryInvestorLevel(CThostFtdcInvestorLevelField *pInvestorLevel, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYINVESTORLEVEL;
if (pInvestorLevel)
{
task.task_data = *pInvestorLevel;
}
else
{
CThostFtdcInvestorLevelField empty_data = CThostFtdcInvestorLevelField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryExecFreeze(CThostFtdcExecFreezeField *pExecFreeze, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYEXECFREEZE;
if (pExecFreeze)
{
task.task_data = *pExecFreeze;
}
else
{
CThostFtdcExecFreezeField empty_data = CThostFtdcExecFreezeField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryCombInstrumentGuard(CThostFtdcCombInstrumentGuardField *pCombInstrumentGuard, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYCOMBINSTRUMENTGUARD;
if (pCombInstrumentGuard)
{
task.task_data = *pCombInstrumentGuard;
}
else
{
CThostFtdcCombInstrumentGuardField empty_data = CThostFtdcCombInstrumentGuardField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryCombAction(CThostFtdcCombActionField *pCombAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYCOMBACTION;
if (pCombAction)
{
task.task_data = *pCombAction;
}
else
{
CThostFtdcCombActionField empty_data = CThostFtdcCombActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryTransferSerial(CThostFtdcTransferSerialField *pTransferSerial, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYTRANSFERSERIAL;
if (pTransferSerial)
{
task.task_data = *pTransferSerial;
}
else
{
CThostFtdcTransferSerialField empty_data = CThostFtdcTransferSerialField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryAccountregister(CThostFtdcAccountregisterField *pAccountregister, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYACCOUNTREGISTER;
if (pAccountregister)
{
task.task_data = *pAccountregister;
}
else
{
CThostFtdcAccountregisterField empty_data = CThostFtdcAccountregisterField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPERROR;
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRtnOrder(CThostFtdcOrderField *pOrder)
{
Task task = Task();
task.task_name = ONRTNORDER;
if (pOrder)
{
task.task_data = *pOrder;
}
else
{
CThostFtdcOrderField empty_data = CThostFtdcOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnTrade(CThostFtdcTradeField *pTrade)
{
Task task = Task();
task.task_name = ONRTNTRADE;
if (pTrade)
{
task.task_data = *pTrade;
}
else
{
CThostFtdcTradeField empty_data = CThostFtdcTradeField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNORDERINSERT;
if (pInputOrder)
{
task.task_data = *pInputOrder;
}
else
{
CThostFtdcInputOrderField empty_data = CThostFtdcInputOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnOrderAction(CThostFtdcOrderActionField *pOrderAction, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNORDERACTION;
if (pOrderAction)
{
task.task_data = *pOrderAction;
}
else
{
CThostFtdcOrderActionField empty_data = CThostFtdcOrderActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnRtnInstrumentStatus(CThostFtdcInstrumentStatusField *pInstrumentStatus)
{
Task task = Task();
task.task_name = ONRTNINSTRUMENTSTATUS;
if (pInstrumentStatus)
{
task.task_data = *pInstrumentStatus;
}
else
{
CThostFtdcInstrumentStatusField empty_data = CThostFtdcInstrumentStatusField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnTradingNotice(CThostFtdcTradingNoticeInfoField *pTradingNoticeInfo)
{
Task task = Task();
task.task_name = ONRTNTRADINGNOTICE;
if (pTradingNoticeInfo)
{
task.task_data = *pTradingNoticeInfo;
}
else
{
CThostFtdcTradingNoticeInfoField empty_data = CThostFtdcTradingNoticeInfoField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnErrorConditionalOrder(CThostFtdcErrorConditionalOrderField *pErrorConditionalOrder)
{
Task task = Task();
task.task_name = ONRTNERRORCONDITIONALORDER;
if (pErrorConditionalOrder)
{
task.task_data = *pErrorConditionalOrder;
}
else
{
CThostFtdcErrorConditionalOrderField empty_data = CThostFtdcErrorConditionalOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnExecOrder(CThostFtdcExecOrderField *pExecOrder)
{
Task task = Task();
task.task_name = ONRTNEXECORDER;
if (pExecOrder)
{
task.task_data = *pExecOrder;
}
else
{
CThostFtdcExecOrderField empty_data = CThostFtdcExecOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnExecOrderInsert(CThostFtdcInputExecOrderField *pInputExecOrder, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNEXECORDERINSERT;
if (pInputExecOrder)
{
task.task_data = *pInputExecOrder;
}
else
{
CThostFtdcInputExecOrderField empty_data = CThostFtdcInputExecOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnExecOrderAction(CThostFtdcExecOrderActionField *pExecOrderAction, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNEXECORDERACTION;
if (pExecOrderAction)
{
task.task_data = *pExecOrderAction;
}
else
{
CThostFtdcExecOrderActionField empty_data = CThostFtdcExecOrderActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnForQuoteInsert(CThostFtdcInputForQuoteField *pInputForQuote, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNFORQUOTEINSERT;
if (pInputForQuote)
{
task.task_data = *pInputForQuote;
}
else
{
CThostFtdcInputForQuoteField empty_data = CThostFtdcInputForQuoteField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnRtnQuote(CThostFtdcQuoteField *pQuote)
{
Task task = Task();
task.task_name = ONRTNQUOTE;
if (pQuote)
{
task.task_data = *pQuote;
}
else
{
CThostFtdcQuoteField empty_data = CThostFtdcQuoteField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnQuoteInsert(CThostFtdcInputQuoteField *pInputQuote, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNQUOTEINSERT;
if (pInputQuote)
{
task.task_data = *pInputQuote;
}
else
{
CThostFtdcInputQuoteField empty_data = CThostFtdcInputQuoteField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnQuoteAction(CThostFtdcQuoteActionField *pQuoteAction, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNQUOTEACTION;
if (pQuoteAction)
{
task.task_data = *pQuoteAction;
}
else
{
CThostFtdcQuoteActionField empty_data = CThostFtdcQuoteActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnRtnForQuoteRsp(CThostFtdcForQuoteRspField *pForQuoteRsp)
{
Task task = Task();
task.task_name = ONRTNFORQUOTERSP;
if (pForQuoteRsp)
{
task.task_data = *pForQuoteRsp;
}
else
{
CThostFtdcForQuoteRspField empty_data = CThostFtdcForQuoteRspField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnCFMMCTradingAccountToken(CThostFtdcCFMMCTradingAccountTokenField *pCFMMCTradingAccountToken)
{
Task task = Task();
task.task_name = ONRTNCFMMCTRADINGACCOUNTTOKEN;
if (pCFMMCTradingAccountToken)
{
task.task_data = *pCFMMCTradingAccountToken;
}
else
{
CThostFtdcCFMMCTradingAccountTokenField empty_data = CThostFtdcCFMMCTradingAccountTokenField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnLock(CThostFtdcLockField *pLock)
{
Task task = Task();
task.task_name = ONRTNLOCK;
if (pLock)
{
task.task_data = *pLock;
}
else
{
CThostFtdcLockField empty_data = CThostFtdcLockField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnLockInsert(CThostFtdcInputLockField *pInputLock, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNLOCKINSERT;
if (pInputLock)
{
task.task_data = *pInputLock;
}
else
{
CThostFtdcInputLockField empty_data = CThostFtdcInputLockField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnRtnCombAction(CThostFtdcCombActionField *pCombAction)
{
Task task = Task();
task.task_name = ONRTNCOMBACTION;
if (pCombAction)
{
task.task_data = *pCombAction;
}
else
{
CThostFtdcCombActionField empty_data = CThostFtdcCombActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnCombActionInsert(CThostFtdcInputCombActionField *pInputCombAction, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNCOMBACTIONINSERT;
if (pInputCombAction)
{
task.task_data = *pInputCombAction;
}
else
{
CThostFtdcInputCombActionField empty_data = CThostFtdcInputCombActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnRspQryContractBank(CThostFtdcContractBankField *pContractBank, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYCONTRACTBANK;
if (pContractBank)
{
task.task_data = *pContractBank;
}
else
{
CThostFtdcContractBankField empty_data = CThostFtdcContractBankField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryParkedOrder(CThostFtdcParkedOrderField *pParkedOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYPARKEDORDER;
if (pParkedOrder)
{
task.task_data = *pParkedOrder;
}
else
{
CThostFtdcParkedOrderField empty_data = CThostFtdcParkedOrderField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryParkedOrderAction(CThostFtdcParkedOrderActionField *pParkedOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYPARKEDORDERACTION;
if (pParkedOrderAction)
{
task.task_data = *pParkedOrderAction;
}
else
{
CThostFtdcParkedOrderActionField empty_data = CThostFtdcParkedOrderActionField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryTradingNotice(CThostFtdcTradingNoticeField *pTradingNotice, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYTRADINGNOTICE;
if (pTradingNotice)
{
task.task_data = *pTradingNotice;
}
else
{
CThostFtdcTradingNoticeField empty_data = CThostFtdcTradingNoticeField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryBrokerTradingParams(CThostFtdcBrokerTradingParamsField *pBrokerTradingParams, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYBROKERTRADINGPARAMS;
if (pBrokerTradingParams)
{
task.task_data = *pBrokerTradingParams;
}
else
{
CThostFtdcBrokerTradingParamsField empty_data = CThostFtdcBrokerTradingParamsField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQryBrokerTradingAlgos(CThostFtdcBrokerTradingAlgosField *pBrokerTradingAlgos, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQRYBROKERTRADINGALGOS;
if (pBrokerTradingAlgos)
{
task.task_data = *pBrokerTradingAlgos;
}
else
{
CThostFtdcBrokerTradingAlgosField empty_data = CThostFtdcBrokerTradingAlgosField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQueryCFMMCTradingAccountToken(CThostFtdcQueryCFMMCTradingAccountTokenField *pQueryCFMMCTradingAccountToken, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQUERYCFMMCTRADINGACCOUNTTOKEN;
if (pQueryCFMMCTradingAccountToken)
{
task.task_data = *pQueryCFMMCTradingAccountToken;
}
else
{
CThostFtdcQueryCFMMCTradingAccountTokenField empty_data = CThostFtdcQueryCFMMCTradingAccountTokenField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRtnFromBankToFutureByBank(CThostFtdcRspTransferField *pRspTransfer)
{
Task task = Task();
task.task_name = ONRTNFROMBANKTOFUTUREBYBANK;
if (pRspTransfer)
{
task.task_data = *pRspTransfer;
}
else
{
CThostFtdcRspTransferField empty_data = CThostFtdcRspTransferField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnFromFutureToBankByBank(CThostFtdcRspTransferField *pRspTransfer)
{
Task task = Task();
task.task_name = ONRTNFROMFUTURETOBANKBYBANK;
if (pRspTransfer)
{
task.task_data = *pRspTransfer;
}
else
{
CThostFtdcRspTransferField empty_data = CThostFtdcRspTransferField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnRepealFromBankToFutureByBank(CThostFtdcRspRepealField *pRspRepeal)
{
Task task = Task();
task.task_name = ONRTNREPEALFROMBANKTOFUTUREBYBANK;
if (pRspRepeal)
{
task.task_data = *pRspRepeal;
}
else
{
CThostFtdcRspRepealField empty_data = CThostFtdcRspRepealField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnRepealFromFutureToBankByBank(CThostFtdcRspRepealField *pRspRepeal)
{
Task task = Task();
task.task_name = ONRTNREPEALFROMFUTURETOBANKBYBANK;
if (pRspRepeal)
{
task.task_data = *pRspRepeal;
}
else
{
CThostFtdcRspRepealField empty_data = CThostFtdcRspRepealField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnFromBankToFutureByFuture(CThostFtdcRspTransferField *pRspTransfer)
{
Task task = Task();
task.task_name = ONRTNFROMBANKTOFUTUREBYFUTURE;
if (pRspTransfer)
{
task.task_data = *pRspTransfer;
}
else
{
CThostFtdcRspTransferField empty_data = CThostFtdcRspTransferField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnFromFutureToBankByFuture(CThostFtdcRspTransferField *pRspTransfer)
{
Task task = Task();
task.task_name = ONRTNFROMFUTURETOBANKBYFUTURE;
if (pRspTransfer)
{
task.task_data = *pRspTransfer;
}
else
{
CThostFtdcRspTransferField empty_data = CThostFtdcRspTransferField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnRepealFromBankToFutureByFutureManual(CThostFtdcRspRepealField *pRspRepeal)
{
Task task = Task();
task.task_name = ONRTNREPEALFROMBANKTOFUTUREBYFUTUREMANUAL;
if (pRspRepeal)
{
task.task_data = *pRspRepeal;
}
else
{
CThostFtdcRspRepealField empty_data = CThostFtdcRspRepealField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnRepealFromFutureToBankByFutureManual(CThostFtdcRspRepealField *pRspRepeal)
{
Task task = Task();
task.task_name = ONRTNREPEALFROMFUTURETOBANKBYFUTUREMANUAL;
if (pRspRepeal)
{
task.task_data = *pRspRepeal;
}
else
{
CThostFtdcRspRepealField empty_data = CThostFtdcRspRepealField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnQueryBankBalanceByFuture(CThostFtdcNotifyQueryAccountField *pNotifyQueryAccount)
{
Task task = Task();
task.task_name = ONRTNQUERYBANKBALANCEBYFUTURE;
if (pNotifyQueryAccount)
{
task.task_data = *pNotifyQueryAccount;
}
else
{
CThostFtdcNotifyQueryAccountField empty_data = CThostFtdcNotifyQueryAccountField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnBankToFutureByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNBANKTOFUTUREBYFUTURE;
if (pReqTransfer)
{
task.task_data = *pReqTransfer;
}
else
{
CThostFtdcReqTransferField empty_data = CThostFtdcReqTransferField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnFutureToBankByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNFUTURETOBANKBYFUTURE;
if (pReqTransfer)
{
task.task_data = *pReqTransfer;
}
else
{
CThostFtdcReqTransferField empty_data = CThostFtdcReqTransferField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnRepealBankToFutureByFutureManual(CThostFtdcReqRepealField *pReqRepeal, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNREPEALBANKTOFUTUREBYFUTUREMANUAL;
if (pReqRepeal)
{
task.task_data = *pReqRepeal;
}
else
{
CThostFtdcReqRepealField empty_data = CThostFtdcReqRepealField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnRepealFutureToBankByFutureManual(CThostFtdcReqRepealField *pReqRepeal, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNREPEALFUTURETOBANKBYFUTUREMANUAL;
if (pReqRepeal)
{
task.task_data = *pReqRepeal;
}
else
{
CThostFtdcReqRepealField empty_data = CThostFtdcReqRepealField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnErrRtnQueryBankBalanceByFuture(CThostFtdcReqQueryAccountField *pReqQueryAccount, CThostFtdcRspInfoField *pRspInfo)
{
Task task = Task();
task.task_name = ONERRRTNQUERYBANKBALANCEBYFUTURE;
if (pReqQueryAccount)
{
task.task_data = *pReqQueryAccount;
}
else
{
CThostFtdcReqQueryAccountField empty_data = CThostFtdcReqQueryAccountField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
this->task_queue.push(task);
};
void TdApi::OnRtnRepealFromBankToFutureByFuture(CThostFtdcRspRepealField *pRspRepeal)
{
Task task = Task();
task.task_name = ONRTNREPEALFROMBANKTOFUTUREBYFUTURE;
if (pRspRepeal)
{
task.task_data = *pRspRepeal;
}
else
{
CThostFtdcRspRepealField empty_data = CThostFtdcRspRepealField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnRepealFromFutureToBankByFuture(CThostFtdcRspRepealField *pRspRepeal)
{
Task task = Task();
task.task_name = ONRTNREPEALFROMFUTURETOBANKBYFUTURE;
if (pRspRepeal)
{
task.task_data = *pRspRepeal;
}
else
{
CThostFtdcRspRepealField empty_data = CThostFtdcRspRepealField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRspFromBankToFutureByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPFROMBANKTOFUTUREBYFUTURE;
if (pReqTransfer)
{
task.task_data = *pReqTransfer;
}
else
{
CThostFtdcReqTransferField empty_data = CThostFtdcReqTransferField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspFromFutureToBankByFuture(CThostFtdcReqTransferField *pReqTransfer, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPFROMFUTURETOBANKBYFUTURE;
if (pReqTransfer)
{
task.task_data = *pReqTransfer;
}
else
{
CThostFtdcReqTransferField empty_data = CThostFtdcReqTransferField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRspQueryBankAccountMoneyByFuture(CThostFtdcReqQueryAccountField *pReqQueryAccount, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
Task task = Task();
task.task_name = ONRSPQUERYBANKACCOUNTMONEYBYFUTURE;
if (pReqQueryAccount)
{
task.task_data = *pReqQueryAccount;
}
else
{
CThostFtdcReqQueryAccountField empty_data = CThostFtdcReqQueryAccountField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
if (pRspInfo)
{
task.task_error = *pRspInfo;
}
else
{
CThostFtdcRspInfoField empty_error = CThostFtdcRspInfoField();
memset(&empty_error, 0, sizeof(empty_error));
task.task_error = empty_error;
}
task.task_id = nRequestID;
task.task_last = bIsLast;
this->task_queue.push(task);
};
void TdApi::OnRtnOpenAccountByBank(CThostFtdcOpenAccountField *pOpenAccount)
{
Task task = Task();
task.task_name = ONRTNOPENACCOUNTBYBANK;
if (pOpenAccount)
{
task.task_data = *pOpenAccount;
}
else
{
CThostFtdcOpenAccountField empty_data = CThostFtdcOpenAccountField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnCancelAccountByBank(CThostFtdcCancelAccountField *pCancelAccount)
{
Task task = Task();
task.task_name = ONRTNCANCELACCOUNTBYBANK;
if (pCancelAccount)
{
task.task_data = *pCancelAccount;
}
else
{
CThostFtdcCancelAccountField empty_data = CThostFtdcCancelAccountField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
void TdApi::OnRtnChangeAccountByBank(CThostFtdcChangeAccountField *pChangeAccount)
{
Task task = Task();
task.task_name = ONRTNCHANGEACCOUNTBYBANK;
if (pChangeAccount)
{
task.task_data = *pChangeAccount;
}
else
{
CThostFtdcChangeAccountField empty_data = CThostFtdcChangeAccountField();
memset(&empty_data, 0, sizeof(empty_data));
task.task_data = empty_data;
}
this->task_queue.push(task);
};
///-------------------------------------------------------------------------------------
///工作线程从队列中取出数据转化为python对象后进行推送
///-------------------------------------------------------------------------------------
void TdApi::processTask()
{
while (1)
{
Task task = this->task_queue.wait_and_pop();
switch (task.task_name)
{
case ONFRONTCONNECTED:
{
this->processFrontConnected(task);
break;
}
case ONFRONTDISCONNECTED:
{
this->processFrontDisconnected(task);
break;
}
case ONHEARTBEATWARNING:
{
this->processHeartBeatWarning(task);
break;
}
case ONRSPAUTHENTICATE:
{
this->processRspAuthenticate(task);
break;
}
case ONRSPUSERLOGIN:
{
this->processRspUserLogin(task);
break;
}
case ONRSPUSERLOGOUT:
{
this->processRspUserLogout(task);
break;
}
case ONRSPUSERPASSWORDUPDATE:
{
this->processRspUserPasswordUpdate(task);
break;
}
case ONRSPTRADINGACCOUNTPASSWORDUPDATE:
{
this->processRspTradingAccountPasswordUpdate(task);
break;
}
case ONRSPORDERINSERT:
{
this->processRspOrderInsert(task);
break;
}
case ONRSPPARKEDORDERINSERT:
{
this->processRspParkedOrderInsert(task);
break;
}
case ONRSPPARKEDORDERACTION:
{
this->processRspParkedOrderAction(task);
break;
}
case ONRSPORDERACTION:
{
this->processRspOrderAction(task);
break;
}
case ONRSPQUERYMAXORDERVOLUME:
{
this->processRspQueryMaxOrderVolume(task);
break;
}
case ONRSPSETTLEMENTINFOCONFIRM:
{
this->processRspSettlementInfoConfirm(task);
break;
}
case ONRSPREMOVEPARKEDORDER:
{
this->processRspRemoveParkedOrder(task);
break;
}
case ONRSPREMOVEPARKEDORDERACTION:
{
this->processRspRemoveParkedOrderAction(task);
break;
}
case ONRSPEXECORDERINSERT:
{
this->processRspExecOrderInsert(task);
break;
}
case ONRSPEXECORDERACTION:
{
this->processRspExecOrderAction(task);
break;
}
case ONRSPFORQUOTEINSERT:
{
this->processRspForQuoteInsert(task);
break;
}
case ONRSPQUOTEINSERT:
{
this->processRspQuoteInsert(task);
break;
}
case ONRSPQUOTEACTION:
{
this->processRspQuoteAction(task);
break;
}
case ONRSPLOCKINSERT:
{
this->processRspLockInsert(task);
break;
}
case ONRSPCOMBACTIONINSERT:
{
this->processRspCombActionInsert(task);
break;
}
case ONRSPQRYORDER:
{
this->processRspQryOrder(task);
break;
}
case ONRSPQRYTRADE:
{
this->processRspQryTrade(task);
break;
}
case ONRSPQRYINVESTORPOSITION:
{
this->processRspQryInvestorPosition(task);
break;
}
case ONRSPQRYTRADINGACCOUNT:
{
this->processRspQryTradingAccount(task);
break;
}
case ONRSPQRYINVESTOR:
{
this->processRspQryInvestor(task);
break;
}
case ONRSPQRYTRADINGCODE:
{
this->processRspQryTradingCode(task);
break;
}
case ONRSPQRYINSTRUMENTMARGINRATE:
{
this->processRspQryInstrumentMarginRate(task);
break;
}
case ONRSPQRYINSTRUMENTCOMMISSIONRATE:
{
this->processRspQryInstrumentCommissionRate(task);
break;
}
case ONRSPQRYEXCHANGE:
{
this->processRspQryExchange(task);
break;
}
case ONRSPQRYPRODUCT:
{
this->processRspQryProduct(task);
break;
}
case ONRSPQRYINSTRUMENT:
{
this->processRspQryInstrument(task);
break;
}
case ONRSPQRYDEPTHMARKETDATA:
{
this->processRspQryDepthMarketData(task);
break;
}
case ONRSPQRYSETTLEMENTINFO:
{
this->processRspQrySettlementInfo(task);
break;
}
case ONRSPQRYTRANSFERBANK:
{
this->processRspQryTransferBank(task);
break;
}
case ONRSPQRYINVESTORPOSITIONDETAIL:
{
this->processRspQryInvestorPositionDetail(task);
break;
}
case ONRSPQRYNOTICE:
{
this->processRspQryNotice(task);
break;
}
case ONRSPQRYSETTLEMENTINFOCONFIRM:
{
this->processRspQrySettlementInfoConfirm(task);
break;
}
case ONRSPQRYINVESTORPOSITIONCOMBINEDETAIL:
{
this->processRspQryInvestorPositionCombineDetail(task);
break;
}
case ONRSPQRYCFMMCTRADINGACCOUNTKEY:
{
this->processRspQryCFMMCTradingAccountKey(task);
break;
}
case ONRSPQRYEWARRANTOFFSET:
{
this->processRspQryEWarrantOffset(task);
break;
}
case ONRSPQRYINVESTORPRODUCTGROUPMARGIN:
{
this->processRspQryInvestorProductGroupMargin(task);
break;
}
case ONRSPQRYEXCHANGEMARGINRATE:
{
this->processRspQryExchangeMarginRate(task);
break;
}
case ONRSPQRYEXCHANGEMARGINRATEADJUST:
{
this->processRspQryExchangeMarginRateAdjust(task);
break;
}
case ONRSPQRYEXCHANGERATE:
{
this->processRspQryExchangeRate(task);
break;
}
case ONRSPQRYSECAGENTACIDMAP:
{
this->processRspQrySecAgentACIDMap(task);
break;
}
case ONRSPQRYPRODUCTEXCHRATE:
{
this->processRspQryProductExchRate(task);
break;
}
case ONRSPQRYPRODUCTGROUP:
{
this->processRspQryProductGroup(task);
break;
}
case ONRSPQRYOPTIONINSTRTRADECOST:
{
this->processRspQryOptionInstrTradeCost(task);
break;
}
case ONRSPQRYOPTIONINSTRCOMMRATE:
{
this->processRspQryOptionInstrCommRate(task);
break;
}
case ONRSPQRYEXECORDER:
{
this->processRspQryExecOrder(task);
break;
}
case ONRSPQRYFORQUOTE:
{
this->processRspQryForQuote(task);
break;
}
case ONRSPQRYQUOTE:
{
this->processRspQryQuote(task);
break;
}
case ONRSPQRYLOCK:
{
this->processRspQryLock(task);
break;
}
case ONRSPQRYLOCKPOSITION:
{
this->processRspQryLockPosition(task);
break;
}
case ONRSPQRYINVESTORLEVEL:
{
this->processRspQryInvestorLevel(task);
break;
}
case ONRSPQRYEXECFREEZE:
{
this->processRspQryExecFreeze(task);
break;
}
case ONRSPQRYCOMBINSTRUMENTGUARD:
{
this->processRspQryCombInstrumentGuard(task);
break;
}
case ONRSPQRYCOMBACTION:
{
this->processRspQryCombAction(task);
break;
}
case ONRSPQRYTRANSFERSERIAL:
{
this->processRspQryTransferSerial(task);
break;
}
case ONRSPQRYACCOUNTREGISTER:
{
this->processRspQryAccountregister(task);
break;
}
case ONRSPERROR:
{
this->processRspError(task);
break;
}
case ONRTNORDER:
{
this->processRtnOrder(task);
break;
}
case ONRTNTRADE:
{
this->processRtnTrade(task);
break;
}
case ONERRRTNORDERINSERT:
{
this->processErrRtnOrderInsert(task);
break;
}
case ONERRRTNORDERACTION:
{
this->processErrRtnOrderAction(task);
break;
}
case ONRTNINSTRUMENTSTATUS:
{
this->processRtnInstrumentStatus(task);
break;
}
case ONRTNTRADINGNOTICE:
{
this->processRtnTradingNotice(task);
break;
}
case ONRTNERRORCONDITIONALORDER:
{
this->processRtnErrorConditionalOrder(task);
break;
}
case ONRTNEXECORDER:
{
this->processRtnExecOrder(task);
break;
}
case ONERRRTNEXECORDERINSERT:
{
this->processErrRtnExecOrderInsert(task);
break;
}
case ONERRRTNEXECORDERACTION:
{
this->processErrRtnExecOrderAction(task);
break;
}
case ONERRRTNFORQUOTEINSERT:
{
this->processErrRtnForQuoteInsert(task);
break;
}
case ONRTNQUOTE:
{
this->processRtnQuote(task);
break;
}
case ONERRRTNQUOTEINSERT:
{
this->processErrRtnQuoteInsert(task);
break;
}
case ONERRRTNQUOTEACTION:
{
this->processErrRtnQuoteAction(task);
break;
}
case ONRTNFORQUOTERSP:
{
this->processRtnForQuoteRsp(task);
break;
}
case ONRTNCFMMCTRADINGACCOUNTTOKEN:
{
this->processRtnCFMMCTradingAccountToken(task);
break;
}
case ONRTNLOCK:
{
this->processRtnLock(task);
break;
}
case ONERRRTNLOCKINSERT:
{
this->processErrRtnLockInsert(task);
break;
}
case ONRTNCOMBACTION:
{
this->processRtnCombAction(task);
break;
}
case ONERRRTNCOMBACTIONINSERT:
{
this->processErrRtnCombActionInsert(task);
break;
}
case ONRSPQRYCONTRACTBANK:
{
this->processRspQryContractBank(task);
break;
}
case ONRSPQRYPARKEDORDER:
{
this->processRspQryParkedOrder(task);
break;
}
case ONRSPQRYPARKEDORDERACTION:
{
this->processRspQryParkedOrderAction(task);
break;
}
case ONRSPQRYTRADINGNOTICE:
{
this->processRspQryTradingNotice(task);
break;
}
case ONRSPQRYBROKERTRADINGPARAMS:
{
this->processRspQryBrokerTradingParams(task);
break;
}
case ONRSPQRYBROKERTRADINGALGOS:
{
this->processRspQryBrokerTradingAlgos(task);
break;
}
case ONRSPQUERYCFMMCTRADINGACCOUNTTOKEN:
{
this->processRspQueryCFMMCTradingAccountToken(task);
break;
}
case ONRTNFROMBANKTOFUTUREBYBANK:
{
this->processRtnFromBankToFutureByBank(task);
break;
}
case ONRTNFROMFUTURETOBANKBYBANK:
{
this->processRtnFromFutureToBankByBank(task);
break;
}
case ONRTNREPEALFROMBANKTOFUTUREBYBANK:
{
this->processRtnRepealFromBankToFutureByBank(task);
break;
}
case ONRTNREPEALFROMFUTURETOBANKBYBANK:
{
this->processRtnRepealFromFutureToBankByBank(task);
break;
}
case ONRTNFROMBANKTOFUTUREBYFUTURE:
{
this->processRtnFromBankToFutureByFuture(task);
break;
}
case ONRTNFROMFUTURETOBANKBYFUTURE:
{
this->processRtnFromFutureToBankByFuture(task);
break;
}
case ONRTNREPEALFROMBANKTOFUTUREBYFUTUREMANUAL:
{
this->processRtnRepealFromBankToFutureByFutureManual(task);
break;
}
case ONRTNREPEALFROMFUTURETOBANKBYFUTUREMANUAL:
{
this->processRtnRepealFromFutureToBankByFutureManual(task);
break;
}
case ONRTNQUERYBANKBALANCEBYFUTURE:
{
this->processRtnQueryBankBalanceByFuture(task);
break;
}
case ONERRRTNBANKTOFUTUREBYFUTURE:
{
this->processErrRtnBankToFutureByFuture(task);
break;
}
case ONERRRTNFUTURETOBANKBYFUTURE:
{
this->processErrRtnFutureToBankByFuture(task);
break;
}
case ONERRRTNREPEALBANKTOFUTUREBYFUTUREMANUAL:
{
this->processErrRtnRepealBankToFutureByFutureManual(task);
break;
}
case ONERRRTNREPEALFUTURETOBANKBYFUTUREMANUAL:
{
this->processErrRtnRepealFutureToBankByFutureManual(task);
break;
}
case ONERRRTNQUERYBANKBALANCEBYFUTURE:
{
this->processErrRtnQueryBankBalanceByFuture(task);
break;
}
case ONRTNREPEALFROMBANKTOFUTUREBYFUTURE:
{
this->processRtnRepealFromBankToFutureByFuture(task);
break;
}
case ONRTNREPEALFROMFUTURETOBANKBYFUTURE:
{
this->processRtnRepealFromFutureToBankByFuture(task);
break;
}
case ONRSPFROMBANKTOFUTUREBYFUTURE:
{
this->processRspFromBankToFutureByFuture(task);
break;
}
case ONRSPFROMFUTURETOBANKBYFUTURE:
{
this->processRspFromFutureToBankByFuture(task);
break;
}
case ONRSPQUERYBANKACCOUNTMONEYBYFUTURE:
{
this->processRspQueryBankAccountMoneyByFuture(task);
break;
}
case ONRTNOPENACCOUNTBYBANK:
{
this->processRtnOpenAccountByBank(task);
break;
}
case ONRTNCANCELACCOUNTBYBANK:
{
this->processRtnCancelAccountByBank(task);
break;
}
case ONRTNCHANGEACCOUNTBYBANK:
{
this->processRtnChangeAccountByBank(task);
break;
}
}
}
}
void TdApi::processFrontConnected(Task task)
{
PyLock lock;
this->onFrontConnected();
};
void TdApi::processFrontDisconnected(Task task)
{
PyLock lock;
this->onFrontDisconnected(task.task_id);
};
void TdApi::processHeartBeatWarning(Task task)
{
PyLock lock;
this->onHeartBeatWarning(task.task_id);
};
void TdApi::processRspAuthenticate(Task task)
{
PyLock lock;
CThostFtdcRspAuthenticateField task_data = any_cast<CThostFtdcRspAuthenticateField>(task.task_data);
dict data;
data["UserID"] = task_data.UserID;
data["BrokerID"] = task_data.BrokerID;
data["UserProductInfo"] = task_data.UserProductInfo;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspAuthenticate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspUserLogin(Task task)
{
PyLock lock;
CThostFtdcRspUserLoginField task_data = any_cast<CThostFtdcRspUserLoginField>(task.task_data);
dict data;
data["CZCETime"] = task_data.CZCETime;
data["SHFETime"] = task_data.SHFETime;
data["MaxOrderRef"] = task_data.MaxOrderRef;
data["INETime"] = task_data.INETime;
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["FFEXTime"] = task_data.FFEXTime;
data["BrokerID"] = task_data.BrokerID;
data["DCETime"] = task_data.DCETime;
data["LoginTime"] = task_data.LoginTime;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(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 TdApi::processRspUserLogout(Task task)
{
PyLock lock;
CThostFtdcUserLogoutField task_data = any_cast<CThostFtdcUserLogoutField>(task.task_data);
dict data;
data["UserID"] = task_data.UserID;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(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 TdApi::processRspUserPasswordUpdate(Task task)
{
PyLock lock;
CThostFtdcUserPasswordUpdateField task_data = any_cast<CThostFtdcUserPasswordUpdateField>(task.task_data);
dict data;
data["UserID"] = task_data.UserID;
data["NewPassword"] = task_data.NewPassword;
data["OldPassword"] = task_data.OldPassword;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspUserPasswordUpdate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspTradingAccountPasswordUpdate(Task task)
{
PyLock lock;
CThostFtdcTradingAccountPasswordUpdateField task_data = any_cast<CThostFtdcTradingAccountPasswordUpdateField>(task.task_data);
dict data;
data["CurrencyID"] = task_data.CurrencyID;
data["NewPassword"] = task_data.NewPassword;
data["OldPassword"] = task_data.OldPassword;
data["BrokerID"] = task_data.BrokerID;
data["AccountID"] = task_data.AccountID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspTradingAccountPasswordUpdate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspOrderInsert(Task task)
{
PyLock lock;
CThostFtdcInputOrderField task_data = any_cast<CThostFtdcInputOrderField>(task.task_data);
dict data;
data["ContingentCondition"] = task_data.ContingentCondition;
data["CombOffsetFlag"] = task_data.CombOffsetFlag;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["UserForceClose"] = task_data.UserForceClose;
data["Direction"] = task_data.Direction;
data["IsSwapOrder"] = task_data.IsSwapOrder;
data["VolumeTotalOriginal"] = task_data.VolumeTotalOriginal;
data["OrderPriceType"] = task_data.OrderPriceType;
data["TimeCondition"] = task_data.TimeCondition;
data["IsAutoSuspend"] = task_data.IsAutoSuspend;
data["StopPrice"] = task_data.StopPrice;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["MinVolume"] = task_data.MinVolume;
data["ForceCloseReason"] = task_data.ForceCloseReason;
data["BrokerID"] = task_data.BrokerID;
data["CombHedgeFlag"] = task_data.CombHedgeFlag;
data["GTDDate"] = task_data.GTDDate;
data["BusinessUnit"] = task_data.BusinessUnit;
data["OrderRef"] = task_data.OrderRef;
data["InvestorID"] = task_data.InvestorID;
data["VolumeCondition"] = task_data.VolumeCondition;
data["RequestID"] = task_data.RequestID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspOrderInsert(data, error, task.task_id, task.task_last);
};
void TdApi::processRspParkedOrderInsert(Task task)
{
PyLock lock;
CThostFtdcParkedOrderField task_data = any_cast<CThostFtdcParkedOrderField>(task.task_data);
dict data;
data["ContingentCondition"] = task_data.ContingentCondition;
data["CombOffsetFlag"] = task_data.CombOffsetFlag;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["UserForceClose"] = task_data.UserForceClose;
data["Status"] = task_data.Status;
data["Direction"] = task_data.Direction;
data["IsSwapOrder"] = task_data.IsSwapOrder;
data["UserType"] = task_data.UserType;
data["VolumeTotalOriginal"] = task_data.VolumeTotalOriginal;
data["OrderPriceType"] = task_data.OrderPriceType;
data["TimeCondition"] = task_data.TimeCondition;
data["IsAutoSuspend"] = task_data.IsAutoSuspend;
data["StopPrice"] = task_data.StopPrice;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["MinVolume"] = task_data.MinVolume;
data["ForceCloseReason"] = task_data.ForceCloseReason;
data["ErrorID"] = task_data.ErrorID;
data["ParkedOrderID"] = task_data.ParkedOrderID;
data["BrokerID"] = task_data.BrokerID;
data["CombHedgeFlag"] = task_data.CombHedgeFlag;
data["GTDDate"] = task_data.GTDDate;
data["BusinessUnit"] = task_data.BusinessUnit;
data["ErrorMsg"] = task_data.ErrorMsg;
data["OrderRef"] = task_data.OrderRef;
data["InvestorID"] = task_data.InvestorID;
data["VolumeCondition"] = task_data.VolumeCondition;
data["RequestID"] = task_data.RequestID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspParkedOrderInsert(data, error, task.task_id, task.task_last);
};
void TdApi::processRspParkedOrderAction(Task task)
{
PyLock lock;
CThostFtdcParkedOrderActionField task_data = any_cast<CThostFtdcParkedOrderActionField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["Status"] = task_data.Status;
data["ExchangeID"] = task_data.ExchangeID;
data["ActionFlag"] = task_data.ActionFlag;
data["OrderActionRef"] = task_data.OrderActionRef;
data["UserType"] = task_data.UserType;
data["ErrorMsg"] = task_data.ErrorMsg;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["OrderRef"] = task_data.OrderRef;
data["InvestorID"] = task_data.InvestorID;
data["SessionID"] = task_data.SessionID;
data["VolumeChange"] = task_data.VolumeChange;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["OrderSysID"] = task_data.OrderSysID;
data["ParkedOrderActionID"] = task_data.ParkedOrderActionID;
data["FrontID"] = task_data.FrontID;
data["ErrorID"] = task_data.ErrorID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspParkedOrderAction(data, error, task.task_id, task.task_last);
};
void TdApi::processRspOrderAction(Task task)
{
PyLock lock;
CThostFtdcInputOrderActionField task_data = any_cast<CThostFtdcInputOrderActionField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["ActionFlag"] = task_data.ActionFlag;
data["OrderActionRef"] = task_data.OrderActionRef;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["OrderRef"] = task_data.OrderRef;
data["InvestorID"] = task_data.InvestorID;
data["SessionID"] = task_data.SessionID;
data["VolumeChange"] = task_data.VolumeChange;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["OrderSysID"] = task_data.OrderSysID;
data["FrontID"] = task_data.FrontID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspOrderAction(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQueryMaxOrderVolume(Task task)
{
PyLock lock;
CThostFtdcQueryMaxOrderVolumeField task_data = any_cast<CThostFtdcQueryMaxOrderVolumeField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["Direction"] = task_data.Direction;
data["OffsetFlag"] = task_data.OffsetFlag;
data["HedgeFlag"] = task_data.HedgeFlag;
data["ExchangeID"] = task_data.ExchangeID;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["MaxVolume"] = task_data.MaxVolume;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQueryMaxOrderVolume(data, error, task.task_id, task.task_last);
};
void TdApi::processRspSettlementInfoConfirm(Task task)
{
PyLock lock;
CThostFtdcSettlementInfoConfirmField task_data = any_cast<CThostFtdcSettlementInfoConfirmField>(task.task_data);
dict data;
data["ConfirmTime"] = task_data.ConfirmTime;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["ConfirmDate"] = task_data.ConfirmDate;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspSettlementInfoConfirm(data, error, task.task_id, task.task_last);
};
void TdApi::processRspRemoveParkedOrder(Task task)
{
PyLock lock;
CThostFtdcRemoveParkedOrderField task_data = any_cast<CThostFtdcRemoveParkedOrderField>(task.task_data);
dict data;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["ParkedOrderID"] = task_data.ParkedOrderID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspRemoveParkedOrder(data, error, task.task_id, task.task_last);
};
void TdApi::processRspRemoveParkedOrderAction(Task task)
{
PyLock lock;
CThostFtdcRemoveParkedOrderActionField task_data = any_cast<CThostFtdcRemoveParkedOrderActionField>(task.task_data);
dict data;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["ParkedOrderActionID"] = task_data.ParkedOrderActionID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspRemoveParkedOrderAction(data, error, task.task_id, task.task_last);
};
void TdApi::processRspExecOrderInsert(Task task)
{
PyLock lock;
CThostFtdcInputExecOrderField task_data = any_cast<CThostFtdcInputExecOrderField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExecOrderRef"] = task_data.ExecOrderRef;
data["ExchangeID"] = task_data.ExchangeID;
data["CloseFlag"] = task_data.CloseFlag;
data["OffsetFlag"] = task_data.OffsetFlag;
data["PosiDirection"] = task_data.PosiDirection;
data["BusinessUnit"] = task_data.BusinessUnit;
data["HedgeFlag"] = task_data.HedgeFlag;
data["UserID"] = task_data.UserID;
data["Volume"] = task_data.Volume;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["ActionType"] = task_data.ActionType;
data["ReservePositionFlag"] = task_data.ReservePositionFlag;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspExecOrderInsert(data, error, task.task_id, task.task_last);
};
void TdApi::processRspExecOrderAction(Task task)
{
PyLock lock;
CThostFtdcInputExecOrderActionField task_data = any_cast<CThostFtdcInputExecOrderActionField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExecOrderSysID"] = task_data.ExecOrderSysID;
data["ExchangeID"] = task_data.ExchangeID;
data["UserID"] = task_data.UserID;
data["ExecOrderRef"] = task_data.ExecOrderRef;
data["InvestorID"] = task_data.InvestorID;
data["SessionID"] = task_data.SessionID;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["ActionFlag"] = task_data.ActionFlag;
data["ExecOrderActionRef"] = task_data.ExecOrderActionRef;
data["FrontID"] = task_data.FrontID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspExecOrderAction(data, error, task.task_id, task.task_last);
};
void TdApi::processRspForQuoteInsert(Task task)
{
PyLock lock;
CThostFtdcInputForQuoteField task_data = any_cast<CThostFtdcInputForQuoteField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ForQuoteRef"] = task_data.ForQuoteRef;
data["ExchangeID"] = task_data.ExchangeID;
data["UserID"] = task_data.UserID;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspForQuoteInsert(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQuoteInsert(Task task)
{
PyLock lock;
CThostFtdcInputQuoteField task_data = any_cast<CThostFtdcInputQuoteField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["AskHedgeFlag"] = task_data.AskHedgeFlag;
data["BusinessUnit"] = task_data.BusinessUnit;
data["AskPrice"] = task_data.AskPrice;
data["UserID"] = task_data.UserID;
data["AskOffsetFlag"] = task_data.AskOffsetFlag;
data["BidVolume"] = task_data.BidVolume;
data["AskOrderRef"] = task_data.AskOrderRef;
data["AskVolume"] = task_data.AskVolume;
data["InvestorID"] = task_data.InvestorID;
data["BidOffsetFlag"] = task_data.BidOffsetFlag;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["ForQuoteSysID"] = task_data.ForQuoteSysID;
data["BidPrice"] = task_data.BidPrice;
data["BidHedgeFlag"] = task_data.BidHedgeFlag;
data["QuoteRef"] = task_data.QuoteRef;
data["BidOrderRef"] = task_data.BidOrderRef;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQuoteInsert(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQuoteAction(Task task)
{
PyLock lock;
CThostFtdcInputQuoteActionField task_data = any_cast<CThostFtdcInputQuoteActionField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["QuoteActionRef"] = task_data.QuoteActionRef;
data["UserID"] = task_data.UserID;
data["InvestorID"] = task_data.InvestorID;
data["SessionID"] = task_data.SessionID;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["ActionFlag"] = task_data.ActionFlag;
data["FrontID"] = task_data.FrontID;
data["QuoteSysID"] = task_data.QuoteSysID;
data["QuoteRef"] = task_data.QuoteRef;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQuoteAction(data, error, task.task_id, task.task_last);
};
void TdApi::processRspLockInsert(Task task)
{
PyLock lock;
CThostFtdcInputLockField task_data = any_cast<CThostFtdcInputLockField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["UserID"] = task_data.UserID;
data["LockRef"] = task_data.LockRef;
data["Volume"] = task_data.Volume;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["LockType"] = task_data.LockType;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspLockInsert(data, error, task.task_id, task.task_last);
};
void TdApi::processRspCombActionInsert(Task task)
{
PyLock lock;
CThostFtdcInputCombActionField task_data = any_cast<CThostFtdcInputCombActionField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["Direction"] = task_data.Direction;
data["CombActionRef"] = task_data.CombActionRef;
data["HedgeFlag"] = task_data.HedgeFlag;
data["UserID"] = task_data.UserID;
data["ExchangeID"] = task_data.ExchangeID;
data["Volume"] = task_data.Volume;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["CombDirection"] = task_data.CombDirection;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspCombActionInsert(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryOrder(Task task)
{
PyLock lock;
CThostFtdcOrderField task_data = any_cast<CThostFtdcOrderField>(task.task_data);
dict data;
data["ContingentCondition"] = task_data.ContingentCondition;
data["NotifySequence"] = task_data.NotifySequence;
data["ActiveUserID"] = task_data.ActiveUserID;
data["VolumeTraded"] = task_data.VolumeTraded;
data["UserProductInfo"] = task_data.UserProductInfo;
data["CombOffsetFlag"] = task_data.CombOffsetFlag;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["UserForceClose"] = task_data.UserForceClose;
data["RelativeOrderSysID"] = task_data.RelativeOrderSysID;
data["Direction"] = task_data.Direction;
data["InstallID"] = task_data.InstallID;
data["IsSwapOrder"] = task_data.IsSwapOrder;
data["ParticipantID"] = task_data.ParticipantID;
data["VolumeTotalOriginal"] = task_data.VolumeTotalOriginal;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["ClientID"] = task_data.ClientID;
data["VolumeTotal"] = task_data.VolumeTotal;
data["OrderPriceType"] = task_data.OrderPriceType;
data["SessionID"] = task_data.SessionID;
data["TimeCondition"] = task_data.TimeCondition;
data["OrderStatus"] = task_data.OrderStatus;
data["OrderSysID"] = task_data.OrderSysID;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["IsAutoSuspend"] = task_data.IsAutoSuspend;
data["StopPrice"] = task_data.StopPrice;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["MinVolume"] = task_data.MinVolume;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["ForceCloseReason"] = task_data.ForceCloseReason;
data["OrderType"] = task_data.OrderType;
data["UpdateTime"] = task_data.UpdateTime;
data["TradingDay"] = task_data.TradingDay;
data["ActiveTime"] = task_data.ActiveTime;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["FrontID"] = task_data.FrontID;
data["SuspendTime"] = task_data.SuspendTime;
data["ClearingPartID"] = task_data.ClearingPartID;
data["CombHedgeFlag"] = task_data.CombHedgeFlag;
data["CancelTime"] = task_data.CancelTime;
data["GTDDate"] = task_data.GTDDate;
data["OrderLocalID"] = task_data.OrderLocalID;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["SequenceNo"] = task_data.SequenceNo;
data["OrderRef"] = task_data.OrderRef;
data["BrokerOrderSeq"] = task_data.BrokerOrderSeq;
data["InvestorID"] = task_data.InvestorID;
data["VolumeCondition"] = task_data.VolumeCondition;
data["RequestID"] = task_data.RequestID;
data["OrderSource"] = task_data.OrderSource;
data["ZCETotalTradedVolume"] = task_data.ZCETotalTradedVolume;
data["ActiveTraderID"] = task_data.ActiveTraderID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryOrder(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryTrade(Task task)
{
PyLock lock;
CThostFtdcTradeField task_data = any_cast<CThostFtdcTradeField>(task.task_data);
dict data;
data["TradeType"] = task_data.TradeType;
data["TraderID"] = task_data.TraderID;
data["HedgeFlag"] = task_data.HedgeFlag;
data["TradeTime"] = task_data.TradeTime;
data["Direction"] = task_data.Direction;
data["ParticipantID"] = task_data.ParticipantID;
data["Price"] = task_data.Price;
data["ClientID"] = task_data.ClientID;
data["Volume"] = task_data.Volume;
data["OrderSysID"] = task_data.OrderSysID;
data["ClearingPartID"] = task_data.ClearingPartID;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["SettlementID"] = task_data.SettlementID;
data["UserID"] = task_data.UserID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["OffsetFlag"] = task_data.OffsetFlag;
data["OrderLocalID"] = task_data.OrderLocalID;
data["TradeID"] = task_data.TradeID;
data["TradeDate"] = task_data.TradeDate;
data["BusinessUnit"] = task_data.BusinessUnit;
data["SequenceNo"] = task_data.SequenceNo;
data["OrderRef"] = task_data.OrderRef;
data["BrokerOrderSeq"] = task_data.BrokerOrderSeq;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["TradeSource"] = task_data.TradeSource;
data["PriceSource"] = task_data.PriceSource;
data["TradingRole"] = task_data.TradingRole;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryTrade(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInvestorPosition(Task task)
{
PyLock lock;
CThostFtdcInvestorPositionField task_data = any_cast<CThostFtdcInvestorPositionField>(task.task_data);
dict data;
data["ShortFrozenAmount"] = task_data.ShortFrozenAmount;
data["FrozenMargin"] = task_data.FrozenMargin;
data["HedgeFlag"] = task_data.HedgeFlag;
data["PositionProfit"] = task_data.PositionProfit;
data["Commission"] = task_data.Commission;
data["MarginRateByVolume"] = task_data.MarginRateByVolume;
data["StrikeFrozen"] = task_data.StrikeFrozen;
data["CombPosition"] = task_data.CombPosition;
data["CashIn"] = task_data.CashIn;
data["PreSettlementPrice"] = task_data.PreSettlementPrice;
data["CombLongFrozen"] = task_data.CombLongFrozen;
data["CloseAmount"] = task_data.CloseAmount;
data["PosiDirection"] = task_data.PosiDirection;
data["YdPosition"] = task_data.YdPosition;
data["MarginRateByMoney"] = task_data.MarginRateByMoney;
data["AbandonFrozen"] = task_data.AbandonFrozen;
data["OpenVolume"] = task_data.OpenVolume;
data["CloseVolume"] = task_data.CloseVolume;
data["ExchangeMargin"] = task_data.ExchangeMargin;
data["YdStrikeFrozen"] = task_data.YdStrikeFrozen;
data["InstrumentID"] = task_data.InstrumentID;
data["PositionDate"] = task_data.PositionDate;
data["ExchangeID"] = task_data.ExchangeID;
data["CloseProfitByTrade"] = task_data.CloseProfitByTrade;
data["PreMargin"] = task_data.PreMargin;
data["SettlementID"] = task_data.SettlementID;
data["ShortFrozen"] = task_data.ShortFrozen;
data["LongFrozen"] = task_data.LongFrozen;
data["TodayPosition"] = task_data.TodayPosition;
data["TradingDay"] = task_data.TradingDay;
data["PositionCost"] = task_data.PositionCost;
data["BrokerID"] = task_data.BrokerID;
data["FrozenCash"] = task_data.FrozenCash;
data["OpenAmount"] = task_data.OpenAmount;
data["OpenCost"] = task_data.OpenCost;
data["Position"] = task_data.Position;
data["FrozenCommission"] = task_data.FrozenCommission;
data["CombShortFrozen"] = task_data.CombShortFrozen;
data["CloseProfitByDate"] = task_data.CloseProfitByDate;
data["SettlementPrice"] = task_data.SettlementPrice;
data["LongFrozenAmount"] = task_data.LongFrozenAmount;
data["InvestorID"] = task_data.InvestorID;
data["StrikeFrozenAmount"] = task_data.StrikeFrozenAmount;
data["CloseProfit"] = task_data.CloseProfit;
data["UseMargin"] = task_data.UseMargin;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInvestorPosition(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryTradingAccount(Task task)
{
PyLock lock;
CThostFtdcTradingAccountField task_data = any_cast<CThostFtdcTradingAccountField>(task.task_data);
dict data;
data["SpecProductFrozenCommission"] = task_data.SpecProductFrozenCommission;
data["FundMortgageOut"] = task_data.FundMortgageOut;
data["Mortgage"] = task_data.Mortgage;
data["ExchangeDeliveryMargin"] = task_data.ExchangeDeliveryMargin;
data["FrozenMargin"] = task_data.FrozenMargin;
data["WithdrawQuota"] = task_data.WithdrawQuota;
data["PositionProfit"] = task_data.PositionProfit;
data["Commission"] = task_data.Commission;
data["SpecProductCloseProfit"] = task_data.SpecProductCloseProfit;
data["Interest"] = task_data.Interest;
data["SpecProductCommission"] = task_data.SpecProductCommission;
data["CashIn"] = task_data.CashIn;
data["AccountID"] = task_data.AccountID;
data["Available"] = task_data.Available;
data["FundMortgageAvailable"] = task_data.FundMortgageAvailable;
data["PreCredit"] = task_data.PreCredit;
data["PreMortgage"] = task_data.PreMortgage;
data["InterestBase"] = task_data.InterestBase;
data["ExchangeMargin"] = task_data.ExchangeMargin;
data["MortgageableFund"] = task_data.MortgageableFund;
data["PreFundMortgageIn"] = task_data.PreFundMortgageIn;
data["PreMargin"] = task_data.PreMargin;
data["SettlementID"] = task_data.SettlementID;
data["BizType"] = task_data.BizType;
data["FundMortgageIn"] = task_data.FundMortgageIn;
data["DeliveryMargin"] = task_data.DeliveryMargin;
data["SpecProductFrozenMargin"] = task_data.SpecProductFrozenMargin;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["FrozenCash"] = task_data.FrozenCash;
data["Withdraw"] = task_data.Withdraw;
data["Balance"] = task_data.Balance;
data["SpecProductMargin"] = task_data.SpecProductMargin;
data["SpecProductPositionProfitByAlg"] = task_data.SpecProductPositionProfitByAlg;
data["Reserve"] = task_data.Reserve;
data["PreDeposit"] = task_data.PreDeposit;
data["Credit"] = task_data.Credit;
data["CurrencyID"] = task_data.CurrencyID;
data["ReserveBalance"] = task_data.ReserveBalance;
data["SpecProductPositionProfit"] = task_data.SpecProductPositionProfit;
data["SpecProductExchangeMargin"] = task_data.SpecProductExchangeMargin;
data["PreBalance"] = task_data.PreBalance;
data["CurrMargin"] = task_data.CurrMargin;
data["FrozenCommission"] = task_data.FrozenCommission;
data["CloseProfit"] = task_data.CloseProfit;
data["PreFundMortgageOut"] = task_data.PreFundMortgageOut;
data["Deposit"] = task_data.Deposit;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryTradingAccount(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInvestor(Task task)
{
PyLock lock;
CThostFtdcInvestorField task_data = any_cast<CThostFtdcInvestorField>(task.task_data);
dict data;
data["CommModelID"] = task_data.CommModelID;
data["InvestorName"] = task_data.InvestorName;
data["Mobile"] = task_data.Mobile;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["Telephone"] = task_data.Telephone;
data["MarginModelID"] = task_data.MarginModelID;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["Address"] = task_data.Address;
data["InvestorGroupID"] = task_data.InvestorGroupID;
data["OpenDate"] = task_data.OpenDate;
data["IsActive"] = task_data.IsActive;
data["IdentifiedCardType"] = task_data.IdentifiedCardType;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInvestor(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryTradingCode(Task task)
{
PyLock lock;
CThostFtdcTradingCodeField task_data = any_cast<CThostFtdcTradingCodeField>(task.task_data);
dict data;
data["ExchangeID"] = task_data.ExchangeID;
data["BranchID"] = task_data.BranchID;
data["BizType"] = task_data.BizType;
data["ClientID"] = task_data.ClientID;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["ClientIDType"] = task_data.ClientIDType;
data["IsActive"] = task_data.IsActive;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryTradingCode(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInstrumentMarginRate(Task task)
{
PyLock lock;
CThostFtdcInstrumentMarginRateField task_data = any_cast<CThostFtdcInstrumentMarginRateField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ShortMarginRatioByMoney"] = task_data.ShortMarginRatioByMoney;
data["LongMarginRatioByMoney"] = task_data.LongMarginRatioByMoney;
data["IsRelative"] = task_data.IsRelative;
data["HedgeFlag"] = task_data.HedgeFlag;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["InvestorRange"] = task_data.InvestorRange;
data["ShortMarginRatioByVolume"] = task_data.ShortMarginRatioByVolume;
data["LongMarginRatioByVolume"] = task_data.LongMarginRatioByVolume;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInstrumentMarginRate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInstrumentCommissionRate(Task task)
{
PyLock lock;
CThostFtdcInstrumentCommissionRateField task_data = any_cast<CThostFtdcInstrumentCommissionRateField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["OpenRatioByMoney"] = task_data.OpenRatioByMoney;
data["CloseRatioByVolume"] = task_data.CloseRatioByVolume;
data["BizType"] = task_data.BizType;
data["CloseTodayRatioByMoney"] = task_data.CloseTodayRatioByMoney;
data["ExchangeID"] = task_data.ExchangeID;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["InvestorRange"] = task_data.InvestorRange;
data["CloseRatioByMoney"] = task_data.CloseRatioByMoney;
data["OpenRatioByVolume"] = task_data.OpenRatioByVolume;
data["CloseTodayRatioByVolume"] = task_data.CloseTodayRatioByVolume;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInstrumentCommissionRate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryExchange(Task task)
{
PyLock lock;
CThostFtdcExchangeField task_data = any_cast<CThostFtdcExchangeField>(task.task_data);
dict data;
data["ExchangeProperty"] = task_data.ExchangeProperty;
data["ExchangeID"] = task_data.ExchangeID;
data["ExchangeName"] = task_data.ExchangeName;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryExchange(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryProduct(Task task)
{
PyLock lock;
CThostFtdcProductField task_data = any_cast<CThostFtdcProductField>(task.task_data);
dict data;
data["MaxLimitOrderVolume"] = task_data.MaxLimitOrderVolume;
data["ExchangeID"] = task_data.ExchangeID;
data["MortgageFundUseRange"] = task_data.MortgageFundUseRange;
data["PositionDateType"] = task_data.PositionDateType;
data["MinLimitOrderVolume"] = task_data.MinLimitOrderVolume;
data["CloseDealType"] = task_data.CloseDealType;
data["MaxMarketOrderVolume"] = task_data.MaxMarketOrderVolume;
data["PriceTick"] = task_data.PriceTick;
data["ProductName"] = task_data.ProductName;
data["ExchangeProductID"] = task_data.ExchangeProductID;
data["VolumeMultiple"] = task_data.VolumeMultiple;
data["PositionType"] = task_data.PositionType;
data["MinMarketOrderVolume"] = task_data.MinMarketOrderVolume;
data["ProductClass"] = task_data.ProductClass;
data["UnderlyingMultiple"] = task_data.UnderlyingMultiple;
data["TradeCurrencyID"] = task_data.TradeCurrencyID;
data["ProductID"] = task_data.ProductID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryProduct(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInstrument(Task task)
{
PyLock lock;
CThostFtdcInstrumentField task_data = any_cast<CThostFtdcInstrumentField>(task.task_data);
dict data;
data["IsTrading"] = task_data.IsTrading;
data["ExpireDate"] = task_data.ExpireDate;
data["PositionDateType"] = task_data.PositionDateType;
data["LongMarginRatio"] = task_data.LongMarginRatio;
data["StrikePrice"] = task_data.StrikePrice;
data["UnderlyingMultiple"] = task_data.UnderlyingMultiple;
data["PositionType"] = task_data.PositionType;
data["ProductClass"] = task_data.ProductClass;
data["MinSellVolume"] = task_data.MinSellVolume;
data["InstrumentName"] = task_data.InstrumentName;
data["ShortMarginRatio"] = task_data.ShortMarginRatio;
data["VolumeMultiple"] = task_data.VolumeMultiple;
data["MaxMarginSideAlgorithm"] = task_data.MaxMarginSideAlgorithm;
data["DeliveryYear"] = task_data.DeliveryYear;
data["CombinationType"] = task_data.CombinationType;
data["CreateDate"] = task_data.CreateDate;
data["InstrumentID"] = task_data.InstrumentID;
data["MaxLimitOrderVolume"] = task_data.MaxLimitOrderVolume;
data["ExchangeID"] = task_data.ExchangeID;
data["MinLimitOrderVolume"] = task_data.MinLimitOrderVolume;
data["MaxMarketOrderVolume"] = task_data.MaxMarketOrderVolume;
data["OptionsType"] = task_data.OptionsType;
data["StartDelivDate"] = task_data.StartDelivDate;
data["DeliveryMonth"] = task_data.DeliveryMonth;
data["InstrumentCode"] = task_data.InstrumentCode;
data["MinBuyVolume"] = task_data.MinBuyVolume;
data["PriceTick"] = task_data.PriceTick;
data["InstLifePhase"] = task_data.InstLifePhase;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["MinMarketOrderVolume"] = task_data.MinMarketOrderVolume;
data["EndDelivDate"] = task_data.EndDelivDate;
data["UnderlyingInstrID"] = task_data.UnderlyingInstrID;
data["OpenDate"] = task_data.OpenDate;
data["ProductID"] = task_data.ProductID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInstrument(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryDepthMarketData(Task task)
{
PyLock lock;
CThostFtdcDepthMarketDataField task_data = any_cast<CThostFtdcDepthMarketDataField>(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;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryDepthMarketData(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQrySettlementInfo(Task task)
{
PyLock lock;
CThostFtdcSettlementInfoField task_data = any_cast<CThostFtdcSettlementInfoField>(task.task_data);
dict data;
data["SettlementID"] = task_data.SettlementID;
data["InvestorID"] = task_data.InvestorID;
data["SequenceNo"] = task_data.SequenceNo;
data["Content"] = task_data.Content;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQrySettlementInfo(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryTransferBank(Task task)
{
PyLock lock;
CThostFtdcTransferBankField task_data = any_cast<CThostFtdcTransferBankField>(task.task_data);
dict data;
data["BankName"] = task_data.BankName;
data["IsActive"] = task_data.IsActive;
data["BankBrchID"] = task_data.BankBrchID;
data["BankID"] = task_data.BankID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryTransferBank(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInvestorPositionDetail(Task task)
{
PyLock lock;
CThostFtdcInvestorPositionDetailField task_data = any_cast<CThostFtdcInvestorPositionDetailField>(task.task_data);
dict data;
data["PositionProfitByDate"] = task_data.PositionProfitByDate;
data["ExchMargin"] = task_data.ExchMargin;
data["TradeType"] = task_data.TradeType;
data["MarginRateByMoney"] = task_data.MarginRateByMoney;
data["HedgeFlag"] = task_data.HedgeFlag;
data["MarginRateByVolume"] = task_data.MarginRateByVolume;
data["Direction"] = task_data.Direction;
data["CloseAmount"] = task_data.CloseAmount;
data["OpenPrice"] = task_data.OpenPrice;
data["Volume"] = task_data.Volume;
data["LastSettlementPrice"] = task_data.LastSettlementPrice;
data["CloseVolume"] = task_data.CloseVolume;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["CloseProfitByTrade"] = task_data.CloseProfitByTrade;
data["SettlementID"] = task_data.SettlementID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["Margin"] = task_data.Margin;
data["TradeID"] = task_data.TradeID;
data["PositionProfitByTrade"] = task_data.PositionProfitByTrade;
data["CloseProfitByDate"] = task_data.CloseProfitByDate;
data["SettlementPrice"] = task_data.SettlementPrice;
data["InvestorID"] = task_data.InvestorID;
data["CombInstrumentID"] = task_data.CombInstrumentID;
data["OpenDate"] = task_data.OpenDate;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInvestorPositionDetail(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryNotice(Task task)
{
PyLock lock;
CThostFtdcNoticeField task_data = any_cast<CThostFtdcNoticeField>(task.task_data);
dict data;
data["Content"] = task_data.Content;
data["SequenceLabel"] = task_data.SequenceLabel;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryNotice(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQrySettlementInfoConfirm(Task task)
{
PyLock lock;
CThostFtdcSettlementInfoConfirmField task_data = any_cast<CThostFtdcSettlementInfoConfirmField>(task.task_data);
dict data;
data["ConfirmTime"] = task_data.ConfirmTime;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["ConfirmDate"] = task_data.ConfirmDate;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQrySettlementInfoConfirm(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInvestorPositionCombineDetail(Task task)
{
PyLock lock;
CThostFtdcInvestorPositionCombineDetailField task_data = any_cast<CThostFtdcInvestorPositionCombineDetailField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["TradeGroupID"] = task_data.TradeGroupID;
data["ExchangeID"] = task_data.ExchangeID;
data["MarginRateByVolume"] = task_data.MarginRateByVolume;
data["ComTradeID"] = task_data.ComTradeID;
data["SettlementID"] = task_data.SettlementID;
data["InvestorID"] = task_data.InvestorID;
data["TotalAmt"] = task_data.TotalAmt;
data["Margin"] = task_data.Margin;
data["ExchMargin"] = task_data.ExchMargin;
data["LegMultiple"] = task_data.LegMultiple;
data["HedgeFlag"] = task_data.HedgeFlag;
data["TradeID"] = task_data.TradeID;
data["LegID"] = task_data.LegID;
data["TradingDay"] = task_data.TradingDay;
data["MarginRateByMoney"] = task_data.MarginRateByMoney;
data["Direction"] = task_data.Direction;
data["BrokerID"] = task_data.BrokerID;
data["CombInstrumentID"] = task_data.CombInstrumentID;
data["OpenDate"] = task_data.OpenDate;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInvestorPositionCombineDetail(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryCFMMCTradingAccountKey(Task task)
{
PyLock lock;
CThostFtdcCFMMCTradingAccountKeyField task_data = any_cast<CThostFtdcCFMMCTradingAccountKeyField>(task.task_data);
dict data;
data["KeyID"] = task_data.KeyID;
data["BrokerID"] = task_data.BrokerID;
data["ParticipantID"] = task_data.ParticipantID;
data["CurrentKey"] = task_data.CurrentKey;
data["AccountID"] = task_data.AccountID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryCFMMCTradingAccountKey(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryEWarrantOffset(Task task)
{
PyLock lock;
CThostFtdcEWarrantOffsetField task_data = any_cast<CThostFtdcEWarrantOffsetField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["InvestorID"] = task_data.InvestorID;
data["HedgeFlag"] = task_data.HedgeFlag;
data["Direction"] = task_data.Direction;
data["Volume"] = task_data.Volume;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryEWarrantOffset(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInvestorProductGroupMargin(Task task)
{
PyLock lock;
CThostFtdcInvestorProductGroupMarginField task_data = any_cast<CThostFtdcInvestorProductGroupMarginField>(task.task_data);
dict data;
data["ExchMargin"] = task_data.ExchMargin;
data["ShortExchOffsetAmount"] = task_data.ShortExchOffsetAmount;
data["FrozenMargin"] = task_data.FrozenMargin;
data["ShortFrozenMargin"] = task_data.ShortFrozenMargin;
data["HedgeFlag"] = task_data.HedgeFlag;
data["PositionProfit"] = task_data.PositionProfit;
data["Commission"] = task_data.Commission;
data["LongOffsetAmount"] = task_data.LongOffsetAmount;
data["CashIn"] = task_data.CashIn;
data["ShortUseMargin"] = task_data.ShortUseMargin;
data["ShortOffsetAmount"] = task_data.ShortOffsetAmount;
data["SettlementID"] = task_data.SettlementID;
data["LongExchOffsetAmount"] = task_data.LongExchOffsetAmount;
data["LongUseMargin"] = task_data.LongUseMargin;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["FrozenCash"] = task_data.FrozenCash;
data["LongFrozenMargin"] = task_data.LongFrozenMargin;
data["ShortExchMargin"] = task_data.ShortExchMargin;
data["FrozenCommission"] = task_data.FrozenCommission;
data["ProductGroupID"] = task_data.ProductGroupID;
data["ExchOffsetAmount"] = task_data.ExchOffsetAmount;
data["InvestorID"] = task_data.InvestorID;
data["LongExchMargin"] = task_data.LongExchMargin;
data["CloseProfit"] = task_data.CloseProfit;
data["OffsetAmount"] = task_data.OffsetAmount;
data["UseMargin"] = task_data.UseMargin;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInvestorProductGroupMargin(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryExchangeMarginRate(Task task)
{
PyLock lock;
CThostFtdcExchangeMarginRateField task_data = any_cast<CThostFtdcExchangeMarginRateField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ShortMarginRatioByMoney"] = task_data.ShortMarginRatioByMoney;
data["LongMarginRatioByMoney"] = task_data.LongMarginRatioByMoney;
data["HedgeFlag"] = task_data.HedgeFlag;
data["BrokerID"] = task_data.BrokerID;
data["ShortMarginRatioByVolume"] = task_data.ShortMarginRatioByVolume;
data["LongMarginRatioByVolume"] = task_data.LongMarginRatioByVolume;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryExchangeMarginRate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryExchangeMarginRateAdjust(Task task)
{
PyLock lock;
CThostFtdcExchangeMarginRateAdjustField task_data = any_cast<CThostFtdcExchangeMarginRateAdjustField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ShortMarginRatioByMoney"] = task_data.ShortMarginRatioByMoney;
data["ExchLongMarginRatioByMoney"] = task_data.ExchLongMarginRatioByMoney;
data["ExchShortMarginRatioByMoney"] = task_data.ExchShortMarginRatioByMoney;
data["LongMarginRatioByMoney"] = task_data.LongMarginRatioByMoney;
data["ExchShortMarginRatioByVolume"] = task_data.ExchShortMarginRatioByVolume;
data["ExchLongMarginRatioByVolume"] = task_data.ExchLongMarginRatioByVolume;
data["NoShortMarginRatioByMoney"] = task_data.NoShortMarginRatioByMoney;
data["NoLongMarginRatioByMoney"] = task_data.NoLongMarginRatioByMoney;
data["HedgeFlag"] = task_data.HedgeFlag;
data["NoLongMarginRatioByVolume"] = task_data.NoLongMarginRatioByVolume;
data["NoShortMarginRatioByVolume"] = task_data.NoShortMarginRatioByVolume;
data["BrokerID"] = task_data.BrokerID;
data["ShortMarginRatioByVolume"] = task_data.ShortMarginRatioByVolume;
data["LongMarginRatioByVolume"] = task_data.LongMarginRatioByVolume;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryExchangeMarginRateAdjust(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryExchangeRate(Task task)
{
PyLock lock;
CThostFtdcExchangeRateField task_data = any_cast<CThostFtdcExchangeRateField>(task.task_data);
dict data;
data["FromCurrencyID"] = task_data.FromCurrencyID;
data["FromCurrencyUnit"] = task_data.FromCurrencyUnit;
data["BrokerID"] = task_data.BrokerID;
data["ExchangeRate"] = task_data.ExchangeRate;
data["ToCurrencyID"] = task_data.ToCurrencyID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryExchangeRate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQrySecAgentACIDMap(Task task)
{
PyLock lock;
CThostFtdcSecAgentACIDMapField task_data = any_cast<CThostFtdcSecAgentACIDMapField>(task.task_data);
dict data;
data["CurrencyID"] = task_data.CurrencyID;
data["UserID"] = task_data.UserID;
data["BrokerSecAgentID"] = task_data.BrokerSecAgentID;
data["BrokerID"] = task_data.BrokerID;
data["AccountID"] = task_data.AccountID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQrySecAgentACIDMap(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryProductExchRate(Task task)
{
PyLock lock;
CThostFtdcProductExchRateField task_data = any_cast<CThostFtdcProductExchRateField>(task.task_data);
dict data;
data["QuoteCurrencyID"] = task_data.QuoteCurrencyID;
data["ExchangeRate"] = task_data.ExchangeRate;
data["ProductID"] = task_data.ProductID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryProductExchRate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryProductGroup(Task task)
{
PyLock lock;
CThostFtdcProductGroupField task_data = any_cast<CThostFtdcProductGroupField>(task.task_data);
dict data;
data["ExchangeID"] = task_data.ExchangeID;
data["ProductGroupID"] = task_data.ProductGroupID;
data["ProductID"] = task_data.ProductID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryProductGroup(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryOptionInstrTradeCost(Task task)
{
PyLock lock;
CThostFtdcOptionInstrTradeCostField task_data = any_cast<CThostFtdcOptionInstrTradeCostField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["ExchMiniMargin"] = task_data.ExchMiniMargin;
data["HedgeFlag"] = task_data.HedgeFlag;
data["InvestorID"] = task_data.InvestorID;
data["Royalty"] = task_data.Royalty;
data["BrokerID"] = task_data.BrokerID;
data["MiniMargin"] = task_data.MiniMargin;
data["ExchFixedMargin"] = task_data.ExchFixedMargin;
data["FixedMargin"] = task_data.FixedMargin;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryOptionInstrTradeCost(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryOptionInstrCommRate(Task task)
{
PyLock lock;
CThostFtdcOptionInstrCommRateField task_data = any_cast<CThostFtdcOptionInstrCommRateField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["OpenRatioByMoney"] = task_data.OpenRatioByMoney;
data["StrikeRatioByMoney"] = task_data.StrikeRatioByMoney;
data["CloseRatioByVolume"] = task_data.CloseRatioByVolume;
data["CloseTodayRatioByMoney"] = task_data.CloseTodayRatioByMoney;
data["ExchangeID"] = task_data.ExchangeID;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["InvestorRange"] = task_data.InvestorRange;
data["CloseRatioByMoney"] = task_data.CloseRatioByMoney;
data["OpenRatioByVolume"] = task_data.OpenRatioByVolume;
data["StrikeRatioByVolume"] = task_data.StrikeRatioByVolume;
data["CloseTodayRatioByVolume"] = task_data.CloseTodayRatioByVolume;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryOptionInstrCommRate(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryExecOrder(Task task)
{
PyLock lock;
CThostFtdcExecOrderField task_data = any_cast<CThostFtdcExecOrderField>(task.task_data);
dict data;
data["NotifySequence"] = task_data.NotifySequence;
data["CloseFlag"] = task_data.CloseFlag;
data["ActiveUserID"] = task_data.ActiveUserID;
data["UserProductInfo"] = task_data.UserProductInfo;
data["TraderID"] = task_data.TraderID;
data["HedgeFlag"] = task_data.HedgeFlag;
data["ExecResult"] = task_data.ExecResult;
data["ReservePositionFlag"] = task_data.ReservePositionFlag;
data["Volume"] = task_data.Volume;
data["InstallID"] = task_data.InstallID;
data["OffsetFlag"] = task_data.OffsetFlag;
data["PosiDirection"] = task_data.PosiDirection;
data["ClientID"] = task_data.ClientID;
data["ExecOrderRef"] = task_data.ExecOrderRef;
data["SessionID"] = task_data.SessionID;
data["ActionType"] = task_data.ActionType;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["ClearingPartID"] = task_data.ClearingPartID;
data["InstrumentID"] = task_data.InstrumentID;
data["ExecOrderSysID"] = task_data.ExecOrderSysID;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["UserID"] = task_data.UserID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["ExecOrderLocalID"] = task_data.ExecOrderLocalID;
data["ParticipantID"] = task_data.ParticipantID;
data["CancelTime"] = task_data.CancelTime;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["SequenceNo"] = task_data.SequenceNo;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["RequestID"] = task_data.RequestID;
data["BrokerExecOrderSeq"] = task_data.BrokerExecOrderSeq;
data["FrontID"] = task_data.FrontID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryExecOrder(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryForQuote(Task task)
{
PyLock lock;
CThostFtdcForQuoteField task_data = any_cast<CThostFtdcForQuoteField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ForQuoteRef"] = task_data.ForQuoteRef;
data["ExchangeID"] = task_data.ExchangeID;
data["InstallID"] = task_data.InstallID;
data["ForQuoteLocalID"] = task_data.ForQuoteLocalID;
data["ParticipantID"] = task_data.ParticipantID;
data["ActiveUserID"] = task_data.ActiveUserID;
data["InsertDate"] = task_data.InsertDate;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["SessionID"] = task_data.SessionID;
data["ClientID"] = task_data.ClientID;
data["StatusMsg"] = task_data.StatusMsg;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["ForQuoteStatus"] = task_data.ForQuoteStatus;
data["FrontID"] = task_data.FrontID;
data["BrokerForQutoSeq"] = task_data.BrokerForQutoSeq;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryForQuote(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryQuote(Task task)
{
PyLock lock;
CThostFtdcQuoteField task_data = any_cast<CThostFtdcQuoteField>(task.task_data);
dict data;
data["NotifySequence"] = task_data.NotifySequence;
data["AskHedgeFlag"] = task_data.AskHedgeFlag;
data["BidOrderSysID"] = task_data.BidOrderSysID;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["AskVolume"] = task_data.AskVolume;
data["BidOrderRef"] = task_data.BidOrderRef;
data["ActiveUserID"] = task_data.ActiveUserID;
data["BidHedgeFlag"] = task_data.BidHedgeFlag;
data["QuoteRef"] = task_data.QuoteRef;
data["AskOrderSysID"] = task_data.AskOrderSysID;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["UserProductInfo"] = task_data.UserProductInfo;
data["AskOffsetFlag"] = task_data.AskOffsetFlag;
data["ClientID"] = task_data.ClientID;
data["SessionID"] = task_data.SessionID;
data["BidOffsetFlag"] = task_data.BidOffsetFlag;
data["BidPrice"] = task_data.BidPrice;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["InstrumentID"] = task_data.InstrumentID;
data["QuoteStatus"] = task_data.QuoteStatus;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["QuoteLocalID"] = task_data.QuoteLocalID;
data["BidVolume"] = task_data.BidVolume;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["QuoteSysID"] = task_data.QuoteSysID;
data["ClearingPartID"] = task_data.ClearingPartID;
data["ForQuoteSysID"] = task_data.ForQuoteSysID;
data["CancelTime"] = task_data.CancelTime;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["AskPrice"] = task_data.AskPrice;
data["SequenceNo"] = task_data.SequenceNo;
data["AskOrderRef"] = task_data.AskOrderRef;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["RequestID"] = task_data.RequestID;
data["BrokerQuoteSeq"] = task_data.BrokerQuoteSeq;
data["FrontID"] = task_data.FrontID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryQuote(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryLock(Task task)
{
PyLock lock;
CThostFtdcLockField task_data = any_cast<CThostFtdcLockField>(task.task_data);
dict data;
data["LockStatus"] = task_data.LockStatus;
data["NotifySequence"] = task_data.NotifySequence;
data["ActiveUserID"] = task_data.ActiveUserID;
data["UserProductInfo"] = task_data.UserProductInfo;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["LockLocalID"] = task_data.LockLocalID;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["ClientID"] = task_data.ClientID;
data["Volume"] = task_data.Volume;
data["SessionID"] = task_data.SessionID;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["ClearingPartID"] = task_data.ClearingPartID;
data["CancelTime"] = task_data.CancelTime;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["BrokerLockSeq"] = task_data.BrokerLockSeq;
data["SequenceNo"] = task_data.SequenceNo;
data["LockRef"] = task_data.LockRef;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["RequestID"] = task_data.RequestID;
data["FrontID"] = task_data.FrontID;
data["LockSysID"] = task_data.LockSysID;
data["LockType"] = task_data.LockType;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryLock(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryLockPosition(Task task)
{
PyLock lock;
CThostFtdcLockPositionField task_data = any_cast<CThostFtdcLockPositionField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["FrozenVolume"] = task_data.FrozenVolume;
data["Volume"] = task_data.Volume;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryLockPosition(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryInvestorLevel(Task task)
{
PyLock lock;
CThostFtdcInvestorLevelField task_data = any_cast<CThostFtdcInvestorLevelField>(task.task_data);
dict data;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeID"] = task_data.ExchangeID;
data["LevelType"] = task_data.LevelType;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryInvestorLevel(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryExecFreeze(Task task)
{
PyLock lock;
CThostFtdcExecFreezeField task_data = any_cast<CThostFtdcExecFreezeField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["OptionsType"] = task_data.OptionsType;
data["PosiDirection"] = task_data.PosiDirection;
data["FrozenAmount"] = task_data.FrozenAmount;
data["Volume"] = task_data.Volume;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryExecFreeze(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryCombInstrumentGuard(Task task)
{
PyLock lock;
CThostFtdcCombInstrumentGuardField task_data = any_cast<CThostFtdcCombInstrumentGuardField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["GuarantRatio"] = task_data.GuarantRatio;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryCombInstrumentGuard(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryCombAction(Task task)
{
PyLock lock;
CThostFtdcCombActionField task_data = any_cast<CThostFtdcCombActionField>(task.task_data);
dict data;
data["NotifySequence"] = task_data.NotifySequence;
data["UserProductInfo"] = task_data.UserProductInfo;
data["TraderID"] = task_data.TraderID;
data["HedgeFlag"] = task_data.HedgeFlag;
data["ActionStatus"] = task_data.ActionStatus;
data["CombDirection"] = task_data.CombDirection;
data["Direction"] = task_data.Direction;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["InvestorID"] = task_data.InvestorID;
data["ClientID"] = task_data.ClientID;
data["Volume"] = task_data.Volume;
data["SessionID"] = task_data.SessionID;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["UserID"] = task_data.UserID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["CombActionRef"] = task_data.CombActionRef;
data["SequenceNo"] = task_data.SequenceNo;
data["ActionLocalID"] = task_data.ActionLocalID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["FrontID"] = task_data.FrontID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryCombAction(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryTransferSerial(Task task)
{
PyLock lock;
CThostFtdcTransferSerialField task_data = any_cast<CThostFtdcTransferSerialField>(task.task_data);
dict data;
data["BankNewAccount"] = task_data.BankNewAccount;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["TradeTime"] = task_data.TradeTime;
data["OperatorCode"] = task_data.OperatorCode;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureAccType"] = task_data.FutureAccType;
data["ErrorID"] = task_data.ErrorID;
data["BankSerial"] = task_data.BankSerial;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["IdCardType"] = task_data.IdCardType;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["FutureSerial"] = task_data.FutureSerial;
data["InvestorID"] = task_data.InvestorID;
data["ErrorMsg"] = task_data.ErrorMsg;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["AvailabilityFlag"] = task_data.AvailabilityFlag;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryTransferSerial(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryAccountregister(Task task)
{
PyLock lock;
CThostFtdcAccountregisterField task_data = any_cast<CThostFtdcAccountregisterField>(task.task_data);
dict data;
data["BankAccount"] = task_data.BankAccount;
data["CustType"] = task_data.CustType;
data["CustomerName"] = task_data.CustomerName;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["OutDate"] = task_data.OutDate;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["BankBranchID"] = task_data.BankBranchID;
data["RegDate"] = task_data.RegDate;
data["BrokerID"] = task_data.BrokerID;
data["BankID"] = task_data.BankID;
data["TID"] = task_data.TID;
data["OpenOrDestroy"] = task_data.OpenOrDestroy;
data["IdCardType"] = task_data.IdCardType;
data["TradeDay"] = task_data.TradeDay;
data["BankAccType"] = task_data.BankAccType;
data["AccountID"] = task_data.AccountID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryAccountregister(data, error, task.task_id, task.task_last);
};
void TdApi::processRspError(Task task)
{
PyLock lock;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(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 TdApi::processRtnOrder(Task task)
{
PyLock lock;
CThostFtdcOrderField task_data = any_cast<CThostFtdcOrderField>(task.task_data);
dict data;
data["ContingentCondition"] = task_data.ContingentCondition;
data["NotifySequence"] = task_data.NotifySequence;
data["ActiveUserID"] = task_data.ActiveUserID;
data["VolumeTraded"] = task_data.VolumeTraded;
data["UserProductInfo"] = task_data.UserProductInfo;
data["CombOffsetFlag"] = task_data.CombOffsetFlag;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["UserForceClose"] = task_data.UserForceClose;
data["RelativeOrderSysID"] = task_data.RelativeOrderSysID;
data["Direction"] = task_data.Direction;
data["InstallID"] = task_data.InstallID;
data["IsSwapOrder"] = task_data.IsSwapOrder;
data["ParticipantID"] = task_data.ParticipantID;
data["VolumeTotalOriginal"] = task_data.VolumeTotalOriginal;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["ClientID"] = task_data.ClientID;
data["VolumeTotal"] = task_data.VolumeTotal;
data["OrderPriceType"] = task_data.OrderPriceType;
data["SessionID"] = task_data.SessionID;
data["TimeCondition"] = task_data.TimeCondition;
data["OrderStatus"] = task_data.OrderStatus;
data["OrderSysID"] = task_data.OrderSysID;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["IsAutoSuspend"] = task_data.IsAutoSuspend;
data["StopPrice"] = task_data.StopPrice;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["MinVolume"] = task_data.MinVolume;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["ForceCloseReason"] = task_data.ForceCloseReason;
data["OrderType"] = task_data.OrderType;
data["UpdateTime"] = task_data.UpdateTime;
data["TradingDay"] = task_data.TradingDay;
data["ActiveTime"] = task_data.ActiveTime;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["FrontID"] = task_data.FrontID;
data["SuspendTime"] = task_data.SuspendTime;
data["ClearingPartID"] = task_data.ClearingPartID;
data["CombHedgeFlag"] = task_data.CombHedgeFlag;
data["CancelTime"] = task_data.CancelTime;
data["GTDDate"] = task_data.GTDDate;
data["OrderLocalID"] = task_data.OrderLocalID;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["SequenceNo"] = task_data.SequenceNo;
data["OrderRef"] = task_data.OrderRef;
data["BrokerOrderSeq"] = task_data.BrokerOrderSeq;
data["InvestorID"] = task_data.InvestorID;
data["VolumeCondition"] = task_data.VolumeCondition;
data["RequestID"] = task_data.RequestID;
data["OrderSource"] = task_data.OrderSource;
data["ZCETotalTradedVolume"] = task_data.ZCETotalTradedVolume;
data["ActiveTraderID"] = task_data.ActiveTraderID;
this->onRtnOrder(data);
};
void TdApi::processRtnTrade(Task task)
{
PyLock lock;
CThostFtdcTradeField task_data = any_cast<CThostFtdcTradeField>(task.task_data);
dict data;
data["TradeType"] = task_data.TradeType;
data["TraderID"] = task_data.TraderID;
data["HedgeFlag"] = task_data.HedgeFlag;
data["TradeTime"] = task_data.TradeTime;
data["Direction"] = task_data.Direction;
data["ParticipantID"] = task_data.ParticipantID;
data["Price"] = task_data.Price;
data["ClientID"] = task_data.ClientID;
data["Volume"] = task_data.Volume;
data["OrderSysID"] = task_data.OrderSysID;
data["ClearingPartID"] = task_data.ClearingPartID;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["SettlementID"] = task_data.SettlementID;
data["UserID"] = task_data.UserID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["OffsetFlag"] = task_data.OffsetFlag;
data["OrderLocalID"] = task_data.OrderLocalID;
data["TradeID"] = task_data.TradeID;
data["TradeDate"] = task_data.TradeDate;
data["BusinessUnit"] = task_data.BusinessUnit;
data["SequenceNo"] = task_data.SequenceNo;
data["OrderRef"] = task_data.OrderRef;
data["BrokerOrderSeq"] = task_data.BrokerOrderSeq;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["TradeSource"] = task_data.TradeSource;
data["PriceSource"] = task_data.PriceSource;
data["TradingRole"] = task_data.TradingRole;
this->onRtnTrade(data);
};
void TdApi::processErrRtnOrderInsert(Task task)
{
PyLock lock;
CThostFtdcInputOrderField task_data = any_cast<CThostFtdcInputOrderField>(task.task_data);
dict data;
data["ContingentCondition"] = task_data.ContingentCondition;
data["CombOffsetFlag"] = task_data.CombOffsetFlag;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["UserForceClose"] = task_data.UserForceClose;
data["Direction"] = task_data.Direction;
data["IsSwapOrder"] = task_data.IsSwapOrder;
data["VolumeTotalOriginal"] = task_data.VolumeTotalOriginal;
data["OrderPriceType"] = task_data.OrderPriceType;
data["TimeCondition"] = task_data.TimeCondition;
data["IsAutoSuspend"] = task_data.IsAutoSuspend;
data["StopPrice"] = task_data.StopPrice;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["MinVolume"] = task_data.MinVolume;
data["ForceCloseReason"] = task_data.ForceCloseReason;
data["BrokerID"] = task_data.BrokerID;
data["CombHedgeFlag"] = task_data.CombHedgeFlag;
data["GTDDate"] = task_data.GTDDate;
data["BusinessUnit"] = task_data.BusinessUnit;
data["OrderRef"] = task_data.OrderRef;
data["InvestorID"] = task_data.InvestorID;
data["VolumeCondition"] = task_data.VolumeCondition;
data["RequestID"] = task_data.RequestID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnOrderInsert(data, error);
};
void TdApi::processErrRtnOrderAction(Task task)
{
PyLock lock;
CThostFtdcOrderActionField task_data = any_cast<CThostFtdcOrderActionField>(task.task_data);
dict data;
data["ActionTime"] = task_data.ActionTime;
data["InvestorID"] = task_data.InvestorID;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["OrderActionStatus"] = task_data.OrderActionStatus;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["OrderActionRef"] = task_data.OrderActionRef;
data["VolumeChange"] = task_data.VolumeChange;
data["SessionID"] = task_data.SessionID;
data["ActionFlag"] = task_data.ActionFlag;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["OrderSysID"] = task_data.OrderSysID;
data["BrokerID"] = task_data.BrokerID;
data["ClientID"] = task_data.ClientID;
data["ActionDate"] = task_data.ActionDate;
data["OrderLocalID"] = task_data.OrderLocalID;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["OrderRef"] = task_data.OrderRef;
data["ActionLocalID"] = task_data.ActionLocalID;
data["RequestID"] = task_data.RequestID;
data["FrontID"] = task_data.FrontID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnOrderAction(data, error);
};
void TdApi::processRtnInstrumentStatus(Task task)
{
PyLock lock;
CThostFtdcInstrumentStatusField task_data = any_cast<CThostFtdcInstrumentStatusField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["EnterTime"] = task_data.EnterTime;
data["SettlementGroupID"] = task_data.SettlementGroupID;
data["TradingSegmentSN"] = task_data.TradingSegmentSN;
data["EnterReason"] = task_data.EnterReason;
data["InstrumentStatus"] = task_data.InstrumentStatus;
data["ExchangeInstID"] = task_data.ExchangeInstID;
this->onRtnInstrumentStatus(data);
};
void TdApi::processRtnTradingNotice(Task task)
{
PyLock lock;
CThostFtdcTradingNoticeInfoField task_data = any_cast<CThostFtdcTradingNoticeInfoField>(task.task_data);
dict data;
data["SequenceSeries"] = task_data.SequenceSeries;
data["SequenceNo"] = task_data.SequenceNo;
data["FieldContent"] = task_data.FieldContent;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["SendTime"] = task_data.SendTime;
this->onRtnTradingNotice(data);
};
void TdApi::processRtnErrorConditionalOrder(Task task)
{
PyLock lock;
CThostFtdcErrorConditionalOrderField task_data = any_cast<CThostFtdcErrorConditionalOrderField>(task.task_data);
dict data;
data["ContingentCondition"] = task_data.ContingentCondition;
data["NotifySequence"] = task_data.NotifySequence;
data["ActiveUserID"] = task_data.ActiveUserID;
data["VolumeTraded"] = task_data.VolumeTraded;
data["UserProductInfo"] = task_data.UserProductInfo;
data["CombOffsetFlag"] = task_data.CombOffsetFlag;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["UserForceClose"] = task_data.UserForceClose;
data["RelativeOrderSysID"] = task_data.RelativeOrderSysID;
data["Direction"] = task_data.Direction;
data["InstallID"] = task_data.InstallID;
data["IsSwapOrder"] = task_data.IsSwapOrder;
data["ParticipantID"] = task_data.ParticipantID;
data["VolumeTotalOriginal"] = task_data.VolumeTotalOriginal;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["ClientID"] = task_data.ClientID;
data["VolumeTotal"] = task_data.VolumeTotal;
data["OrderPriceType"] = task_data.OrderPriceType;
data["SessionID"] = task_data.SessionID;
data["TimeCondition"] = task_data.TimeCondition;
data["OrderStatus"] = task_data.OrderStatus;
data["OrderSysID"] = task_data.OrderSysID;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["IsAutoSuspend"] = task_data.IsAutoSuspend;
data["StopPrice"] = task_data.StopPrice;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["MinVolume"] = task_data.MinVolume;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["ForceCloseReason"] = task_data.ForceCloseReason;
data["OrderType"] = task_data.OrderType;
data["ErrorID"] = task_data.ErrorID;
data["UpdateTime"] = task_data.UpdateTime;
data["TradingDay"] = task_data.TradingDay;
data["ActiveTime"] = task_data.ActiveTime;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["FrontID"] = task_data.FrontID;
data["SuspendTime"] = task_data.SuspendTime;
data["ClearingPartID"] = task_data.ClearingPartID;
data["CombHedgeFlag"] = task_data.CombHedgeFlag;
data["CancelTime"] = task_data.CancelTime;
data["GTDDate"] = task_data.GTDDate;
data["OrderLocalID"] = task_data.OrderLocalID;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["SequenceNo"] = task_data.SequenceNo;
data["OrderRef"] = task_data.OrderRef;
data["BrokerOrderSeq"] = task_data.BrokerOrderSeq;
data["InvestorID"] = task_data.InvestorID;
data["VolumeCondition"] = task_data.VolumeCondition;
data["RequestID"] = task_data.RequestID;
data["ErrorMsg"] = task_data.ErrorMsg;
data["OrderSource"] = task_data.OrderSource;
data["ZCETotalTradedVolume"] = task_data.ZCETotalTradedVolume;
data["ActiveTraderID"] = task_data.ActiveTraderID;
this->onRtnErrorConditionalOrder(data);
};
void TdApi::processRtnExecOrder(Task task)
{
PyLock lock;
CThostFtdcExecOrderField task_data = any_cast<CThostFtdcExecOrderField>(task.task_data);
dict data;
data["NotifySequence"] = task_data.NotifySequence;
data["CloseFlag"] = task_data.CloseFlag;
data["ActiveUserID"] = task_data.ActiveUserID;
data["UserProductInfo"] = task_data.UserProductInfo;
data["TraderID"] = task_data.TraderID;
data["HedgeFlag"] = task_data.HedgeFlag;
data["ExecResult"] = task_data.ExecResult;
data["ReservePositionFlag"] = task_data.ReservePositionFlag;
data["Volume"] = task_data.Volume;
data["InstallID"] = task_data.InstallID;
data["OffsetFlag"] = task_data.OffsetFlag;
data["PosiDirection"] = task_data.PosiDirection;
data["ClientID"] = task_data.ClientID;
data["ExecOrderRef"] = task_data.ExecOrderRef;
data["SessionID"] = task_data.SessionID;
data["ActionType"] = task_data.ActionType;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["ClearingPartID"] = task_data.ClearingPartID;
data["InstrumentID"] = task_data.InstrumentID;
data["ExecOrderSysID"] = task_data.ExecOrderSysID;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["UserID"] = task_data.UserID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["ExecOrderLocalID"] = task_data.ExecOrderLocalID;
data["ParticipantID"] = task_data.ParticipantID;
data["CancelTime"] = task_data.CancelTime;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["SequenceNo"] = task_data.SequenceNo;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["RequestID"] = task_data.RequestID;
data["BrokerExecOrderSeq"] = task_data.BrokerExecOrderSeq;
data["FrontID"] = task_data.FrontID;
this->onRtnExecOrder(data);
};
void TdApi::processErrRtnExecOrderInsert(Task task)
{
PyLock lock;
CThostFtdcInputExecOrderField task_data = any_cast<CThostFtdcInputExecOrderField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExecOrderRef"] = task_data.ExecOrderRef;
data["ExchangeID"] = task_data.ExchangeID;
data["CloseFlag"] = task_data.CloseFlag;
data["OffsetFlag"] = task_data.OffsetFlag;
data["PosiDirection"] = task_data.PosiDirection;
data["BusinessUnit"] = task_data.BusinessUnit;
data["HedgeFlag"] = task_data.HedgeFlag;
data["UserID"] = task_data.UserID;
data["Volume"] = task_data.Volume;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["ActionType"] = task_data.ActionType;
data["ReservePositionFlag"] = task_data.ReservePositionFlag;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnExecOrderInsert(data, error);
};
void TdApi::processErrRtnExecOrderAction(Task task)
{
PyLock lock;
CThostFtdcExecOrderActionField task_data = any_cast<CThostFtdcExecOrderActionField>(task.task_data);
dict data;
data["ActionTime"] = task_data.ActionTime;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["OrderActionStatus"] = task_data.OrderActionStatus;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["InvestorID"] = task_data.InvestorID;
data["ClientID"] = task_data.ClientID;
data["ExecOrderRef"] = task_data.ExecOrderRef;
data["SessionID"] = task_data.SessionID;
data["ActionType"] = task_data.ActionType;
data["ActionFlag"] = task_data.ActionFlag;
data["InstrumentID"] = task_data.InstrumentID;
data["ExecOrderSysID"] = task_data.ExecOrderSysID;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["BrokerID"] = task_data.BrokerID;
data["ExecOrderLocalID"] = task_data.ExecOrderLocalID;
data["ActionDate"] = task_data.ActionDate;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["ActionLocalID"] = task_data.ActionLocalID;
data["RequestID"] = task_data.RequestID;
data["ExecOrderActionRef"] = task_data.ExecOrderActionRef;
data["FrontID"] = task_data.FrontID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnExecOrderAction(data, error);
};
void TdApi::processErrRtnForQuoteInsert(Task task)
{
PyLock lock;
CThostFtdcInputForQuoteField task_data = any_cast<CThostFtdcInputForQuoteField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ForQuoteRef"] = task_data.ForQuoteRef;
data["ExchangeID"] = task_data.ExchangeID;
data["UserID"] = task_data.UserID;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnForQuoteInsert(data, error);
};
void TdApi::processRtnQuote(Task task)
{
PyLock lock;
CThostFtdcQuoteField task_data = any_cast<CThostFtdcQuoteField>(task.task_data);
dict data;
data["NotifySequence"] = task_data.NotifySequence;
data["AskHedgeFlag"] = task_data.AskHedgeFlag;
data["BidOrderSysID"] = task_data.BidOrderSysID;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["AskVolume"] = task_data.AskVolume;
data["BidOrderRef"] = task_data.BidOrderRef;
data["ActiveUserID"] = task_data.ActiveUserID;
data["BidHedgeFlag"] = task_data.BidHedgeFlag;
data["QuoteRef"] = task_data.QuoteRef;
data["AskOrderSysID"] = task_data.AskOrderSysID;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["UserProductInfo"] = task_data.UserProductInfo;
data["AskOffsetFlag"] = task_data.AskOffsetFlag;
data["ClientID"] = task_data.ClientID;
data["SessionID"] = task_data.SessionID;
data["BidOffsetFlag"] = task_data.BidOffsetFlag;
data["BidPrice"] = task_data.BidPrice;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["InstrumentID"] = task_data.InstrumentID;
data["QuoteStatus"] = task_data.QuoteStatus;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["QuoteLocalID"] = task_data.QuoteLocalID;
data["BidVolume"] = task_data.BidVolume;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["QuoteSysID"] = task_data.QuoteSysID;
data["ClearingPartID"] = task_data.ClearingPartID;
data["ForQuoteSysID"] = task_data.ForQuoteSysID;
data["CancelTime"] = task_data.CancelTime;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["AskPrice"] = task_data.AskPrice;
data["SequenceNo"] = task_data.SequenceNo;
data["AskOrderRef"] = task_data.AskOrderRef;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["RequestID"] = task_data.RequestID;
data["BrokerQuoteSeq"] = task_data.BrokerQuoteSeq;
data["FrontID"] = task_data.FrontID;
this->onRtnQuote(data);
};
void TdApi::processErrRtnQuoteInsert(Task task)
{
PyLock lock;
CThostFtdcInputQuoteField task_data = any_cast<CThostFtdcInputQuoteField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["AskHedgeFlag"] = task_data.AskHedgeFlag;
data["BusinessUnit"] = task_data.BusinessUnit;
data["AskPrice"] = task_data.AskPrice;
data["UserID"] = task_data.UserID;
data["AskOffsetFlag"] = task_data.AskOffsetFlag;
data["BidVolume"] = task_data.BidVolume;
data["AskOrderRef"] = task_data.AskOrderRef;
data["AskVolume"] = task_data.AskVolume;
data["InvestorID"] = task_data.InvestorID;
data["BidOffsetFlag"] = task_data.BidOffsetFlag;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["ForQuoteSysID"] = task_data.ForQuoteSysID;
data["BidPrice"] = task_data.BidPrice;
data["BidHedgeFlag"] = task_data.BidHedgeFlag;
data["QuoteRef"] = task_data.QuoteRef;
data["BidOrderRef"] = task_data.BidOrderRef;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnQuoteInsert(data, error);
};
void TdApi::processErrRtnQuoteAction(Task task)
{
PyLock lock;
CThostFtdcQuoteActionField task_data = any_cast<CThostFtdcQuoteActionField>(task.task_data);
dict data;
data["ActionTime"] = task_data.ActionTime;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["OrderActionStatus"] = task_data.OrderActionStatus;
data["QuoteRef"] = task_data.QuoteRef;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["InvestorID"] = task_data.InvestorID;
data["ClientID"] = task_data.ClientID;
data["SessionID"] = task_data.SessionID;
data["ActionFlag"] = task_data.ActionFlag;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["QuoteActionRef"] = task_data.QuoteActionRef;
data["StatusMsg"] = task_data.StatusMsg;
data["QuoteLocalID"] = task_data.QuoteLocalID;
data["BrokerID"] = task_data.BrokerID;
data["QuoteSysID"] = task_data.QuoteSysID;
data["ActionDate"] = task_data.ActionDate;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["ActionLocalID"] = task_data.ActionLocalID;
data["RequestID"] = task_data.RequestID;
data["FrontID"] = task_data.FrontID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnQuoteAction(data, error);
};
void TdApi::processRtnForQuoteRsp(Task task)
{
PyLock lock;
CThostFtdcForQuoteRspField task_data = any_cast<CThostFtdcForQuoteRspField>(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);
};
void TdApi::processRtnCFMMCTradingAccountToken(Task task)
{
PyLock lock;
CThostFtdcCFMMCTradingAccountTokenField task_data = any_cast<CThostFtdcCFMMCTradingAccountTokenField>(task.task_data);
dict data;
data["Token"] = task_data.Token;
data["KeyID"] = task_data.KeyID;
data["BrokerID"] = task_data.BrokerID;
data["ParticipantID"] = task_data.ParticipantID;
data["AccountID"] = task_data.AccountID;
this->onRtnCFMMCTradingAccountToken(data);
};
void TdApi::processRtnLock(Task task)
{
PyLock lock;
CThostFtdcLockField task_data = any_cast<CThostFtdcLockField>(task.task_data);
dict data;
data["LockStatus"] = task_data.LockStatus;
data["NotifySequence"] = task_data.NotifySequence;
data["ActiveUserID"] = task_data.ActiveUserID;
data["UserProductInfo"] = task_data.UserProductInfo;
data["TraderID"] = task_data.TraderID;
data["UserID"] = task_data.UserID;
data["LockLocalID"] = task_data.LockLocalID;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["ClientID"] = task_data.ClientID;
data["Volume"] = task_data.Volume;
data["SessionID"] = task_data.SessionID;
data["OrderSubmitStatus"] = task_data.OrderSubmitStatus;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["InsertTime"] = task_data.InsertTime;
data["ClearingPartID"] = task_data.ClearingPartID;
data["CancelTime"] = task_data.CancelTime;
data["BranchID"] = task_data.BranchID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["InsertDate"] = task_data.InsertDate;
data["BrokerLockSeq"] = task_data.BrokerLockSeq;
data["SequenceNo"] = task_data.SequenceNo;
data["LockRef"] = task_data.LockRef;
data["InvestorID"] = task_data.InvestorID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["RequestID"] = task_data.RequestID;
data["FrontID"] = task_data.FrontID;
data["LockSysID"] = task_data.LockSysID;
data["LockType"] = task_data.LockType;
this->onRtnLock(data);
};
void TdApi::processErrRtnLockInsert(Task task)
{
PyLock lock;
CThostFtdcInputLockField task_data = any_cast<CThostFtdcInputLockField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["BusinessUnit"] = task_data.BusinessUnit;
data["UserID"] = task_data.UserID;
data["LockRef"] = task_data.LockRef;
data["Volume"] = task_data.Volume;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["LockType"] = task_data.LockType;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnLockInsert(data, error);
};
void TdApi::processRtnCombAction(Task task)
{
PyLock lock;
CThostFtdcCombActionField task_data = any_cast<CThostFtdcCombActionField>(task.task_data);
dict data;
data["NotifySequence"] = task_data.NotifySequence;
data["UserProductInfo"] = task_data.UserProductInfo;
data["TraderID"] = task_data.TraderID;
data["HedgeFlag"] = task_data.HedgeFlag;
data["ActionStatus"] = task_data.ActionStatus;
data["CombDirection"] = task_data.CombDirection;
data["Direction"] = task_data.Direction;
data["InstallID"] = task_data.InstallID;
data["ParticipantID"] = task_data.ParticipantID;
data["InvestorID"] = task_data.InvestorID;
data["ClientID"] = task_data.ClientID;
data["Volume"] = task_data.Volume;
data["SessionID"] = task_data.SessionID;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["StatusMsg"] = task_data.StatusMsg;
data["SettlementID"] = task_data.SettlementID;
data["UserID"] = task_data.UserID;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["CombActionRef"] = task_data.CombActionRef;
data["SequenceNo"] = task_data.SequenceNo;
data["ActionLocalID"] = task_data.ActionLocalID;
data["ExchangeInstID"] = task_data.ExchangeInstID;
data["FrontID"] = task_data.FrontID;
this->onRtnCombAction(data);
};
void TdApi::processErrRtnCombActionInsert(Task task)
{
PyLock lock;
CThostFtdcInputCombActionField task_data = any_cast<CThostFtdcInputCombActionField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["Direction"] = task_data.Direction;
data["CombActionRef"] = task_data.CombActionRef;
data["HedgeFlag"] = task_data.HedgeFlag;
data["UserID"] = task_data.UserID;
data["ExchangeID"] = task_data.ExchangeID;
data["Volume"] = task_data.Volume;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["CombDirection"] = task_data.CombDirection;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnCombActionInsert(data, error);
};
void TdApi::processRspQryContractBank(Task task)
{
PyLock lock;
CThostFtdcContractBankField task_data = any_cast<CThostFtdcContractBankField>(task.task_data);
dict data;
data["BankName"] = task_data.BankName;
data["BrokerID"] = task_data.BrokerID;
data["BankBrchID"] = task_data.BankBrchID;
data["BankID"] = task_data.BankID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryContractBank(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryParkedOrder(Task task)
{
PyLock lock;
CThostFtdcParkedOrderField task_data = any_cast<CThostFtdcParkedOrderField>(task.task_data);
dict data;
data["ContingentCondition"] = task_data.ContingentCondition;
data["CombOffsetFlag"] = task_data.CombOffsetFlag;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["UserForceClose"] = task_data.UserForceClose;
data["Status"] = task_data.Status;
data["Direction"] = task_data.Direction;
data["IsSwapOrder"] = task_data.IsSwapOrder;
data["UserType"] = task_data.UserType;
data["VolumeTotalOriginal"] = task_data.VolumeTotalOriginal;
data["OrderPriceType"] = task_data.OrderPriceType;
data["TimeCondition"] = task_data.TimeCondition;
data["IsAutoSuspend"] = task_data.IsAutoSuspend;
data["StopPrice"] = task_data.StopPrice;
data["InstrumentID"] = task_data.InstrumentID;
data["ExchangeID"] = task_data.ExchangeID;
data["MinVolume"] = task_data.MinVolume;
data["ForceCloseReason"] = task_data.ForceCloseReason;
data["ErrorID"] = task_data.ErrorID;
data["ParkedOrderID"] = task_data.ParkedOrderID;
data["BrokerID"] = task_data.BrokerID;
data["CombHedgeFlag"] = task_data.CombHedgeFlag;
data["GTDDate"] = task_data.GTDDate;
data["BusinessUnit"] = task_data.BusinessUnit;
data["ErrorMsg"] = task_data.ErrorMsg;
data["OrderRef"] = task_data.OrderRef;
data["InvestorID"] = task_data.InvestorID;
data["VolumeCondition"] = task_data.VolumeCondition;
data["RequestID"] = task_data.RequestID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryParkedOrder(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryParkedOrderAction(Task task)
{
PyLock lock;
CThostFtdcParkedOrderActionField task_data = any_cast<CThostFtdcParkedOrderActionField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["Status"] = task_data.Status;
data["ExchangeID"] = task_data.ExchangeID;
data["ActionFlag"] = task_data.ActionFlag;
data["OrderActionRef"] = task_data.OrderActionRef;
data["UserType"] = task_data.UserType;
data["ErrorMsg"] = task_data.ErrorMsg;
data["UserID"] = task_data.UserID;
data["LimitPrice"] = task_data.LimitPrice;
data["OrderRef"] = task_data.OrderRef;
data["InvestorID"] = task_data.InvestorID;
data["SessionID"] = task_data.SessionID;
data["VolumeChange"] = task_data.VolumeChange;
data["BrokerID"] = task_data.BrokerID;
data["RequestID"] = task_data.RequestID;
data["OrderSysID"] = task_data.OrderSysID;
data["ParkedOrderActionID"] = task_data.ParkedOrderActionID;
data["FrontID"] = task_data.FrontID;
data["ErrorID"] = task_data.ErrorID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryParkedOrderAction(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryTradingNotice(Task task)
{
PyLock lock;
CThostFtdcTradingNoticeField task_data = any_cast<CThostFtdcTradingNoticeField>(task.task_data);
dict data;
data["SequenceSeries"] = task_data.SequenceSeries;
data["SequenceNo"] = task_data.SequenceNo;
data["UserID"] = task_data.UserID;
data["FieldContent"] = task_data.FieldContent;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["SendTime"] = task_data.SendTime;
data["InvestorRange"] = task_data.InvestorRange;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryTradingNotice(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryBrokerTradingParams(Task task)
{
PyLock lock;
CThostFtdcBrokerTradingParamsField task_data = any_cast<CThostFtdcBrokerTradingParamsField>(task.task_data);
dict data;
data["MarginPriceType"] = task_data.MarginPriceType;
data["Algorithm"] = task_data.Algorithm;
data["CurrencyID"] = task_data.CurrencyID;
data["OptionRoyaltyPriceType"] = task_data.OptionRoyaltyPriceType;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
data["AvailIncludeCloseProfit"] = task_data.AvailIncludeCloseProfit;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryBrokerTradingParams(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQryBrokerTradingAlgos(Task task)
{
PyLock lock;
CThostFtdcBrokerTradingAlgosField task_data = any_cast<CThostFtdcBrokerTradingAlgosField>(task.task_data);
dict data;
data["InstrumentID"] = task_data.InstrumentID;
data["HandlePositionAlgoID"] = task_data.HandlePositionAlgoID;
data["ExchangeID"] = task_data.ExchangeID;
data["FindMarginRateAlgoID"] = task_data.FindMarginRateAlgoID;
data["BrokerID"] = task_data.BrokerID;
data["HandleTradingAccountAlgoID"] = task_data.HandleTradingAccountAlgoID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQryBrokerTradingAlgos(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQueryCFMMCTradingAccountToken(Task task)
{
PyLock lock;
CThostFtdcQueryCFMMCTradingAccountTokenField task_data = any_cast<CThostFtdcQueryCFMMCTradingAccountTokenField>(task.task_data);
dict data;
data["InvestorID"] = task_data.InvestorID;
data["BrokerID"] = task_data.BrokerID;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQueryCFMMCTradingAccountToken(data, error, task.task_id, task.task_last);
};
void TdApi::processRtnFromBankToFutureByBank(Task task)
{
PyLock lock;
CThostFtdcRspTransferField task_data = any_cast<CThostFtdcRspTransferField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnFromBankToFutureByBank(data);
};
void TdApi::processRtnFromFutureToBankByBank(Task task)
{
PyLock lock;
CThostFtdcRspTransferField task_data = any_cast<CThostFtdcRspTransferField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnFromFutureToBankByBank(data);
};
void TdApi::processRtnRepealFromBankToFutureByBank(Task task)
{
PyLock lock;
CThostFtdcRspRepealField task_data = any_cast<CThostFtdcRspRepealField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["BankRepealFlag"] = task_data.BankRepealFlag;
data["RepealedTimes"] = task_data.RepealedTimes;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["FutureRepealSerial"] = task_data.FutureRepealSerial;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["BrokerRepealFlag"] = task_data.BrokerRepealFlag;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankRepealSerial"] = task_data.BankRepealSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["RepealTimeInterval"] = task_data.RepealTimeInterval;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["PlateRepealSerial"] = task_data.PlateRepealSerial;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnRepealFromBankToFutureByBank(data);
};
void TdApi::processRtnRepealFromFutureToBankByBank(Task task)
{
PyLock lock;
CThostFtdcRspRepealField task_data = any_cast<CThostFtdcRspRepealField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["BankRepealFlag"] = task_data.BankRepealFlag;
data["RepealedTimes"] = task_data.RepealedTimes;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["FutureRepealSerial"] = task_data.FutureRepealSerial;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["BrokerRepealFlag"] = task_data.BrokerRepealFlag;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankRepealSerial"] = task_data.BankRepealSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["RepealTimeInterval"] = task_data.RepealTimeInterval;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["PlateRepealSerial"] = task_data.PlateRepealSerial;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnRepealFromFutureToBankByBank(data);
};
void TdApi::processRtnFromBankToFutureByFuture(Task task)
{
PyLock lock;
CThostFtdcRspTransferField task_data = any_cast<CThostFtdcRspTransferField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnFromBankToFutureByFuture(data);
};
void TdApi::processRtnFromFutureToBankByFuture(Task task)
{
PyLock lock;
CThostFtdcRspTransferField task_data = any_cast<CThostFtdcRspTransferField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnFromFutureToBankByFuture(data);
};
void TdApi::processRtnRepealFromBankToFutureByFutureManual(Task task)
{
PyLock lock;
CThostFtdcRspRepealField task_data = any_cast<CThostFtdcRspRepealField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["BankRepealFlag"] = task_data.BankRepealFlag;
data["RepealedTimes"] = task_data.RepealedTimes;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["FutureRepealSerial"] = task_data.FutureRepealSerial;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["BrokerRepealFlag"] = task_data.BrokerRepealFlag;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankRepealSerial"] = task_data.BankRepealSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["RepealTimeInterval"] = task_data.RepealTimeInterval;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["PlateRepealSerial"] = task_data.PlateRepealSerial;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnRepealFromBankToFutureByFutureManual(data);
};
void TdApi::processRtnRepealFromFutureToBankByFutureManual(Task task)
{
PyLock lock;
CThostFtdcRspRepealField task_data = any_cast<CThostFtdcRspRepealField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["BankRepealFlag"] = task_data.BankRepealFlag;
data["RepealedTimes"] = task_data.RepealedTimes;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["FutureRepealSerial"] = task_data.FutureRepealSerial;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["BrokerRepealFlag"] = task_data.BrokerRepealFlag;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankRepealSerial"] = task_data.BankRepealSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["RepealTimeInterval"] = task_data.RepealTimeInterval;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["PlateRepealSerial"] = task_data.PlateRepealSerial;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnRepealFromFutureToBankByFutureManual(data);
};
void TdApi::processRtnQueryBankBalanceByFuture(Task task)
{
PyLock lock;
CThostFtdcNotifyQueryAccountField task_data = any_cast<CThostFtdcNotifyQueryAccountField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["BankUseAmount"] = task_data.BankUseAmount;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["ErrorMsg"] = task_data.ErrorMsg;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Digest"] = task_data.Digest;
data["BankFetchAmount"] = task_data.BankFetchAmount;
this->onRtnQueryBankBalanceByFuture(data);
};
void TdApi::processErrRtnBankToFutureByFuture(Task task)
{
PyLock lock;
CThostFtdcReqTransferField task_data = any_cast<CThostFtdcReqTransferField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnBankToFutureByFuture(data, error);
};
void TdApi::processErrRtnFutureToBankByFuture(Task task)
{
PyLock lock;
CThostFtdcReqTransferField task_data = any_cast<CThostFtdcReqTransferField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnFutureToBankByFuture(data, error);
};
void TdApi::processErrRtnRepealBankToFutureByFutureManual(Task task)
{
PyLock lock;
CThostFtdcReqRepealField task_data = any_cast<CThostFtdcReqRepealField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["BankRepealFlag"] = task_data.BankRepealFlag;
data["RepealedTimes"] = task_data.RepealedTimes;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["FutureRepealSerial"] = task_data.FutureRepealSerial;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["BrokerRepealFlag"] = task_data.BrokerRepealFlag;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankRepealSerial"] = task_data.BankRepealSerial;
data["RepealTimeInterval"] = task_data.RepealTimeInterval;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["PlateRepealSerial"] = task_data.PlateRepealSerial;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnRepealBankToFutureByFutureManual(data, error);
};
void TdApi::processErrRtnRepealFutureToBankByFutureManual(Task task)
{
PyLock lock;
CThostFtdcReqRepealField task_data = any_cast<CThostFtdcReqRepealField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["BankRepealFlag"] = task_data.BankRepealFlag;
data["RepealedTimes"] = task_data.RepealedTimes;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["FutureRepealSerial"] = task_data.FutureRepealSerial;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["BrokerRepealFlag"] = task_data.BrokerRepealFlag;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankRepealSerial"] = task_data.BankRepealSerial;
data["RepealTimeInterval"] = task_data.RepealTimeInterval;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["PlateRepealSerial"] = task_data.PlateRepealSerial;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnRepealFutureToBankByFutureManual(data, error);
};
void TdApi::processErrRtnQueryBankBalanceByFuture(Task task)
{
PyLock lock;
CThostFtdcReqQueryAccountField task_data = any_cast<CThostFtdcReqQueryAccountField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Digest"] = task_data.Digest;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onErrRtnQueryBankBalanceByFuture(data, error);
};
void TdApi::processRtnRepealFromBankToFutureByFuture(Task task)
{
PyLock lock;
CThostFtdcRspRepealField task_data = any_cast<CThostFtdcRspRepealField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["BankRepealFlag"] = task_data.BankRepealFlag;
data["RepealedTimes"] = task_data.RepealedTimes;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["FutureRepealSerial"] = task_data.FutureRepealSerial;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["BrokerRepealFlag"] = task_data.BrokerRepealFlag;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankRepealSerial"] = task_data.BankRepealSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["RepealTimeInterval"] = task_data.RepealTimeInterval;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["PlateRepealSerial"] = task_data.PlateRepealSerial;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnRepealFromBankToFutureByFuture(data);
};
void TdApi::processRtnRepealFromFutureToBankByFuture(Task task)
{
PyLock lock;
CThostFtdcRspRepealField task_data = any_cast<CThostFtdcRspRepealField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["BankRepealFlag"] = task_data.BankRepealFlag;
data["RepealedTimes"] = task_data.RepealedTimes;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["FutureRepealSerial"] = task_data.FutureRepealSerial;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["BrokerRepealFlag"] = task_data.BrokerRepealFlag;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankRepealSerial"] = task_data.BankRepealSerial;
data["ErrorMsg"] = task_data.ErrorMsg;
data["RepealTimeInterval"] = task_data.RepealTimeInterval;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["PlateRepealSerial"] = task_data.PlateRepealSerial;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
this->onRtnRepealFromFutureToBankByFuture(data);
};
void TdApi::processRspFromBankToFutureByFuture(Task task)
{
PyLock lock;
CThostFtdcReqTransferField task_data = any_cast<CThostFtdcReqTransferField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspFromBankToFutureByFuture(data, error, task.task_id, task.task_last);
};
void TdApi::processRspFromFutureToBankByFuture(Task task)
{
PyLock lock;
CThostFtdcReqTransferField task_data = any_cast<CThostFtdcReqTransferField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["FeePayFlag"] = task_data.FeePayFlag;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["TransferStatus"] = task_data.TransferStatus;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["FutureFetchAmount"] = task_data.FutureFetchAmount;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BrokerFee"] = task_data.BrokerFee;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Message"] = task_data.Message;
data["CustFee"] = task_data.CustFee;
data["TradeAmount"] = task_data.TradeAmount;
data["Digest"] = task_data.Digest;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspFromFutureToBankByFuture(data, error, task.task_id, task.task_last);
};
void TdApi::processRspQueryBankAccountMoneyByFuture(Task task)
{
PyLock lock;
CThostFtdcReqQueryAccountField task_data = any_cast<CThostFtdcReqQueryAccountField>(task.task_data);
dict data;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["TradeTime"] = task_data.TradeTime;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["InstallID"] = task_data.InstallID;
data["CustomerName"] = task_data.CustomerName;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["BankID"] = task_data.BankID;
data["Password"] = task_data.Password;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["RequestID"] = task_data.RequestID;
data["CustType"] = task_data.CustType;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["DeviceID"] = task_data.DeviceID;
data["IdCardType"] = task_data.IdCardType;
data["PlateSerial"] = task_data.PlateSerial;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["FutureSerial"] = task_data.FutureSerial;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["Digest"] = task_data.Digest;
CThostFtdcRspInfoField task_error = any_cast<CThostFtdcRspInfoField>(task.task_error);
dict error;
error["ErrorMsg"] = task_error.ErrorMsg;
error["ErrorID"] = task_error.ErrorID;
this->onRspQueryBankAccountMoneyByFuture(data, error, task.task_id, task.task_last);
};
void TdApi::processRtnOpenAccountByBank(Task task)
{
PyLock lock;
CThostFtdcOpenAccountField task_data = any_cast<CThostFtdcOpenAccountField>(task.task_data);
dict data;
data["MoneyAccountStatus"] = task_data.MoneyAccountStatus;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["Telephone"] = task_data.Telephone;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["Fax"] = task_data.Fax;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["CountryCode"] = task_data.CountryCode;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["Address"] = task_data.Address;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["CustType"] = task_data.CustType;
data["Gender"] = task_data.Gender;
data["BankID"] = task_data.BankID;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["CashExchangeCode"] = task_data.CashExchangeCode;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["MobilePhone"] = task_data.MobilePhone;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["ErrorMsg"] = task_data.ErrorMsg;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["ZipCode"] = task_data.ZipCode;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["TradeTime"] = task_data.TradeTime;
data["EMail"] = task_data.EMail;
data["Digest"] = task_data.Digest;
data["DeviceID"] = task_data.DeviceID;
this->onRtnOpenAccountByBank(data);
};
void TdApi::processRtnCancelAccountByBank(Task task)
{
PyLock lock;
CThostFtdcCancelAccountField task_data = any_cast<CThostFtdcCancelAccountField>(task.task_data);
dict data;
data["MoneyAccountStatus"] = task_data.MoneyAccountStatus;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["UserID"] = task_data.UserID;
data["BankPassWord"] = task_data.BankPassWord;
data["Telephone"] = task_data.Telephone;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["Fax"] = task_data.Fax;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["CountryCode"] = task_data.CountryCode;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["Address"] = task_data.Address;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["CustType"] = task_data.CustType;
data["Gender"] = task_data.Gender;
data["BankID"] = task_data.BankID;
data["BankSerial"] = task_data.BankSerial;
data["OperNo"] = task_data.OperNo;
data["TradingDay"] = task_data.TradingDay;
data["BankSecuAcc"] = task_data.BankSecuAcc;
data["BrokerID"] = task_data.BrokerID;
data["CashExchangeCode"] = task_data.CashExchangeCode;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["MobilePhone"] = task_data.MobilePhone;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["ErrorMsg"] = task_data.ErrorMsg;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["ZipCode"] = task_data.ZipCode;
data["BankSecuAccType"] = task_data.BankSecuAccType;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["TradeTime"] = task_data.TradeTime;
data["EMail"] = task_data.EMail;
data["Digest"] = task_data.Digest;
data["DeviceID"] = task_data.DeviceID;
this->onRtnCancelAccountByBank(data);
};
void TdApi::processRtnChangeAccountByBank(Task task)
{
PyLock lock;
CThostFtdcChangeAccountField task_data = any_cast<CThostFtdcChangeAccountField>(task.task_data);
dict data;
data["MoneyAccountStatus"] = task_data.MoneyAccountStatus;
data["NewBankPassWord"] = task_data.NewBankPassWord;
data["BrokerBranchID"] = task_data.BrokerBranchID;
data["BankPassWord"] = task_data.BankPassWord;
data["Telephone"] = task_data.Telephone;
data["IdentifiedCardNo"] = task_data.IdentifiedCardNo;
data["VerifyCertNoFlag"] = task_data.VerifyCertNoFlag;
data["TID"] = task_data.TID;
data["AccountID"] = task_data.AccountID;
data["BankAccount"] = task_data.BankAccount;
data["Fax"] = task_data.Fax;
data["InstallID"] = task_data.InstallID;
data["SecuPwdFlag"] = task_data.SecuPwdFlag;
data["CustomerName"] = task_data.CustomerName;
data["CountryCode"] = task_data.CountryCode;
data["TradeCode"] = task_data.TradeCode;
data["BankBranchID"] = task_data.BankBranchID;
data["SessionID"] = task_data.SessionID;
data["NewBankAccount"] = task_data.NewBankAccount;
data["Address"] = task_data.Address;
data["PlateSerial"] = task_data.PlateSerial;
data["BankPwdFlag"] = task_data.BankPwdFlag;
data["ErrorID"] = task_data.ErrorID;
data["CustType"] = task_data.CustType;
data["Gender"] = task_data.Gender;
data["BankID"] = task_data.BankID;
data["BankSerial"] = task_data.BankSerial;
data["TradingDay"] = task_data.TradingDay;
data["BrokerID"] = task_data.BrokerID;
data["IdCardType"] = task_data.IdCardType;
data["Password"] = task_data.Password;
data["MobilePhone"] = task_data.MobilePhone;
data["TradeDate"] = task_data.TradeDate;
data["CurrencyID"] = task_data.CurrencyID;
data["ErrorMsg"] = task_data.ErrorMsg;
data["BankAccType"] = task_data.BankAccType;
data["LastFragment"] = task_data.LastFragment;
data["ZipCode"] = task_data.ZipCode;
data["BrokerIDByBank"] = task_data.BrokerIDByBank;
data["TradeTime"] = task_data.TradeTime;
data["EMail"] = task_data.EMail;
data["Digest"] = task_data.Digest;
this->onRtnChangeAccountByBank(data);
};
///-------------------------------------------------------------------------------------
///主动函数
///-------------------------------------------------------------------------------------
void TdApi::createFtdcTraderApi(string pszFlowPath)
{
this->api = CThostFtdcTraderApi::CreateFtdcTraderApi(pszFlowPath.c_str());
this->api->RegisterSpi(this);
};
void TdApi::release()
{
this->api->Release();
};
void TdApi::init()
{
this->api->Init();
};
int TdApi::join()
{
int i = this->api->Join();
return i;
};
int TdApi::exit()
{
//该函数在原生API里没有用于安全退出API用原生的join似乎不太稳定
this->api->RegisterSpi(NULL);
this->api->Release();
this->api = NULL;
return 1;
};
string TdApi::getTradingDay()
{
string day = this->api->GetTradingDay();
return day;
};
void TdApi::registerFront(string pszFrontAddress)
{
this->api->RegisterFront((char*)pszFrontAddress.c_str());
};
void TdApi::subscribePrivateTopic(int nType)
{
//该函数为手动编写
THOST_TE_RESUME_TYPE type;
switch (nType)
{
case 0:
{
type = THOST_TERT_RESTART;
break;
};
case 1:
{
type = THOST_TERT_RESUME;
break;
};
case 2:
{
type = THOST_TERT_QUICK;
break;
};
}
this->api->SubscribePrivateTopic(type);
};
void TdApi::subscribePublicTopic(int nType)
{
//该函数为手动编写
THOST_TE_RESUME_TYPE type;
switch (nType)
{
case 0:
{
type = THOST_TERT_RESTART;
break;
};
case 1:
{
type = THOST_TERT_RESUME;
break;
};
case 2:
{
type = THOST_TERT_QUICK;
break;
};
}
this->api->SubscribePublicTopic(type);
};
int TdApi::reqAuthenticate(dict req, int nRequestID)
{
CThostFtdcReqAuthenticateField myreq = CThostFtdcReqAuthenticateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "UserID", myreq.UserID);
getStr(req, "AuthCode", myreq.AuthCode);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "UserProductInfo", myreq.UserProductInfo);
int i = this->api->ReqAuthenticate(&myreq, nRequestID);
return i;
};
int TdApi::reqUserLogin(dict req, int nRequestID)
{
CThostFtdcReqUserLoginField myreq = CThostFtdcReqUserLoginField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "MacAddress", myreq.MacAddress);
getStr(req, "UserProductInfo", myreq.UserProductInfo);
getStr(req, "UserID", myreq.UserID);
getStr(req, "TradingDay", myreq.TradingDay);
getStr(req, "InterfaceProductInfo", myreq.InterfaceProductInfo);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "ClientIPAddress", myreq.ClientIPAddress);
getStr(req, "OneTimePassword", myreq.OneTimePassword);
getStr(req, "ProtocolInfo", myreq.ProtocolInfo);
getStr(req, "Password", myreq.Password);
int i = this->api->ReqUserLogin(&myreq, nRequestID);
return i;
};
int TdApi::reqUserLogout(dict req, int nRequestID)
{
CThostFtdcUserLogoutField myreq = CThostFtdcUserLogoutField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "UserID", myreq.UserID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqUserLogout(&myreq, nRequestID);
return i;
};
int TdApi::reqUserPasswordUpdate(dict req, int nRequestID)
{
CThostFtdcUserPasswordUpdateField myreq = CThostFtdcUserPasswordUpdateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "UserID", myreq.UserID);
getStr(req, "NewPassword", myreq.NewPassword);
getStr(req, "OldPassword", myreq.OldPassword);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqUserPasswordUpdate(&myreq, nRequestID);
return i;
};
int TdApi::reqTradingAccountPasswordUpdate(dict req, int nRequestID)
{
CThostFtdcTradingAccountPasswordUpdateField myreq = CThostFtdcTradingAccountPasswordUpdateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "CurrencyID", myreq.CurrencyID);
getStr(req, "NewPassword", myreq.NewPassword);
getStr(req, "OldPassword", myreq.OldPassword);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "AccountID", myreq.AccountID);
int i = this->api->ReqTradingAccountPasswordUpdate(&myreq, nRequestID);
return i;
};
int TdApi::reqOrderInsert(dict req, int nRequestID)
{
CThostFtdcInputOrderField myreq = CThostFtdcInputOrderField();
memset(&myreq, 0, sizeof(myreq));
getChar(req, "ContingentCondition", &myreq.ContingentCondition);
getStr(req, "CombOffsetFlag", myreq.CombOffsetFlag);
getStr(req, "UserID", myreq.UserID);
getDouble(req, "LimitPrice", &myreq.LimitPrice);
getInt(req, "UserForceClose", &myreq.UserForceClose);
getChar(req, "Direction", &myreq.Direction);
getInt(req, "IsSwapOrder", &myreq.IsSwapOrder);
getInt(req, "VolumeTotalOriginal", &myreq.VolumeTotalOriginal);
getChar(req, "OrderPriceType", &myreq.OrderPriceType);
getChar(req, "TimeCondition", &myreq.TimeCondition);
getInt(req, "IsAutoSuspend", &myreq.IsAutoSuspend);
getDouble(req, "StopPrice", &myreq.StopPrice);
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getInt(req, "MinVolume", &myreq.MinVolume);
getChar(req, "ForceCloseReason", &myreq.ForceCloseReason);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "CombHedgeFlag", myreq.CombHedgeFlag);
getStr(req, "GTDDate", myreq.GTDDate);
getStr(req, "BusinessUnit", myreq.BusinessUnit);
getStr(req, "OrderRef", myreq.OrderRef);
getStr(req, "InvestorID", myreq.InvestorID);
getChar(req, "VolumeCondition", &myreq.VolumeCondition);
getInt(req, "RequestID", &myreq.RequestID);
int i = this->api->ReqOrderInsert(&myreq, nRequestID);
return i;
};
int TdApi::reqParkedOrderInsert(dict req, int nRequestID)
{
CThostFtdcParkedOrderField myreq = CThostFtdcParkedOrderField();
memset(&myreq, 0, sizeof(myreq));
getChar(req, "ContingentCondition", &myreq.ContingentCondition);
getStr(req, "CombOffsetFlag", myreq.CombOffsetFlag);
getStr(req, "UserID", myreq.UserID);
getDouble(req, "LimitPrice", &myreq.LimitPrice);
getInt(req, "UserForceClose", &myreq.UserForceClose);
getChar(req, "Status", &myreq.Status);
getChar(req, "Direction", &myreq.Direction);
getInt(req, "IsSwapOrder", &myreq.IsSwapOrder);
getChar(req, "UserType", &myreq.UserType);
getInt(req, "VolumeTotalOriginal", &myreq.VolumeTotalOriginal);
getChar(req, "OrderPriceType", &myreq.OrderPriceType);
getChar(req, "TimeCondition", &myreq.TimeCondition);
getInt(req, "IsAutoSuspend", &myreq.IsAutoSuspend);
getDouble(req, "StopPrice", &myreq.StopPrice);
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getInt(req, "MinVolume", &myreq.MinVolume);
getChar(req, "ForceCloseReason", &myreq.ForceCloseReason);
getInt(req, "ErrorID", &myreq.ErrorID);
getStr(req, "ParkedOrderID", myreq.ParkedOrderID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "CombHedgeFlag", myreq.CombHedgeFlag);
getStr(req, "GTDDate", myreq.GTDDate);
getStr(req, "BusinessUnit", myreq.BusinessUnit);
getStr(req, "ErrorMsg", myreq.ErrorMsg);
getStr(req, "OrderRef", myreq.OrderRef);
getStr(req, "InvestorID", myreq.InvestorID);
getChar(req, "VolumeCondition", &myreq.VolumeCondition);
getInt(req, "RequestID", &myreq.RequestID);
int i = this->api->ReqParkedOrderInsert(&myreq, nRequestID);
return i;
};
int TdApi::reqParkedOrderAction(dict req, int nRequestID)
{
CThostFtdcParkedOrderActionField myreq = CThostFtdcParkedOrderActionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getChar(req, "Status", &myreq.Status);
getStr(req, "ExchangeID", myreq.ExchangeID);
getChar(req, "ActionFlag", &myreq.ActionFlag);
getInt(req, "OrderActionRef", &myreq.OrderActionRef);
getChar(req, "UserType", &myreq.UserType);
getStr(req, "ErrorMsg", myreq.ErrorMsg);
getStr(req, "UserID", myreq.UserID);
getDouble(req, "LimitPrice", &myreq.LimitPrice);
getStr(req, "OrderRef", myreq.OrderRef);
getStr(req, "InvestorID", myreq.InvestorID);
getInt(req, "SessionID", &myreq.SessionID);
getInt(req, "VolumeChange", &myreq.VolumeChange);
getStr(req, "BrokerID", myreq.BrokerID);
getInt(req, "RequestID", &myreq.RequestID);
getStr(req, "OrderSysID", myreq.OrderSysID);
getStr(req, "ParkedOrderActionID", myreq.ParkedOrderActionID);
getInt(req, "FrontID", &myreq.FrontID);
getInt(req, "ErrorID", &myreq.ErrorID);
int i = this->api->ReqParkedOrderAction(&myreq, nRequestID);
return i;
};
int TdApi::reqOrderAction(dict req, int nRequestID)
{
CThostFtdcInputOrderActionField myreq = CThostFtdcInputOrderActionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getChar(req, "ActionFlag", &myreq.ActionFlag);
getInt(req, "OrderActionRef", &myreq.OrderActionRef);
getStr(req, "UserID", myreq.UserID);
getDouble(req, "LimitPrice", &myreq.LimitPrice);
getStr(req, "OrderRef", myreq.OrderRef);
getStr(req, "InvestorID", myreq.InvestorID);
getInt(req, "SessionID", &myreq.SessionID);
getInt(req, "VolumeChange", &myreq.VolumeChange);
getStr(req, "BrokerID", myreq.BrokerID);
getInt(req, "RequestID", &myreq.RequestID);
getStr(req, "OrderSysID", myreq.OrderSysID);
getInt(req, "FrontID", &myreq.FrontID);
int i = this->api->ReqOrderAction(&myreq, nRequestID);
return i;
};
int TdApi::reqQueryMaxOrderVolume(dict req, int nRequestID)
{
CThostFtdcQueryMaxOrderVolumeField myreq = CThostFtdcQueryMaxOrderVolumeField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getChar(req, "Direction", &myreq.Direction);
getChar(req, "OffsetFlag", &myreq.OffsetFlag);
getChar(req, "HedgeFlag", &myreq.HedgeFlag);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getInt(req, "MaxVolume", &myreq.MaxVolume);
int i = this->api->ReqQueryMaxOrderVolume(&myreq, nRequestID);
return i;
};
int TdApi::reqSettlementInfoConfirm(dict req, int nRequestID)
{
CThostFtdcSettlementInfoConfirmField myreq = CThostFtdcSettlementInfoConfirmField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "ConfirmTime", myreq.ConfirmTime);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "ConfirmDate", myreq.ConfirmDate);
int i = this->api->ReqSettlementInfoConfirm(&myreq, nRequestID);
return i;
};
int TdApi::reqRemoveParkedOrder(dict req, int nRequestID)
{
CThostFtdcRemoveParkedOrderField myreq = CThostFtdcRemoveParkedOrderField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "ParkedOrderID", myreq.ParkedOrderID);
int i = this->api->ReqRemoveParkedOrder(&myreq, nRequestID);
return i;
};
int TdApi::reqRemoveParkedOrderAction(dict req, int nRequestID)
{
CThostFtdcRemoveParkedOrderActionField myreq = CThostFtdcRemoveParkedOrderActionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "ParkedOrderActionID", myreq.ParkedOrderActionID);
int i = this->api->ReqRemoveParkedOrderAction(&myreq, nRequestID);
return i;
};
int TdApi::reqExecOrderInsert(dict req, int nRequestID)
{
CThostFtdcInputExecOrderField myreq = CThostFtdcInputExecOrderField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExecOrderRef", myreq.ExecOrderRef);
getStr(req, "ExchangeID", myreq.ExchangeID);
getChar(req, "CloseFlag", &myreq.CloseFlag);
getChar(req, "OffsetFlag", &myreq.OffsetFlag);
getChar(req, "PosiDirection", &myreq.PosiDirection);
getStr(req, "BusinessUnit", myreq.BusinessUnit);
getChar(req, "HedgeFlag", &myreq.HedgeFlag);
getStr(req, "UserID", myreq.UserID);
getInt(req, "Volume", &myreq.Volume);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getInt(req, "RequestID", &myreq.RequestID);
getChar(req, "ActionType", &myreq.ActionType);
getChar(req, "ReservePositionFlag", &myreq.ReservePositionFlag);
int i = this->api->ReqExecOrderInsert(&myreq, nRequestID);
return i;
};
int TdApi::reqExecOrderAction(dict req, int nRequestID)
{
CThostFtdcInputExecOrderActionField myreq = CThostFtdcInputExecOrderActionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExecOrderSysID", myreq.ExecOrderSysID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "UserID", myreq.UserID);
getStr(req, "ExecOrderRef", myreq.ExecOrderRef);
getStr(req, "InvestorID", myreq.InvestorID);
getInt(req, "SessionID", &myreq.SessionID);
getStr(req, "BrokerID", myreq.BrokerID);
getInt(req, "RequestID", &myreq.RequestID);
getChar(req, "ActionFlag", &myreq.ActionFlag);
getInt(req, "ExecOrderActionRef", &myreq.ExecOrderActionRef);
getInt(req, "FrontID", &myreq.FrontID);
int i = this->api->ReqExecOrderAction(&myreq, nRequestID);
return i;
};
int TdApi::reqForQuoteInsert(dict req, int nRequestID)
{
CThostFtdcInputForQuoteField myreq = CThostFtdcInputForQuoteField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ForQuoteRef", myreq.ForQuoteRef);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "UserID", myreq.UserID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqForQuoteInsert(&myreq, nRequestID);
return i;
};
int TdApi::reqQuoteInsert(dict req, int nRequestID)
{
CThostFtdcInputQuoteField myreq = CThostFtdcInputQuoteField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getChar(req, "AskHedgeFlag", &myreq.AskHedgeFlag);
getStr(req, "BusinessUnit", myreq.BusinessUnit);
getDouble(req, "AskPrice", &myreq.AskPrice);
getStr(req, "UserID", myreq.UserID);
getChar(req, "AskOffsetFlag", &myreq.AskOffsetFlag);
getInt(req, "BidVolume", &myreq.BidVolume);
getStr(req, "AskOrderRef", myreq.AskOrderRef);
getInt(req, "AskVolume", &myreq.AskVolume);
getStr(req, "InvestorID", myreq.InvestorID);
getChar(req, "BidOffsetFlag", &myreq.BidOffsetFlag);
getStr(req, "BrokerID", myreq.BrokerID);
getInt(req, "RequestID", &myreq.RequestID);
getStr(req, "ForQuoteSysID", myreq.ForQuoteSysID);
getDouble(req, "BidPrice", &myreq.BidPrice);
getChar(req, "BidHedgeFlag", &myreq.BidHedgeFlag);
getStr(req, "QuoteRef", myreq.QuoteRef);
getStr(req, "BidOrderRef", myreq.BidOrderRef);
int i = this->api->ReqQuoteInsert(&myreq, nRequestID);
return i;
};
int TdApi::reqQuoteAction(dict req, int nRequestID)
{
CThostFtdcInputQuoteActionField myreq = CThostFtdcInputQuoteActionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getInt(req, "QuoteActionRef", &myreq.QuoteActionRef);
getStr(req, "UserID", myreq.UserID);
getStr(req, "InvestorID", myreq.InvestorID);
getInt(req, "SessionID", &myreq.SessionID);
getStr(req, "BrokerID", myreq.BrokerID);
getInt(req, "RequestID", &myreq.RequestID);
getChar(req, "ActionFlag", &myreq.ActionFlag);
getInt(req, "FrontID", &myreq.FrontID);
getStr(req, "QuoteSysID", myreq.QuoteSysID);
getStr(req, "QuoteRef", myreq.QuoteRef);
int i = this->api->ReqQuoteAction(&myreq, nRequestID);
return i;
};
int TdApi::reqLockInsert(dict req, int nRequestID)
{
CThostFtdcInputLockField myreq = CThostFtdcInputLockField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BusinessUnit", myreq.BusinessUnit);
getStr(req, "UserID", myreq.UserID);
getStr(req, "LockRef", myreq.LockRef);
getInt(req, "Volume", &myreq.Volume);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getInt(req, "RequestID", &myreq.RequestID);
getChar(req, "LockType", &myreq.LockType);
int i = this->api->ReqLockInsert(&myreq, nRequestID);
return i;
};
int TdApi::reqCombActionInsert(dict req, int nRequestID)
{
CThostFtdcInputCombActionField myreq = CThostFtdcInputCombActionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getChar(req, "Direction", &myreq.Direction);
getStr(req, "CombActionRef", myreq.CombActionRef);
getChar(req, "HedgeFlag", &myreq.HedgeFlag);
getStr(req, "UserID", myreq.UserID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getInt(req, "Volume", &myreq.Volume);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getChar(req, "CombDirection", &myreq.CombDirection);
int i = this->api->ReqCombActionInsert(&myreq, nRequestID);
return i;
};
int TdApi::reqQryOrder(dict req, int nRequestID)
{
CThostFtdcQryOrderField myreq = CThostFtdcQryOrderField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "InsertTimeStart", myreq.InsertTimeStart);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "OrderSysID", myreq.OrderSysID);
getStr(req, "InsertTimeEnd", myreq.InsertTimeEnd);
int i = this->api->ReqQryOrder(&myreq, nRequestID);
return i;
};
int TdApi::reqQryTrade(dict req, int nRequestID)
{
CThostFtdcQryTradeField myreq = CThostFtdcQryTradeField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "TradeTimeStart", myreq.TradeTimeStart);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "TradeID", myreq.TradeID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "TradeTimeEnd", myreq.TradeTimeEnd);
int i = this->api->ReqQryTrade(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInvestorPosition(dict req, int nRequestID)
{
CThostFtdcQryInvestorPositionField myreq = CThostFtdcQryInvestorPositionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryInvestorPosition(&myreq, nRequestID);
return i;
};
int TdApi::reqQryTradingAccount(dict req, int nRequestID)
{
CThostFtdcQryTradingAccountField myreq = CThostFtdcQryTradingAccountField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "CurrencyID", myreq.CurrencyID);
getStr(req, "InvestorID", myreq.InvestorID);
getChar(req, "BizType", &myreq.BizType);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryTradingAccount(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInvestor(dict req, int nRequestID)
{
CThostFtdcQryInvestorField myreq = CThostFtdcQryInvestorField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryInvestor(&myreq, nRequestID);
return i;
};
int TdApi::reqQryTradingCode(dict req, int nRequestID)
{
CThostFtdcQryTradingCodeField myreq = CThostFtdcQryTradingCodeField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
getChar(req, "ClientIDType", &myreq.ClientIDType);
getStr(req, "ClientID", myreq.ClientID);
int i = this->api->ReqQryTradingCode(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInstrumentMarginRate(dict req, int nRequestID)
{
CThostFtdcQryInstrumentMarginRateField myreq = CThostFtdcQryInstrumentMarginRateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getChar(req, "HedgeFlag", &myreq.HedgeFlag);
int i = this->api->ReqQryInstrumentMarginRate(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInstrumentCommissionRate(dict req, int nRequestID)
{
CThostFtdcQryInstrumentCommissionRateField myreq = CThostFtdcQryInstrumentCommissionRateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryInstrumentCommissionRate(&myreq, nRequestID);
return i;
};
int TdApi::reqQryExchange(dict req, int nRequestID)
{
CThostFtdcQryExchangeField myreq = CThostFtdcQryExchangeField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "ExchangeID", myreq.ExchangeID);
int i = this->api->ReqQryExchange(&myreq, nRequestID);
return i;
};
int TdApi::reqQryProduct(dict req, int nRequestID)
{
CThostFtdcQryProductField myreq = CThostFtdcQryProductField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "ExchangeID", myreq.ExchangeID);
getChar(req, "ProductClass", &myreq.ProductClass);
getStr(req, "ProductID", myreq.ProductID);
int i = this->api->ReqQryProduct(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInstrument(dict req, int nRequestID)
{
CThostFtdcQryInstrumentField myreq = CThostFtdcQryInstrumentField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "ExchangeInstID", myreq.ExchangeInstID);
getStr(req, "ProductID", myreq.ProductID);
int i = this->api->ReqQryInstrument(&myreq, nRequestID);
return i;
};
int TdApi::reqQryDepthMarketData(dict req, int nRequestID)
{
CThostFtdcQryDepthMarketDataField myreq = CThostFtdcQryDepthMarketDataField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
int i = this->api->ReqQryDepthMarketData(&myreq, nRequestID);
return i;
};
int TdApi::reqQrySettlementInfo(dict req, int nRequestID)
{
CThostFtdcQrySettlementInfoField myreq = CThostFtdcQrySettlementInfoField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "TradingDay", myreq.TradingDay);
int i = this->api->ReqQrySettlementInfo(&myreq, nRequestID);
return i;
};
int TdApi::reqQryTransferBank(dict req, int nRequestID)
{
CThostFtdcQryTransferBankField myreq = CThostFtdcQryTransferBankField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "BankBrchID", myreq.BankBrchID);
getStr(req, "BankID", myreq.BankID);
int i = this->api->ReqQryTransferBank(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInvestorPositionDetail(dict req, int nRequestID)
{
CThostFtdcQryInvestorPositionDetailField myreq = CThostFtdcQryInvestorPositionDetailField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryInvestorPositionDetail(&myreq, nRequestID);
return i;
};
int TdApi::reqQryNotice(dict req, int nRequestID)
{
CThostFtdcQryNoticeField myreq = CThostFtdcQryNoticeField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryNotice(&myreq, nRequestID);
return i;
};
int TdApi::reqQrySettlementInfoConfirm(dict req, int nRequestID)
{
CThostFtdcQrySettlementInfoConfirmField myreq = CThostFtdcQrySettlementInfoConfirmField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQrySettlementInfoConfirm(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInvestorPositionCombineDetail(dict req, int nRequestID)
{
CThostFtdcQryInvestorPositionCombineDetailField myreq = CThostFtdcQryInvestorPositionCombineDetailField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "CombInstrumentID", myreq.CombInstrumentID);
int i = this->api->ReqQryInvestorPositionCombineDetail(&myreq, nRequestID);
return i;
};
int TdApi::reqQryCFMMCTradingAccountKey(dict req, int nRequestID)
{
CThostFtdcQryCFMMCTradingAccountKeyField myreq = CThostFtdcQryCFMMCTradingAccountKeyField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryCFMMCTradingAccountKey(&myreq, nRequestID);
return i;
};
int TdApi::reqQryEWarrantOffset(dict req, int nRequestID)
{
CThostFtdcQryEWarrantOffsetField myreq = CThostFtdcQryEWarrantOffsetField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryEWarrantOffset(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInvestorProductGroupMargin(dict req, int nRequestID)
{
CThostFtdcQryInvestorProductGroupMarginField myreq = CThostFtdcQryInvestorProductGroupMarginField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getChar(req, "HedgeFlag", &myreq.HedgeFlag);
getStr(req, "ProductGroupID", myreq.ProductGroupID);
int i = this->api->ReqQryInvestorProductGroupMargin(&myreq, nRequestID);
return i;
};
int TdApi::reqQryExchangeMarginRate(dict req, int nRequestID)
{
CThostFtdcQryExchangeMarginRateField myreq = CThostFtdcQryExchangeMarginRateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getChar(req, "HedgeFlag", &myreq.HedgeFlag);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryExchangeMarginRate(&myreq, nRequestID);
return i;
};
int TdApi::reqQryExchangeMarginRateAdjust(dict req, int nRequestID)
{
CThostFtdcQryExchangeMarginRateAdjustField myreq = CThostFtdcQryExchangeMarginRateAdjustField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getChar(req, "HedgeFlag", &myreq.HedgeFlag);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryExchangeMarginRateAdjust(&myreq, nRequestID);
return i;
};
int TdApi::reqQryExchangeRate(dict req, int nRequestID)
{
CThostFtdcQryExchangeRateField myreq = CThostFtdcQryExchangeRateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "FromCurrencyID", myreq.FromCurrencyID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "ToCurrencyID", myreq.ToCurrencyID);
int i = this->api->ReqQryExchangeRate(&myreq, nRequestID);
return i;
};
int TdApi::reqQrySecAgentACIDMap(dict req, int nRequestID)
{
CThostFtdcQrySecAgentACIDMapField myreq = CThostFtdcQrySecAgentACIDMapField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "CurrencyID", myreq.CurrencyID);
getStr(req, "UserID", myreq.UserID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "AccountID", myreq.AccountID);
int i = this->api->ReqQrySecAgentACIDMap(&myreq, nRequestID);
return i;
};
int TdApi::reqQryProductExchRate(dict req, int nRequestID)
{
CThostFtdcQryProductExchRateField myreq = CThostFtdcQryProductExchRateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "ProductID", myreq.ProductID);
int i = this->api->ReqQryProductExchRate(&myreq, nRequestID);
return i;
};
int TdApi::reqQryProductGroup(dict req, int nRequestID)
{
CThostFtdcQryProductGroupField myreq = CThostFtdcQryProductGroupField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "ProductID", myreq.ProductID);
int i = this->api->ReqQryProductGroup(&myreq, nRequestID);
return i;
};
int TdApi::reqQryOptionInstrTradeCost(dict req, int nRequestID)
{
CThostFtdcQryOptionInstrTradeCostField myreq = CThostFtdcQryOptionInstrTradeCostField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getDouble(req, "InputPrice", &myreq.InputPrice);
getStr(req, "ExchangeID", myreq.ExchangeID);
getDouble(req, "UnderlyingPrice", &myreq.UnderlyingPrice);
getChar(req, "HedgeFlag", &myreq.HedgeFlag);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryOptionInstrTradeCost(&myreq, nRequestID);
return i;
};
int TdApi::reqQryOptionInstrCommRate(dict req, int nRequestID)
{
CThostFtdcQryOptionInstrCommRateField myreq = CThostFtdcQryOptionInstrCommRateField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryOptionInstrCommRate(&myreq, nRequestID);
return i;
};
int TdApi::reqQryExecOrder(dict req, int nRequestID)
{
CThostFtdcQryExecOrderField myreq = CThostFtdcQryExecOrderField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExecOrderSysID", myreq.ExecOrderSysID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "InsertTimeStart", myreq.InsertTimeStart);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "InsertTimeEnd", myreq.InsertTimeEnd);
int i = this->api->ReqQryExecOrder(&myreq, nRequestID);
return i;
};
int TdApi::reqQryForQuote(dict req, int nRequestID)
{
CThostFtdcQryForQuoteField myreq = CThostFtdcQryForQuoteField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "InsertTimeStart", myreq.InsertTimeStart);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "InsertTimeEnd", myreq.InsertTimeEnd);
int i = this->api->ReqQryForQuote(&myreq, nRequestID);
return i;
};
int TdApi::reqQryQuote(dict req, int nRequestID)
{
CThostFtdcQryQuoteField myreq = CThostFtdcQryQuoteField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "InsertTimeStart", myreq.InsertTimeStart);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "QuoteSysID", myreq.QuoteSysID);
getStr(req, "InsertTimeEnd", myreq.InsertTimeEnd);
int i = this->api->ReqQryQuote(&myreq, nRequestID);
return i;
};
int TdApi::reqQryLock(dict req, int nRequestID)
{
CThostFtdcQryLockField myreq = CThostFtdcQryLockField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "InsertTimeStart", myreq.InsertTimeStart);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "LockSysID", myreq.LockSysID);
getStr(req, "InsertTimeEnd", myreq.InsertTimeEnd);
int i = this->api->ReqQryLock(&myreq, nRequestID);
return i;
};
int TdApi::reqQryLockPosition(dict req, int nRequestID)
{
CThostFtdcQryLockPositionField myreq = CThostFtdcQryLockPositionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryLockPosition(&myreq, nRequestID);
return i;
};
int TdApi::reqQryInvestorLevel(dict req, int nRequestID)
{
CThostFtdcQryInvestorLevelField myreq = CThostFtdcQryInvestorLevelField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryInvestorLevel(&myreq, nRequestID);
return i;
};
int TdApi::reqQryExecFreeze(dict req, int nRequestID)
{
CThostFtdcQryExecFreezeField myreq = CThostFtdcQryExecFreezeField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryExecFreeze(&myreq, nRequestID);
return i;
};
int TdApi::reqQryCombInstrumentGuard(dict req, int nRequestID)
{
CThostFtdcQryCombInstrumentGuardField myreq = CThostFtdcQryCombInstrumentGuardField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryCombInstrumentGuard(&myreq, nRequestID);
return i;
};
int TdApi::reqQryCombAction(dict req, int nRequestID)
{
CThostFtdcQryCombActionField myreq = CThostFtdcQryCombActionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryCombAction(&myreq, nRequestID);
return i;
};
int TdApi::reqQryTransferSerial(dict req, int nRequestID)
{
CThostFtdcQryTransferSerialField myreq = CThostFtdcQryTransferSerialField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "CurrencyID", myreq.CurrencyID);
getStr(req, "BankID", myreq.BankID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "AccountID", myreq.AccountID);
int i = this->api->ReqQryTransferSerial(&myreq, nRequestID);
return i;
};
int TdApi::reqQryAccountregister(dict req, int nRequestID)
{
CThostFtdcQryAccountregisterField myreq = CThostFtdcQryAccountregisterField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "CurrencyID", myreq.CurrencyID);
getStr(req, "BankID", myreq.BankID);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "BankBranchID", myreq.BankBranchID);
getStr(req, "AccountID", myreq.AccountID);
int i = this->api->ReqQryAccountregister(&myreq, nRequestID);
return i;
};
int TdApi::reqQryContractBank(dict req, int nRequestID)
{
CThostFtdcQryContractBankField myreq = CThostFtdcQryContractBankField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "BankBrchID", myreq.BankBrchID);
getStr(req, "BankID", myreq.BankID);
int i = this->api->ReqQryContractBank(&myreq, nRequestID);
return i;
};
int TdApi::reqQryParkedOrder(dict req, int nRequestID)
{
CThostFtdcQryParkedOrderField myreq = CThostFtdcQryParkedOrderField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryParkedOrder(&myreq, nRequestID);
return i;
};
int TdApi::reqQryParkedOrderAction(dict req, int nRequestID)
{
CThostFtdcQryParkedOrderActionField myreq = CThostFtdcQryParkedOrderActionField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryParkedOrderAction(&myreq, nRequestID);
return i;
};
int TdApi::reqQryTradingNotice(dict req, int nRequestID)
{
CThostFtdcQryTradingNoticeField myreq = CThostFtdcQryTradingNoticeField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryTradingNotice(&myreq, nRequestID);
return i;
};
int TdApi::reqQryBrokerTradingParams(dict req, int nRequestID)
{
CThostFtdcQryBrokerTradingParamsField myreq = CThostFtdcQryBrokerTradingParamsField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "CurrencyID", myreq.CurrencyID);
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryBrokerTradingParams(&myreq, nRequestID);
return i;
};
int TdApi::reqQryBrokerTradingAlgos(dict req, int nRequestID)
{
CThostFtdcQryBrokerTradingAlgosField myreq = CThostFtdcQryBrokerTradingAlgosField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InstrumentID", myreq.InstrumentID);
getStr(req, "ExchangeID", myreq.ExchangeID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQryBrokerTradingAlgos(&myreq, nRequestID);
return i;
};
int TdApi::reqQueryCFMMCTradingAccountToken(dict req, int nRequestID)
{
CThostFtdcQueryCFMMCTradingAccountTokenField myreq = CThostFtdcQueryCFMMCTradingAccountTokenField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "InvestorID", myreq.InvestorID);
getStr(req, "BrokerID", myreq.BrokerID);
int i = this->api->ReqQueryCFMMCTradingAccountToken(&myreq, nRequestID);
return i;
};
int TdApi::reqFromBankToFutureByFuture(dict req, int nRequestID)
{
CThostFtdcReqTransferField myreq = CThostFtdcReqTransferField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "BrokerBranchID", myreq.BrokerBranchID);
getStr(req, "UserID", myreq.UserID);
getStr(req, "BankPassWord", myreq.BankPassWord);
getStr(req, "TradeTime", myreq.TradeTime);
getChar(req, "VerifyCertNoFlag", &myreq.VerifyCertNoFlag);
getInt(req, "TID", &myreq.TID);
getStr(req, "AccountID", myreq.AccountID);
getStr(req, "BankAccount", myreq.BankAccount);
getInt(req, "InstallID", &myreq.InstallID);
getStr(req, "CustomerName", myreq.CustomerName);
getStr(req, "TradeCode", myreq.TradeCode);
getStr(req, "BankBranchID", myreq.BankBranchID);
getInt(req, "SessionID", &myreq.SessionID);
getStr(req, "BankID", myreq.BankID);
getStr(req, "Password", myreq.Password);
getChar(req, "BankPwdFlag", &myreq.BankPwdFlag);
getInt(req, "RequestID", &myreq.RequestID);
getChar(req, "CustType", &myreq.CustType);
getStr(req, "IdentifiedCardNo", myreq.IdentifiedCardNo);
getChar(req, "FeePayFlag", &myreq.FeePayFlag);
getStr(req, "BankSerial", myreq.BankSerial);
getStr(req, "OperNo", myreq.OperNo);
getStr(req, "TradingDay", myreq.TradingDay);
getStr(req, "BankSecuAcc", myreq.BankSecuAcc);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "DeviceID", myreq.DeviceID);
getChar(req, "TransferStatus", &myreq.TransferStatus);
getChar(req, "IdCardType", &myreq.IdCardType);
getInt(req, "PlateSerial", &myreq.PlateSerial);
getDouble(req, "FutureFetchAmount", &myreq.FutureFetchAmount);
getStr(req, "TradeDate", myreq.TradeDate);
getStr(req, "CurrencyID", myreq.CurrencyID);
getDouble(req, "BrokerFee", &myreq.BrokerFee);
getChar(req, "BankAccType", &myreq.BankAccType);
getChar(req, "LastFragment", &myreq.LastFragment);
getInt(req, "FutureSerial", &myreq.FutureSerial);
getChar(req, "BankSecuAccType", &myreq.BankSecuAccType);
getStr(req, "BrokerIDByBank", myreq.BrokerIDByBank);
getChar(req, "SecuPwdFlag", &myreq.SecuPwdFlag);
getStr(req, "Message", myreq.Message);
getDouble(req, "CustFee", &myreq.CustFee);
getDouble(req, "TradeAmount", &myreq.TradeAmount);
getStr(req, "Digest", myreq.Digest);
int i = this->api->ReqFromBankToFutureByFuture(&myreq, nRequestID);
return i;
};
int TdApi::reqFromFutureToBankByFuture(dict req, int nRequestID)
{
CThostFtdcReqTransferField myreq = CThostFtdcReqTransferField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "BrokerBranchID", myreq.BrokerBranchID);
getStr(req, "UserID", myreq.UserID);
getStr(req, "BankPassWord", myreq.BankPassWord);
getStr(req, "TradeTime", myreq.TradeTime);
getChar(req, "VerifyCertNoFlag", &myreq.VerifyCertNoFlag);
getInt(req, "TID", &myreq.TID);
getStr(req, "AccountID", myreq.AccountID);
getStr(req, "BankAccount", myreq.BankAccount);
getInt(req, "InstallID", &myreq.InstallID);
getStr(req, "CustomerName", myreq.CustomerName);
getStr(req, "TradeCode", myreq.TradeCode);
getStr(req, "BankBranchID", myreq.BankBranchID);
getInt(req, "SessionID", &myreq.SessionID);
getStr(req, "BankID", myreq.BankID);
getStr(req, "Password", myreq.Password);
getChar(req, "BankPwdFlag", &myreq.BankPwdFlag);
getInt(req, "RequestID", &myreq.RequestID);
getChar(req, "CustType", &myreq.CustType);
getStr(req, "IdentifiedCardNo", myreq.IdentifiedCardNo);
getChar(req, "FeePayFlag", &myreq.FeePayFlag);
getStr(req, "BankSerial", myreq.BankSerial);
getStr(req, "OperNo", myreq.OperNo);
getStr(req, "TradingDay", myreq.TradingDay);
getStr(req, "BankSecuAcc", myreq.BankSecuAcc);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "DeviceID", myreq.DeviceID);
getChar(req, "TransferStatus", &myreq.TransferStatus);
getChar(req, "IdCardType", &myreq.IdCardType);
getInt(req, "PlateSerial", &myreq.PlateSerial);
getDouble(req, "FutureFetchAmount", &myreq.FutureFetchAmount);
getStr(req, "TradeDate", myreq.TradeDate);
getStr(req, "CurrencyID", myreq.CurrencyID);
getDouble(req, "BrokerFee", &myreq.BrokerFee);
getChar(req, "BankAccType", &myreq.BankAccType);
getChar(req, "LastFragment", &myreq.LastFragment);
getInt(req, "FutureSerial", &myreq.FutureSerial);
getChar(req, "BankSecuAccType", &myreq.BankSecuAccType);
getStr(req, "BrokerIDByBank", myreq.BrokerIDByBank);
getChar(req, "SecuPwdFlag", &myreq.SecuPwdFlag);
getStr(req, "Message", myreq.Message);
getDouble(req, "CustFee", &myreq.CustFee);
getDouble(req, "TradeAmount", &myreq.TradeAmount);
getStr(req, "Digest", myreq.Digest);
int i = this->api->ReqFromFutureToBankByFuture(&myreq, nRequestID);
return i;
};
int TdApi::reqQueryBankAccountMoneyByFuture(dict req, int nRequestID)
{
CThostFtdcReqQueryAccountField myreq = CThostFtdcReqQueryAccountField();
memset(&myreq, 0, sizeof(myreq));
getStr(req, "BrokerBranchID", myreq.BrokerBranchID);
getStr(req, "UserID", myreq.UserID);
getStr(req, "BankPassWord", myreq.BankPassWord);
getStr(req, "TradeTime", myreq.TradeTime);
getChar(req, "VerifyCertNoFlag", &myreq.VerifyCertNoFlag);
getInt(req, "TID", &myreq.TID);
getStr(req, "AccountID", myreq.AccountID);
getStr(req, "BankAccount", myreq.BankAccount);
getInt(req, "InstallID", &myreq.InstallID);
getStr(req, "CustomerName", myreq.CustomerName);
getStr(req, "TradeCode", myreq.TradeCode);
getStr(req, "BankBranchID", myreq.BankBranchID);
getInt(req, "SessionID", &myreq.SessionID);
getStr(req, "BankID", myreq.BankID);
getStr(req, "Password", myreq.Password);
getChar(req, "BankPwdFlag", &myreq.BankPwdFlag);
getInt(req, "RequestID", &myreq.RequestID);
getChar(req, "CustType", &myreq.CustType);
getStr(req, "IdentifiedCardNo", myreq.IdentifiedCardNo);
getStr(req, "BankSerial", myreq.BankSerial);
getStr(req, "OperNo", myreq.OperNo);
getStr(req, "TradingDay", myreq.TradingDay);
getStr(req, "BankSecuAcc", myreq.BankSecuAcc);
getStr(req, "BrokerID", myreq.BrokerID);
getStr(req, "DeviceID", myreq.DeviceID);
getChar(req, "IdCardType", &myreq.IdCardType);
getInt(req, "PlateSerial", &myreq.PlateSerial);
getStr(req, "TradeDate", myreq.TradeDate);
getStr(req, "CurrencyID", myreq.CurrencyID);
getChar(req, "BankAccType", &myreq.BankAccType);
getChar(req, "LastFragment", &myreq.LastFragment);
getInt(req, "FutureSerial", &myreq.FutureSerial);
getChar(req, "BankSecuAccType", &myreq.BankSecuAccType);
getStr(req, "BrokerIDByBank", myreq.BrokerIDByBank);
getChar(req, "SecuPwdFlag", &myreq.SecuPwdFlag);
getStr(req, "Digest", myreq.Digest);
int i = this->api->ReqQueryBankAccountMoneyByFuture(&myreq, nRequestID);
return i;
};
///-------------------------------------------------------------------------------------
///Boost.Python封装
///-------------------------------------------------------------------------------------
struct TdApiWrap : TdApi, wrapper < TdApi >
{
virtual void onFrontConnected()
{
//在向python环境中调用回调函数推送数据前需要先获取全局锁GIL防止解释器崩溃
PyLock lock;
//以下的try...catch...可以实现捕捉python环境中错误的功能防止C++直接出现原因未知的崩溃
try
{
this->get_override("onFrontConnected")();
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onFrontDisconnected(int i)
{
PyLock lock;
try
{
this->get_override("onFrontDisconnected")(i);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onHeartBeatWarning(int i)
{
PyLock lock;
try
{
this->get_override("onHeartBeatWarning")(i);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspAuthenticate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspAuthenticate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspUserLogin(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspUserLogin")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspUserLogout(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspUserLogout")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspUserPasswordUpdate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspUserPasswordUpdate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspTradingAccountPasswordUpdate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspTradingAccountPasswordUpdate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspOrderInsert(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspOrderInsert")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspParkedOrderInsert(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspParkedOrderInsert")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspParkedOrderAction(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspParkedOrderAction")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspOrderAction(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspOrderAction")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQueryMaxOrderVolume(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQueryMaxOrderVolume")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspSettlementInfoConfirm(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspSettlementInfoConfirm")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspRemoveParkedOrder(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspRemoveParkedOrder")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspRemoveParkedOrderAction(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspRemoveParkedOrderAction")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspExecOrderInsert(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspExecOrderInsert")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspExecOrderAction(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspExecOrderAction")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspForQuoteInsert(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspForQuoteInsert")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQuoteInsert(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQuoteInsert")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQuoteAction(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQuoteAction")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspLockInsert(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspLockInsert")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspCombActionInsert(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspCombActionInsert")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryOrder(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryOrder")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryTrade(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryTrade")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInvestorPosition(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInvestorPosition")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryTradingAccount(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryTradingAccount")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInvestor(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInvestor")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryTradingCode(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryTradingCode")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInstrumentMarginRate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInstrumentMarginRate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInstrumentCommissionRate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInstrumentCommissionRate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryExchange(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryExchange")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryProduct(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryProduct")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInstrument(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInstrument")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryDepthMarketData(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryDepthMarketData")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQrySettlementInfo(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQrySettlementInfo")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryTransferBank(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryTransferBank")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInvestorPositionDetail(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInvestorPositionDetail")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryNotice(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryNotice")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQrySettlementInfoConfirm(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQrySettlementInfoConfirm")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInvestorPositionCombineDetail(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInvestorPositionCombineDetail")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryCFMMCTradingAccountKey(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryCFMMCTradingAccountKey")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryEWarrantOffset(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryEWarrantOffset")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInvestorProductGroupMargin(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInvestorProductGroupMargin")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryExchangeMarginRate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryExchangeMarginRate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryExchangeMarginRateAdjust(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryExchangeMarginRateAdjust")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryExchangeRate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryExchangeRate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQrySecAgentACIDMap(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQrySecAgentACIDMap")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryProductExchRate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryProductExchRate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryProductGroup(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryProductGroup")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryOptionInstrTradeCost(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryOptionInstrTradeCost")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryOptionInstrCommRate(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryOptionInstrCommRate")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryExecOrder(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryExecOrder")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryForQuote(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryForQuote")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryQuote(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryQuote")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryLock(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryLock")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryLockPosition(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryLockPosition")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryInvestorLevel(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryInvestorLevel")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryExecFreeze(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryExecFreeze")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryCombInstrumentGuard(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryCombInstrumentGuard")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryCombAction(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryCombAction")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryTransferSerial(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryTransferSerial")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryAccountregister(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryAccountregister")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspError(dict error, int id, bool last)
{
try
{
this->get_override("onRspError")(error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnOrder(dict data)
{
try
{
this->get_override("onRtnOrder")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnTrade(dict data)
{
try
{
this->get_override("onRtnTrade")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnOrderInsert(dict data, dict error)
{
try
{
this->get_override("onErrRtnOrderInsert")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnOrderAction(dict data, dict error)
{
try
{
this->get_override("onErrRtnOrderAction")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnInstrumentStatus(dict data)
{
try
{
this->get_override("onRtnInstrumentStatus")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnTradingNotice(dict data)
{
try
{
this->get_override("onRtnTradingNotice")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnErrorConditionalOrder(dict data)
{
try
{
this->get_override("onRtnErrorConditionalOrder")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnExecOrder(dict data)
{
try
{
this->get_override("onRtnExecOrder")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnExecOrderInsert(dict data, dict error)
{
try
{
this->get_override("onErrRtnExecOrderInsert")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnExecOrderAction(dict data, dict error)
{
try
{
this->get_override("onErrRtnExecOrderAction")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnForQuoteInsert(dict data, dict error)
{
try
{
this->get_override("onErrRtnForQuoteInsert")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnQuote(dict data)
{
try
{
this->get_override("onRtnQuote")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnQuoteInsert(dict data, dict error)
{
try
{
this->get_override("onErrRtnQuoteInsert")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnQuoteAction(dict data, dict error)
{
try
{
this->get_override("onErrRtnQuoteAction")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnForQuoteRsp(dict data)
{
try
{
this->get_override("onRtnForQuoteRsp")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnCFMMCTradingAccountToken(dict data)
{
try
{
this->get_override("onRtnCFMMCTradingAccountToken")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnLock(dict data)
{
try
{
this->get_override("onRtnLock")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnLockInsert(dict data, dict error)
{
try
{
this->get_override("onErrRtnLockInsert")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnCombAction(dict data)
{
try
{
this->get_override("onRtnCombAction")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnCombActionInsert(dict data, dict error)
{
try
{
this->get_override("onErrRtnCombActionInsert")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryContractBank(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryContractBank")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryParkedOrder(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryParkedOrder")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryParkedOrderAction(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryParkedOrderAction")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryTradingNotice(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryTradingNotice")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryBrokerTradingParams(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryBrokerTradingParams")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQryBrokerTradingAlgos(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQryBrokerTradingAlgos")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQueryCFMMCTradingAccountToken(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQueryCFMMCTradingAccountToken")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnFromBankToFutureByBank(dict data)
{
try
{
this->get_override("onRtnFromBankToFutureByBank")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnFromFutureToBankByBank(dict data)
{
try
{
this->get_override("onRtnFromFutureToBankByBank")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnRepealFromBankToFutureByBank(dict data)
{
try
{
this->get_override("onRtnRepealFromBankToFutureByBank")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnRepealFromFutureToBankByBank(dict data)
{
try
{
this->get_override("onRtnRepealFromFutureToBankByBank")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnFromBankToFutureByFuture(dict data)
{
try
{
this->get_override("onRtnFromBankToFutureByFuture")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnFromFutureToBankByFuture(dict data)
{
try
{
this->get_override("onRtnFromFutureToBankByFuture")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnRepealFromBankToFutureByFutureManual(dict data)
{
try
{
this->get_override("onRtnRepealFromBankToFutureByFutureManual")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnRepealFromFutureToBankByFutureManual(dict data)
{
try
{
this->get_override("onRtnRepealFromFutureToBankByFutureManual")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnQueryBankBalanceByFuture(dict data)
{
try
{
this->get_override("onRtnQueryBankBalanceByFuture")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnBankToFutureByFuture(dict data, dict error)
{
try
{
this->get_override("onErrRtnBankToFutureByFuture")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnFutureToBankByFuture(dict data, dict error)
{
try
{
this->get_override("onErrRtnFutureToBankByFuture")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnRepealBankToFutureByFutureManual(dict data, dict error)
{
try
{
this->get_override("onErrRtnRepealBankToFutureByFutureManual")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnRepealFutureToBankByFutureManual(dict data, dict error)
{
try
{
this->get_override("onErrRtnRepealFutureToBankByFutureManual")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onErrRtnQueryBankBalanceByFuture(dict data, dict error)
{
try
{
this->get_override("onErrRtnQueryBankBalanceByFuture")(data, error);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnRepealFromBankToFutureByFuture(dict data)
{
try
{
this->get_override("onRtnRepealFromBankToFutureByFuture")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnRepealFromFutureToBankByFuture(dict data)
{
try
{
this->get_override("onRtnRepealFromFutureToBankByFuture")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspFromBankToFutureByFuture(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspFromBankToFutureByFuture")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspFromFutureToBankByFuture(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspFromFutureToBankByFuture")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRspQueryBankAccountMoneyByFuture(dict data, dict error, int id, bool last)
{
try
{
this->get_override("onRspQueryBankAccountMoneyByFuture")(data, error, id, last);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnOpenAccountByBank(dict data)
{
try
{
this->get_override("onRtnOpenAccountByBank")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnCancelAccountByBank(dict data)
{
try
{
this->get_override("onRtnCancelAccountByBank")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
virtual void onRtnChangeAccountByBank(dict data)
{
try
{
this->get_override("onRtnChangeAccountByBank")(data);
}
catch (error_already_set const &)
{
PyErr_Print();
}
};
};
BOOST_PYTHON_MODULE(vnctptd)
{
PyEval_InitThreads(); //导入时运行保证先创建GIL
class_<TdApiWrap, boost::noncopyable>("TdApi")
.def("createFtdcTraderApi", &TdApiWrap::createFtdcTraderApi)
.def("release", &TdApiWrap::release)
.def("init", &TdApiWrap::init)
.def("join", &TdApiWrap::join)
.def("exit", &TdApiWrap::exit)
.def("getTradingDay", &TdApiWrap::getTradingDay)
.def("registerFront", &TdApiWrap::registerFront)
.def("subscribePrivateTopic", &TdApiWrap::subscribePrivateTopic)
.def("subscribePublicTopic", &TdApiWrap::subscribePublicTopic)
.def("reqAuthenticate", &TdApiWrap::reqAuthenticate)
.def("reqUserLogin", &TdApiWrap::reqUserLogin)
.def("reqUserLogout", &TdApiWrap::reqUserLogout)
.def("reqUserPasswordUpdate", &TdApiWrap::reqUserPasswordUpdate)
.def("reqTradingAccountPasswordUpdate", &TdApiWrap::reqTradingAccountPasswordUpdate)
.def("reqOrderInsert", &TdApiWrap::reqOrderInsert)
.def("reqParkedOrderInsert", &TdApiWrap::reqParkedOrderInsert)
.def("reqParkedOrderAction", &TdApiWrap::reqParkedOrderAction)
.def("reqOrderAction", &TdApiWrap::reqOrderAction)
.def("reqQueryMaxOrderVolume", &TdApiWrap::reqQueryMaxOrderVolume)
.def("reqSettlementInfoConfirm", &TdApiWrap::reqSettlementInfoConfirm)
.def("reqRemoveParkedOrder", &TdApiWrap::reqRemoveParkedOrder)
.def("reqRemoveParkedOrderAction", &TdApiWrap::reqRemoveParkedOrderAction)
.def("reqExecOrderInsert", &TdApiWrap::reqExecOrderInsert)
.def("reqExecOrderAction", &TdApiWrap::reqExecOrderAction)
.def("reqForQuoteInsert", &TdApiWrap::reqForQuoteInsert)
.def("reqQuoteInsert", &TdApiWrap::reqQuoteInsert)
.def("reqQuoteAction", &TdApiWrap::reqQuoteAction)
.def("reqLockInsert", &TdApiWrap::reqLockInsert)
.def("reqCombActionInsert", &TdApiWrap::reqCombActionInsert)
.def("reqQryOrder", &TdApiWrap::reqQryOrder)
.def("reqQryTrade", &TdApiWrap::reqQryTrade)
.def("reqQryInvestorPosition", &TdApiWrap::reqQryInvestorPosition)
.def("reqQryTradingAccount", &TdApiWrap::reqQryTradingAccount)
.def("reqQryInvestor", &TdApiWrap::reqQryInvestor)
.def("reqQryTradingCode", &TdApiWrap::reqQryTradingCode)
.def("reqQryInstrumentMarginRate", &TdApiWrap::reqQryInstrumentMarginRate)
.def("reqQryInstrumentCommissionRate", &TdApiWrap::reqQryInstrumentCommissionRate)
.def("reqQryExchange", &TdApiWrap::reqQryExchange)
.def("reqQryProduct", &TdApiWrap::reqQryProduct)
.def("reqQryInstrument", &TdApiWrap::reqQryInstrument)
.def("reqQryDepthMarketData", &TdApiWrap::reqQryDepthMarketData)
.def("reqQrySettlementInfo", &TdApiWrap::reqQrySettlementInfo)
.def("reqQryTransferBank", &TdApiWrap::reqQryTransferBank)
.def("reqQryInvestorPositionDetail", &TdApiWrap::reqQryInvestorPositionDetail)
.def("reqQryNotice", &TdApiWrap::reqQryNotice)
.def("reqQrySettlementInfoConfirm", &TdApiWrap::reqQrySettlementInfoConfirm)
.def("reqQryInvestorPositionCombineDetail", &TdApiWrap::reqQryInvestorPositionCombineDetail)
.def("reqQryCFMMCTradingAccountKey", &TdApiWrap::reqQryCFMMCTradingAccountKey)
.def("reqQryEWarrantOffset", &TdApiWrap::reqQryEWarrantOffset)
.def("reqQryInvestorProductGroupMargin", &TdApiWrap::reqQryInvestorProductGroupMargin)
.def("reqQryExchangeMarginRate", &TdApiWrap::reqQryExchangeMarginRate)
.def("reqQryExchangeMarginRateAdjust", &TdApiWrap::reqQryExchangeMarginRateAdjust)
.def("reqQryExchangeRate", &TdApiWrap::reqQryExchangeRate)
.def("reqQrySecAgentACIDMap", &TdApiWrap::reqQrySecAgentACIDMap)
.def("reqQryProductExchRate", &TdApiWrap::reqQryProductExchRate)
.def("reqQryProductGroup", &TdApiWrap::reqQryProductGroup)
.def("reqQryOptionInstrTradeCost", &TdApiWrap::reqQryOptionInstrTradeCost)
.def("reqQryOptionInstrCommRate", &TdApiWrap::reqQryOptionInstrCommRate)
.def("reqQryExecOrder", &TdApiWrap::reqQryExecOrder)
.def("reqQryForQuote", &TdApiWrap::reqQryForQuote)
.def("reqQryQuote", &TdApiWrap::reqQryQuote)
.def("reqQryLock", &TdApiWrap::reqQryLock)
.def("reqQryLockPosition", &TdApiWrap::reqQryLockPosition)
.def("reqQryInvestorLevel", &TdApiWrap::reqQryInvestorLevel)
.def("reqQryExecFreeze", &TdApiWrap::reqQryExecFreeze)
.def("reqQryCombInstrumentGuard", &TdApiWrap::reqQryCombInstrumentGuard)
.def("reqQryCombAction", &TdApiWrap::reqQryCombAction)
.def("reqQryTransferSerial", &TdApiWrap::reqQryTransferSerial)
.def("reqQryAccountregister", &TdApiWrap::reqQryAccountregister)
.def("reqQryContractBank", &TdApiWrap::reqQryContractBank)
.def("reqQryParkedOrder", &TdApiWrap::reqQryParkedOrder)
.def("reqQryParkedOrderAction", &TdApiWrap::reqQryParkedOrderAction)
.def("reqQryTradingNotice", &TdApiWrap::reqQryTradingNotice)
.def("reqQryBrokerTradingParams", &TdApiWrap::reqQryBrokerTradingParams)
.def("reqQryBrokerTradingAlgos", &TdApiWrap::reqQryBrokerTradingAlgos)
.def("reqQueryCFMMCTradingAccountToken", &TdApiWrap::reqQueryCFMMCTradingAccountToken)
.def("reqFromBankToFutureByFuture", &TdApiWrap::reqFromBankToFutureByFuture)
.def("reqFromFutureToBankByFuture", &TdApiWrap::reqFromFutureToBankByFuture)
.def("reqQueryBankAccountMoneyByFuture", &TdApiWrap::reqQueryBankAccountMoneyByFuture)
.def("onFrontConnected", pure_virtual(&TdApiWrap::onFrontConnected))
.def("onFrontDisconnected", pure_virtual(&TdApiWrap::onFrontDisconnected))
.def("onHeartBeatWarning", pure_virtual(&TdApiWrap::onHeartBeatWarning))
.def("onRspAuthenticate", pure_virtual(&TdApiWrap::onRspAuthenticate))
.def("onRspUserLogin", pure_virtual(&TdApiWrap::onRspUserLogin))
.def("onRspUserLogout", pure_virtual(&TdApiWrap::onRspUserLogout))
.def("onRspUserPasswordUpdate", pure_virtual(&TdApiWrap::onRspUserPasswordUpdate))
.def("onRspTradingAccountPasswordUpdate", pure_virtual(&TdApiWrap::onRspTradingAccountPasswordUpdate))
.def("onRspOrderInsert", pure_virtual(&TdApiWrap::onRspOrderInsert))
.def("onRspParkedOrderInsert", pure_virtual(&TdApiWrap::onRspParkedOrderInsert))
.def("onRspParkedOrderAction", pure_virtual(&TdApiWrap::onRspParkedOrderAction))
.def("onRspOrderAction", pure_virtual(&TdApiWrap::onRspOrderAction))
.def("onRspQueryMaxOrderVolume", pure_virtual(&TdApiWrap::onRspQueryMaxOrderVolume))
.def("onRspSettlementInfoConfirm", pure_virtual(&TdApiWrap::onRspSettlementInfoConfirm))
.def("onRspRemoveParkedOrder", pure_virtual(&TdApiWrap::onRspRemoveParkedOrder))
.def("onRspRemoveParkedOrderAction", pure_virtual(&TdApiWrap::onRspRemoveParkedOrderAction))
.def("onRspExecOrderInsert", pure_virtual(&TdApiWrap::onRspExecOrderInsert))
.def("onRspExecOrderAction", pure_virtual(&TdApiWrap::onRspExecOrderAction))
.def("onRspForQuoteInsert", pure_virtual(&TdApiWrap::onRspForQuoteInsert))
.def("onRspQuoteInsert", pure_virtual(&TdApiWrap::onRspQuoteInsert))
.def("onRspQuoteAction", pure_virtual(&TdApiWrap::onRspQuoteAction))
.def("onRspLockInsert", pure_virtual(&TdApiWrap::onRspLockInsert))
.def("onRspCombActionInsert", pure_virtual(&TdApiWrap::onRspCombActionInsert))
.def("onRspQryOrder", pure_virtual(&TdApiWrap::onRspQryOrder))
.def("onRspQryTrade", pure_virtual(&TdApiWrap::onRspQryTrade))
.def("onRspQryInvestorPosition", pure_virtual(&TdApiWrap::onRspQryInvestorPosition))
.def("onRspQryTradingAccount", pure_virtual(&TdApiWrap::onRspQryTradingAccount))
.def("onRspQryInvestor", pure_virtual(&TdApiWrap::onRspQryInvestor))
.def("onRspQryTradingCode", pure_virtual(&TdApiWrap::onRspQryTradingCode))
.def("onRspQryInstrumentMarginRate", pure_virtual(&TdApiWrap::onRspQryInstrumentMarginRate))
.def("onRspQryInstrumentCommissionRate", pure_virtual(&TdApiWrap::onRspQryInstrumentCommissionRate))
.def("onRspQryExchange", pure_virtual(&TdApiWrap::onRspQryExchange))
.def("onRspQryProduct", pure_virtual(&TdApiWrap::onRspQryProduct))
.def("onRspQryInstrument", pure_virtual(&TdApiWrap::onRspQryInstrument))
.def("onRspQryDepthMarketData", pure_virtual(&TdApiWrap::onRspQryDepthMarketData))
.def("onRspQrySettlementInfo", pure_virtual(&TdApiWrap::onRspQrySettlementInfo))
.def("onRspQryTransferBank", pure_virtual(&TdApiWrap::onRspQryTransferBank))
.def("onRspQryInvestorPositionDetail", pure_virtual(&TdApiWrap::onRspQryInvestorPositionDetail))
.def("onRspQryNotice", pure_virtual(&TdApiWrap::onRspQryNotice))
.def("onRspQrySettlementInfoConfirm", pure_virtual(&TdApiWrap::onRspQrySettlementInfoConfirm))
.def("onRspQryInvestorPositionCombineDetail", pure_virtual(&TdApiWrap::onRspQryInvestorPositionCombineDetail))
.def("onRspQryCFMMCTradingAccountKey", pure_virtual(&TdApiWrap::onRspQryCFMMCTradingAccountKey))
.def("onRspQryEWarrantOffset", pure_virtual(&TdApiWrap::onRspQryEWarrantOffset))
.def("onRspQryInvestorProductGroupMargin", pure_virtual(&TdApiWrap::onRspQryInvestorProductGroupMargin))
.def("onRspQryExchangeMarginRate", pure_virtual(&TdApiWrap::onRspQryExchangeMarginRate))
.def("onRspQryExchangeMarginRateAdjust", pure_virtual(&TdApiWrap::onRspQryExchangeMarginRateAdjust))
.def("onRspQryExchangeRate", pure_virtual(&TdApiWrap::onRspQryExchangeRate))
.def("onRspQrySecAgentACIDMap", pure_virtual(&TdApiWrap::onRspQrySecAgentACIDMap))
.def("onRspQryProductExchRate", pure_virtual(&TdApiWrap::onRspQryProductExchRate))
.def("onRspQryProductGroup", pure_virtual(&TdApiWrap::onRspQryProductGroup))
.def("onRspQryOptionInstrTradeCost", pure_virtual(&TdApiWrap::onRspQryOptionInstrTradeCost))
.def("onRspQryOptionInstrCommRate", pure_virtual(&TdApiWrap::onRspQryOptionInstrCommRate))
.def("onRspQryExecOrder", pure_virtual(&TdApiWrap::onRspQryExecOrder))
.def("onRspQryForQuote", pure_virtual(&TdApiWrap::onRspQryForQuote))
.def("onRspQryQuote", pure_virtual(&TdApiWrap::onRspQryQuote))
.def("onRspQryLock", pure_virtual(&TdApiWrap::onRspQryLock))
.def("onRspQryLockPosition", pure_virtual(&TdApiWrap::onRspQryLockPosition))
.def("onRspQryInvestorLevel", pure_virtual(&TdApiWrap::onRspQryInvestorLevel))
.def("onRspQryExecFreeze", pure_virtual(&TdApiWrap::onRspQryExecFreeze))
.def("onRspQryCombInstrumentGuard", pure_virtual(&TdApiWrap::onRspQryCombInstrumentGuard))
.def("onRspQryCombAction", pure_virtual(&TdApiWrap::onRspQryCombAction))
.def("onRspQryTransferSerial", pure_virtual(&TdApiWrap::onRspQryTransferSerial))
.def("onRspQryAccountregister", pure_virtual(&TdApiWrap::onRspQryAccountregister))
.def("onRspError", pure_virtual(&TdApiWrap::onRspError))
.def("onRtnOrder", pure_virtual(&TdApiWrap::onRtnOrder))
.def("onRtnTrade", pure_virtual(&TdApiWrap::onRtnTrade))
.def("onErrRtnOrderInsert", pure_virtual(&TdApiWrap::onErrRtnOrderInsert))
.def("onErrRtnOrderAction", pure_virtual(&TdApiWrap::onErrRtnOrderAction))
.def("onRtnInstrumentStatus", pure_virtual(&TdApiWrap::onRtnInstrumentStatus))
.def("onRtnTradingNotice", pure_virtual(&TdApiWrap::onRtnTradingNotice))
.def("onRtnErrorConditionalOrder", pure_virtual(&TdApiWrap::onRtnErrorConditionalOrder))
.def("onRtnExecOrder", pure_virtual(&TdApiWrap::onRtnExecOrder))
.def("onErrRtnExecOrderInsert", pure_virtual(&TdApiWrap::onErrRtnExecOrderInsert))
.def("onErrRtnExecOrderAction", pure_virtual(&TdApiWrap::onErrRtnExecOrderAction))
.def("onErrRtnForQuoteInsert", pure_virtual(&TdApiWrap::onErrRtnForQuoteInsert))
.def("onRtnQuote", pure_virtual(&TdApiWrap::onRtnQuote))
.def("onErrRtnQuoteInsert", pure_virtual(&TdApiWrap::onErrRtnQuoteInsert))
.def("onErrRtnQuoteAction", pure_virtual(&TdApiWrap::onErrRtnQuoteAction))
.def("onRtnForQuoteRsp", pure_virtual(&TdApiWrap::onRtnForQuoteRsp))
.def("onRtnCFMMCTradingAccountToken", pure_virtual(&TdApiWrap::onRtnCFMMCTradingAccountToken))
.def("onRtnLock", pure_virtual(&TdApiWrap::onRtnLock))
.def("onErrRtnLockInsert", pure_virtual(&TdApiWrap::onErrRtnLockInsert))
.def("onRtnCombAction", pure_virtual(&TdApiWrap::onRtnCombAction))
.def("onErrRtnCombActionInsert", pure_virtual(&TdApiWrap::onErrRtnCombActionInsert))
.def("onRspQryContractBank", pure_virtual(&TdApiWrap::onRspQryContractBank))
.def("onRspQryParkedOrder", pure_virtual(&TdApiWrap::onRspQryParkedOrder))
.def("onRspQryParkedOrderAction", pure_virtual(&TdApiWrap::onRspQryParkedOrderAction))
.def("onRspQryTradingNotice", pure_virtual(&TdApiWrap::onRspQryTradingNotice))
.def("onRspQryBrokerTradingParams", pure_virtual(&TdApiWrap::onRspQryBrokerTradingParams))
.def("onRspQryBrokerTradingAlgos", pure_virtual(&TdApiWrap::onRspQryBrokerTradingAlgos))
.def("onRspQueryCFMMCTradingAccountToken", pure_virtual(&TdApiWrap::onRspQueryCFMMCTradingAccountToken))
.def("onRtnFromBankToFutureByBank", pure_virtual(&TdApiWrap::onRtnFromBankToFutureByBank))
.def("onRtnFromFutureToBankByBank", pure_virtual(&TdApiWrap::onRtnFromFutureToBankByBank))
.def("onRtnRepealFromBankToFutureByBank", pure_virtual(&TdApiWrap::onRtnRepealFromBankToFutureByBank))
.def("onRtnRepealFromFutureToBankByBank", pure_virtual(&TdApiWrap::onRtnRepealFromFutureToBankByBank))
.def("onRtnFromBankToFutureByFuture", pure_virtual(&TdApiWrap::onRtnFromBankToFutureByFuture))
.def("onRtnFromFutureToBankByFuture", pure_virtual(&TdApiWrap::onRtnFromFutureToBankByFuture))
.def("onRtnRepealFromBankToFutureByFutureManual", pure_virtual(&TdApiWrap::onRtnRepealFromBankToFutureByFutureManual))
.def("onRtnRepealFromFutureToBankByFutureManual", pure_virtual(&TdApiWrap::onRtnRepealFromFutureToBankByFutureManual))
.def("onRtnQueryBankBalanceByFuture", pure_virtual(&TdApiWrap::onRtnQueryBankBalanceByFuture))
.def("onErrRtnBankToFutureByFuture", pure_virtual(&TdApiWrap::onErrRtnBankToFutureByFuture))
.def("onErrRtnFutureToBankByFuture", pure_virtual(&TdApiWrap::onErrRtnFutureToBankByFuture))
.def("onErrRtnRepealBankToFutureByFutureManual", pure_virtual(&TdApiWrap::onErrRtnRepealBankToFutureByFutureManual))
.def("onErrRtnRepealFutureToBankByFutureManual", pure_virtual(&TdApiWrap::onErrRtnRepealFutureToBankByFutureManual))
.def("onErrRtnQueryBankBalanceByFuture", pure_virtual(&TdApiWrap::onErrRtnQueryBankBalanceByFuture))
.def("onRtnRepealFromBankToFutureByFuture", pure_virtual(&TdApiWrap::onRtnRepealFromBankToFutureByFuture))
.def("onRtnRepealFromFutureToBankByFuture", pure_virtual(&TdApiWrap::onRtnRepealFromFutureToBankByFuture))
.def("onRspFromBankToFutureByFuture", pure_virtual(&TdApiWrap::onRspFromBankToFutureByFuture))
.def("onRspFromFutureToBankByFuture", pure_virtual(&TdApiWrap::onRspFromFutureToBankByFuture))
.def("onRspQueryBankAccountMoneyByFuture", pure_virtual(&TdApiWrap::onRspQueryBankAccountMoneyByFuture))
.def("onRtnOpenAccountByBank", pure_virtual(&TdApiWrap::onRtnOpenAccountByBank))
.def("onRtnCancelAccountByBank", pure_virtual(&TdApiWrap::onRtnCancelAccountByBank))
.def("onRtnChangeAccountByBank", pure_virtual(&TdApiWrap::onRtnChangeAccountByBank))
;
}