C++做程序化交易的API接口

C++语言 码拜 8年前 (2016-05-02) 3350次浏览
上期所提供的4个文件thostftdcmdapi.h,thostftdctraderapi.h,thostftdcuserapidatatype.h,thostftdcuserapistruct.h要怎么用啊
解决方案

200

一般是通过继承CThostFtdcTraderSpi类,然后重载他提供的虚函数来实现。
这是头文件,然后在对应的CPP文件里面实现
#ifndef TRADERSPI_H
#define TRADERSPI_H
#include “ThostFtdcTraderApi.h”
class CtpTraderSpi : public CThostFtdcTraderSpi
{
public:
CtpTraderSpi(CThostFtdcTraderApi* api);
///当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。
virtual void OnFrontConnected();
///客户端认证响应
virtual void OnRspAuthenticate(CThostFtdcRspAuthenticateField *pRspAuthenticateField, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///登录请求响应
virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
//virtual void OnRspQryInvestorPositionDetail(CThostFtdcInvestorPositionDetailField *pInvestorPositionDetail, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///登出请求响应
//virtual void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///请求查询行情响应
//virtual void OnRspQryDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
///请求查询投资者结算结果响应
virtual void OnRspQrySettlementInfo(CThostFtdcSettlementInfoField *pSettlementInfo, 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);
public:
///客户端认证请求
//virtual int ReqAuthenticate(CThostFtdcReqAuthenticateField *pReqAuthenticateField, int nRequestID) = 0;
///用户登录请求
void ReqUserLogin(TThostFtdcBrokerIDType appId,
TThostFtdcUserIDType userId,
TThostFtdcPasswordType passwd);
//int ReqQryInvestorPositionDetail(CThostFtdcQryInvestorPositionDetailField *pQryInvestorPositionDetail, int nRequestID);
///请求查询投资者结算结果
void ReqQrySettlementInfo();
///投资者结算结果确认
void ReqSettlementInfoConfirm();
///请求查询合约
void ReqQryInstrument(QString &instrument_id);
///请求查询资金账户
void ReqQryTradingAccount();
///请求查询投资者持仓
void ReqQryInvestorPosition(TThostFtdcInstrumentIDType instId, int account_index);
///报单录入请求
void ReqOrderInsert(TThostFtdcInstrumentIDType instId,
TThostFtdcDirectionType dir,
TThostFtdcCombOffsetFlagType kpp,
TThostFtdcPriceType price,
TThostFtdcVolumeType vol);
void ReqOrderInsert(Packet *packet);
//void ReqOrderInsert(VWAPPacket *vwap_packet);
///报单操作请求
//void ReqOrderAction(TThostFtdcSequenceNoType orderSeq);
//int ReqOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction);
void ReqOrderAction(int account_index, int order_ref, QString instrument_id);
void ReqOrderAction(int account_index, int order_ref, QString instrument_id,
int front_id, int session_id);
///请求查询行情
//virtual int ReqQryDepthMarketData(CThostFtdcQryDepthMarketDataField *pQryDepthMarketData, int nRequestID);
// 能否收到成功的响应
bool IsErrorRspInfo(CThostFtdcRspInfoField *pRspInfo);
private:
//CThostFtdcTraderApi* pUserApi;
public:
CThostFtdcTraderApi *pTraderApi;
};
#endif // TRADERSPI_H

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++做程序化交易的API接口
喜欢 (1)
[1034331897@qq.com]
分享 (0)