CTP官方API头文件包括以下几个文件:
- ThostFtdcMdApi.h:实现行情相关的订阅接和接收功能。Api类负责发起主动请求,Spi响应类负责接收请求通知和广播通知。
- ThostFtdcTraderApi.h:实现交易相关的(买卖开平撤等)报单和查询功能。Api类负责发起主动请求,Spi响应类负责接收请求通知和广播通知。
- ThostFtdcUserApiDataType.h:请求函数与回调函数的结构参数定义。
- ThostFtdcUserApiStruct.h:结构体参数的字段类型。
- error.xml:错误ID与错误描述。
只有弄清楚函数定义、结构体参数定义、字段定义才能正确使用该函数;只有将Api请求与Spi回调对应起来才能正确处理业务流程;只有清楚所有相互关联的业务才能选择最适合的操作。
所以,分类汇总是从全局理解CTP接口必不可少的工作。
由于篇幅所限,本文发布的是交易者最关心的基础交易接口。更多内容请查看《CTP量化投资API使用手册》(www.ctp.plus/?/column/details/1)。
录入报单
请求
///报单录入请求
int ReqOrderInsert(CThostFtdcInputOrderField *pInputOrder, int nRequestID) = 0;
响应
///报单录入请求的响应
void OnRspOrderInsert(CThostFtdcInputOrderField* pInputOrder, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};
///报单录入请求错误的回报
void OnErrRtnOrderInsert(CThostFtdcInputOrderField* pInputOrder, CThostFtdcRspInfoField* pRspInfo) {};
///报单通知
void OnRtnOrder(CThostFtdcOrderField* pOrder) {};
///成交通知
void OnRtnTrade(CThostFtdcTradeField* pTrade) {};
///提示条件单校验错误
virtual void OnRtnErrorConditionalOrder(CThostFtdcErrorConditionalOrderField* pErrorConditionalOrder) {};
CThostFtdcInputOrderField
CThostFtdcOrderField (略)
CThostFtdcTradeField (略)
CThostFtdcErrorConditionalOrderField (略)
查询报单
请求
///查询报单请求
int ReqQryOrder(CThostFtdcQryOrderField *pQryOrder, int nRequestID) = 0;
响应
///查询报单请求的响应
void OnRspQryOrder(CThostFtdcOrderField* pOrder, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};
CThostFtdcQryOrderField (略)
查询成交
请求
///查询成交请求
int ReqQryTrade(CThostFtdcQryTradeField *pQryTrade, int nRequestID) = 0;
响应
///查询成交请求的响应
void OnRspQryTrade(CThostFtdcTradeField* pTrade, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};
CThostFtdcQryTradeField (略)
录入撤单
请求
///撤单录入请求
int ReqOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction, int nRequestID) = 0;
响应
///撤单录入请求的响应
void OnRspOrderAction(CThostFtdcInputOrderActionField* pInputOrderAction, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};
///撤单错误的回报
void OnErrRtnOrderAction(CThostFtdcOrderActionField* pOrderAction, CThostFtdcRspInfoField* pRspInfo) {};
CThostFtdcInputOrderActionField (略)
CThostFtdcOrderActionField (略)
录入批量撤单
请求
///批量撤单录入请求
int ReqBatchOrderAction(CThostFtdcInputBatchOrderActionField *pInputBatchOrderAction, int nRequestID) = 0;
响应
///批量撤单录入请求的响应
virtual void OnRspBatchOrderAction(CThostFtdcInputBatchOrderActionField* pInputBatchOrderAction, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};
///批量撤单错误的回报
virtual void OnErrRtnBatchOrderAction(CThostFtdcBatchOrderActionField* pBatchOrderAction, CThostFtdcRspInfoField* pRspInfo) {};
CThostFtdcInputBatchOrderActionField (略)
CThostFtdcBatchOrderActionField (略)