20190924交易日志

回复

交易综合ctp 发起了问题 • 1 人关注 • 0 个回复 • 1 次浏览 • 2019-09-24 16:03 • 来自相关话题

3.TraderApi基础交易接口说明

软件开发ctp 发表了文章 • 0 个评论 • 4 次浏览 • 2019-09-24 11:12 • 来自相关话题

待补充。
待补充。

ctp 发表了文章 • %s 个评论 • %s 次浏览 • 1970-01-01 08:00 • 来自相关话题

20190923交易日志

回复

交易综合ctp 回复了问题 • 1 人关注 • 1 个回复 • 25 次浏览 • 2019-09-23 21:53 • 来自相关话题

2.TraderApi环境初始化与账户登录相关接口说明

软件开发ctp 发表了文章 • 0 个评论 • 34 次浏览 • 2019-09-21 10:04 • 来自相关话题


创建TraderApi实例 <<<- 
///@param pszFlowPath 存贮订阅信息文件的目录,默认为当前目录
static CThostFtdcTraderApi *CreateFtdcTraderApi(const char *pszFlowPath = "");



 




注册回调接口 <<<- 
///@param pSpi 派生自回调接口类的实例
void RegisterSpi(CThostFtdcTraderSpi *pSpi) = 0;



 




订阅私有流 <<<- 
///@param nResumeType 私有流重传方式  
/// THOST_TERT_RESTART:从本交易日开始重传
/// THOST_TERT_RESUME:从上次收到的续传
/// THOST_TERT_QUICK:只传送登录后私有流的内容
///@remark 该方法要在Init方法前调用。若不调用则不会收到私有流的数据。
void SubscribePrivateTopic(THOST_TE_RESUME_TYPE nResumeType) = 0;



 




订阅公共流 <<<- 
///@param nResumeType 公共流重传方式  
/// THOST_TERT_RESTART:从本交易日开始重传
/// THOST_TERT_RESUME:从上次收到的续传
/// THOST_TERT_QUICK:只传送登录后公共流的内容
///@remark 该方法要在Init方法前调用。若不调用则不会收到公共流的数据。
void SubscribePublicTopic(THOST_TE_RESUME_TYPE nResumeType) = 0;



 




注册前置 <<<- 
///@param pszFrontAddress:前置机网络地址
///@remark 网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:17001”
///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”17001”代表服务器端口号。
void RegisterFront(char *pszFrontAddress) = 0;

///注册名字服务器网络地址
///@param pszNsAddress:名字服务器网络地址。
///@remark 网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:12001”。
///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”12001”代表服务器端口号。
///@remark RegisterNameServer优先于RegisterFront
void RegisterNameServer(char *pszNsAddress) = 0;

///注册名字服务器用户信息
///@param pFensUserInfo:用户信息。
void RegisterFensUserInfo(CThostFtdcFensUserInfoField * pFensUserInfo) = 0;



 




初始化运行环境 <<<- 
///@remark 只有调用后,接口才开始工作
void Init() = 0;



 




连接建立响应 <<<- 
///当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。
void OnFrontConnected() {};



 




连接异常响应 <<<- 
///当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。
///@param nReason 错误原因
/// 0x1001 网络读失败 4097
/// 0x1002 网络写失败 4098
/// 0x2001 接收心跳超时 8193
/// 0x2002 发送心跳失败 8194
/// 0x2003 收到错误报文 8195
void OnFrontDisconnected(int nReason) {};

///当长时间未收到报文时,该方法被调用。
///@param nTimeLapse 距离上次接收报文的时间
virtual void OnHeartBeatWarning(int nTimeLapse) {};



 





认证客户端 <<<- 

请求 <<<- 

int ReqAuthenticate(CThostFtdcReqAuthenticateField *pReqAuthenticateField, int nRequestID) = 0;

响应 <<<- 

void OnRspAuthenticate(CThostFtdcRspAuthenticateField* pRspAuthenticateField, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcReqAuthenticateField ->>> 


CThostFtdcRspAuthenticateField ->>> 





 




查询认证模式 <<<- 

请求 <<<- 

int ReqUserAuthMethod(CThostFtdcReqUserAuthMethodField *pReqUserAuthMethod, int nRequestID) = 0;

响应 <<<- 

void OnRspUserAuthMethod(CThostFtdcRspUserAuthMethodField* pRspUserAuthMethod, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcReqUserAuthMethodField ->>> 


CThostFtdcRspUserAuthMethodField ->>> 





 




注册用户终端信息 <<<- 
///用于中继服务器多连接模式
///需要在终端认证成功后,用户登录前调用该接口
int RegisterUserSystemInfo(CThostFtdcUserSystemInfoField *pUserSystemInfo) = 0;



 




用户登录 <<<- 

请求 <<<- 

///用户登录请求
int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID) = 0;

///用户发出获取图形验证码请求
int ReqGenUserCaptcha(CThostFtdcReqGenUserCaptchaField *pReqGenUserCaptcha, int nRequestID) = 0;
///用户发出带有图片验证码的登陆请求
int ReqUserLoginWithCaptcha(CThostFtdcReqUserLoginWithCaptchaField *pReqUserLoginWithCaptcha, int nRequestID) = 0;

///用户发出获取短信验证码请求
int ReqGenUserText(CThostFtdcReqGenUserTextField *pReqGenUserText, int nRequestID) = 0;
///用户发出带有短信验证码的登陆请求
int ReqUserLoginWithText(CThostFtdcReqUserLoginWithTextField *pReqUserLoginWithText, int nRequestID) = 0;

///用户发出带有动态口令的登陆请求
int ReqUserLoginWithOTP(CThostFtdcReqUserLoginWithOTPField *pReqUserLoginWithOTP, int nRequestID) = 0;

响应 <<<- 

///登录请求响应
void OnRspUserLogin(CThostFtdcRspUserLoginField* pRspUserLogin, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

///获取图形验证码请求的回复
virtual void OnRspGenUserCaptcha(CThostFtdcRspGenUserCaptchaField* pRspGenUserCaptcha, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};
///获取短信验证码请求的回复
virtual void OnRspGenUserText(CThostFtdcRspGenUserTextField* pRspGenUserText, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcReqUserLoginField ->>> 


CThostFtdcRspUserLoginField ->>> 





 




用户登出 <<<- 

请求 <<<- 

int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int nRequestID) = 0;

响应 <<<- 

void OnRspUserLogout(CThostFtdcUserLogoutField* pUserLogout, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcUserLogoutField ->>> 





 




查询投资者 <<<- 

请求 <<<- 

int ReqQryInvestor(CThostFtdcQryInvestorField *pQryInvestor, int nRequestID) = 0;

响应 <<<- 

void OnRspQryInvestor(CThostFtdcInvestorField* pInvestor, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcQryInvestorField ->>> 


CThostFtdcInvestorField ->>> 





 




更新用户口令 <<<- 

请求 <<<- 

int ReqUserPasswordUpdate(CThostFtdcUserPasswordUpdateField *pUserPasswordUpdate, int nRequestID) = 0;

响应 <<<- 

void OnRspUserPasswordUpdate(CThostFtdcUserPasswordUpdateField* pUserPasswordUpdate, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcUserPasswordUpdateField ->>> 





 




更新资金账户口令 <<<- 

请求 <<<- 

int ReqTradingAccountPasswordUpdate(CThostFtdcTradingAccountPasswordUpdateField *pTradingAccountPasswordUpdate, int nRequestID) = 0;

响应 <<<- 

void OnRspTradingAccountPasswordUpdate(CThostFtdcTradingAccountPasswordUpdateField* pTradingAccountPasswordUpdate, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcTradingAccountPasswordUpdateField ->>> 





 




查询监控中心用户令牌 <<<- 

请求 <<<- 

int ReqQueryCFMMCTradingAccountToken(CThostFtdcQueryCFMMCTradingAccountTokenField *pQueryCFMMCTradingAccountToken, int nRequestID) = 0;

响应 <<<- 


void OnRspQueryCFMMCTradingAccountToken(CThostFtdcQueryCFMMCTradingAccountTokenField* pQueryCFMMCTradingAccountToken, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};
///保证金监控中心用户令牌
void OnRtnCFMMCTradingAccountToken(CThostFtdcCFMMCTradingAccountTokenField* pCFMMCTradingAccountToken) {};

CThostFtdcQueryCFMMCTradingAccountTokenField ->>> 


CThostFtdcCFMMCTradingAccountTokenField ->>> 





 




确认结算单 <<<- 

请求 <<<- 

int ReqSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField *pSettlementInfoConfirm, int nRequestID) = 0;

响应 <<<- 

void OnRspSettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField* pSettlementInfoConfirm, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcSettlementInfoConfirmField ->>> 





 




查询结算单确认信息 <<<- 

请求 <<<- 

int ReqQrySettlementInfoConfirm(CThostFtdcQrySettlementInfoConfirmField *pQrySettlementInfoConfirm, int nRequestID) = 0;

响应 <<<- 

void OnRspQrySettlementInfoConfirm(CThostFtdcSettlementInfoConfirmField* pSettlementInfoConfirm, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcQrySettlementInfoConfirmField ->>> 





 




查询结算单信息 <<<- 

请求 <<<- 

int ReqQrySettlementInfo(CThostFtdcQrySettlementInfoField *pQrySettlementInfo, int nRequestID) = 0;

响应 <<<- 

void OnRspQrySettlementInfo(CThostFtdcSettlementInfoField* pSettlementInfo, CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcQrySettlementInfoField ->>> 






 




线程等待 <<<- 
///等待接口线程结束运行
int Join() = 0;



 




合约交易状态通知 <<<- 
void OnRtnInstrumentStatus(CThostFtdcInstrumentStatusField* pInstrumentStatus) {};



 




获取API的版本信息 <<<- 
///@retrun 获取到的版本号
static const char *GetApiVersion();



 




获取当前交易日 <<<- 
///@retrun 获取到的交易日
///@remark 只有登录成功后,才能得到正确的交易日
virtual const char *GetTradingDay() = 0;



 




上报用户终端信息 <<<- 
///用于中继服务器操作员登录模式
///操作员登录后,可以多次调用该接口上报客户信息
int SubmitUserSystemInfo(CThostFtdcUserSystemInfoField *pUserSystemInfo) = 0;



 




错误应答 <<<- 

响应 <<<- 

void OnRspError(CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcRspInfoField ->>> 





 




删除接口实例 <<<- 
///删除接口对象本身
///@remark 不再使用本接口对象时,调用该函数删除接口对象
void Release() = 0;



 

1.MdApi环境初始化与账户登录相关接口说明

软件开发ctp 发表了文章 • 0 个评论 • 36 次浏览 • 2019-09-21 02:52 • 来自相关话题

创建MdApi实 ...查看全部

创建MdApi实例 <<<- 
///@param pszFlowPath 存贮订阅信息文件的目录,默认为当前目录
///@return 创建出的UserApi
///modify for udp marketdata
static CThostFtdcMdApi *CreateFtdcMdApi(const char *pszFlowPath = "", const bool bIsUsingUdp=false, const bool bIsMulticast=false);



 




注册回调接口 <<<- 
///@param pSpi 派生自回调接口类的实例
void RegisterSpi(CThostFtdcMdSpi *pSpi) = 0;



 




注册前置 <<<- 
///@param pszFrontAddress:前置机网络地址。
///@remark 网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:17001”。
///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”17001”代表服务器端口号。
void RegisterFront(char *pszFrontAddress) = 0;

///注册名字服务器网络地址
///@param pszNsAddress:名字服务器网络地址。
///@remark 网络地址的格式为:“protocol://ipaddress:port”,如:”tcp://127.0.0.1:12001”。
///@remark “tcp”代表传输协议,“127.0.0.1”代表服务器地址。”12001”代表服务器端口号。
///@remark RegisterNameServer优先于RegisterFront
void RegisterNameServer(char *pszNsAddress) = 0;

///注册名字服务器用户信息
///@param pFensUserInfo:用户信息。
void RegisterFensUserInfo(CThostFtdcFensUserInfoField * pFensUserInfo) = 0;



 




初始化运行环境 <<<- 
///@remark 只有调用后,接口才开始工作
void Init() = 0;



 




连接建立响应 <<<- 
///当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。
void OnFrontConnected() {};



 




连接异常响应 <<<- 
///当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。
///@param nReason 错误原因
/// 0x1001 网络读失败 4097
/// 0x1002 网络写失败 4098
/// 0x2001 接收心跳超时 8193
/// 0x2002 发送心跳失败 8194
/// 0x2003 收到错误报文 8195
void OnFrontDisconnected(int nReason) {};

///当长时间未收到报文时,该方法被调用。
///@param nTimeLapse 距离上次接收报文的时间
virtual void OnHeartBeatWarning(int nTimeLapse) {};



 




用户登录 <<<- 

请求 <<<- 

int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID) = 0;

响应 <<<- 

void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};;

CThostFtdcReqUserLoginField ->>> 


CThostFtdcRspUserLoginField ->>> 





 




用户登出 <<<- 

请求 <<<- 

int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int nRequestID) = 0;

响应 <<<- 

void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcUserLogoutField ->>> 





 




订阅行情 <<<- 

请求 <<<- 

///@param ppInstrumentID 合约ID  
///@param nCount 要订阅/退订行情的合约个数
int SubscribeMarketData(char *ppInstrumentID[], int nCount) = 0;

响应 <<<- 

///订阅行情应答
void OnRspSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
///深度行情通知
void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData) {};

CThostFtdcSpecificInstrumentField ->>> 


CThostFtdcDepthMarketDataField ->>> 





 




退订行情 <<<- 

请求 <<<- 

///@param ppInstrumentID 合约ID  
///@param nCount 要订阅/退订行情的合约个数
int UnSubscribeMarketData(char *ppInstrumentID[], int nCount) = 0;

响应 <<<- 

void OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};




 




订阅询价 <<<- 

请求 <<<- 

///@param ppInstrumentID 合约ID  
///@param nCount 要订阅/退订行情的合约个数
int SubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0;

响应 <<<- 

///订阅询价应答
void OnRspSubForQuoteRsp(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
///询价通知
void OnRtnForQuoteRsp(CThostFtdcForQuoteRspField *pForQuoteRsp) {};

CThostFtdcForQuoteRspField ->>> 





 




退订询价 <<<- 

请求 <<<- 

///@param ppInstrumentID 合约ID  
///@param nCount 要订阅/退订行情的合约个数
int UnSubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0;

响应 <<<- 

void OnRspUnSubForQuoteRsp(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};




 




线程等待 <<<- 
///等待接口线程结束运行
int Join() = 0;



 




获取API的版本信息 <<<- 
///@retrun 获取到的版本号
static const char *GetApiVersion();



 




获取当前交易日 <<<- 
///@retrun 获取到的交易日
///@remark 只有登录成功后,才能得到正确的交易日
virtual const char *GetTradingDay() = 0;



 




错误应答 <<<- 

响应 <<<- 

void OnRspError(CThostFtdcRspInfoField* pRspInfo, int nRequestID, bool bIsLast) {};

CThostFtdcRspInfoField ->>> 





 




删除接口实例 <<<- 
///删除接口对象本身
///@remark 不再使用本接口对象时,调用该函数删除接口对象
void Release() = 0;



 



原创文章,转载请注明出处。