CTP量化投资API分类汇总速查手册

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 (略)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CTPapi_交易开发实例 class CTraderSpi : public CThostFtdcTraderSpi { public: ///当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。 virtual void OnFrontConnected(); ///登录请求响应 virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); ///投资者结算结果确认响应 virtual void OnRspSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); ///请求查询合约响应 virtual void OnRspQryInstrument(CThostFtdcInstrumentField *pInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); ///请求查询资金账户响应 virtual void OnRspQryTradingAccount(CThostFtdcTradingAccountField *pTradingAccount, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); ///请求查询投资者持仓响应 virtual void OnRspQryInvestorPosition(CThostFtdcInvestorPositionField *pInvestorPosition, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); ///报单录入请求响应 virtual void OnRspOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); ///报单操作请求响应 virtual void OnRspOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); ///错误应答 virtual void OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast); ///当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。 virtual void OnFrontDisconnected(int nReason); ///心跳超时警告。当长时间未收到报文时,该方法被调用。 virtual void OnHeartBeatWarning(int nTimeLapse); ///报单通知 virtual void OnRtnOrder(CThostFtdcOrderField *pOrder); ///成交通知 virtual void OnRtnTrade(CThostFtdcTradeField *pTrade); private: ///用户登录请求 void ReqUserLogin(); ///投资者结算结果确认 void ReqSettlementInfoConfirm(); ///请求查询合约 void ReqQryInstrument(); ///请求查询资金账户 void ReqQryTradingAccount(); ///请求查询投资者持仓 void ReqQryInvestorPosition(); ///报单录入请求 void ReqOrderInsert(); ///报单操作请求 void ReqOrderAction(CThostFtdcOrderField *pOrder); // 是否收到成功的响应 bool IsErrorRspInfo(CThostFtdcRspInfoField *pRspInfo); // 是否我的报单回报 bool IsMyOrder(CThostFtdcOrderField *pOrder); // 是否正在交易的报单 bool IsTradingOrder(CThostFtdcOrderField *pOrder); };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值