SuperAPI AI Directory

ctp-api

Coding & development

View repository

Updated 10-16 03:13

About this skill

CTP 6.7.8 API Skill

CTP (Comprehensive Transaction Platform) is the most widely used trading interface in China's futures market. This skill covers the complete API documentation for CTP version 6.7.8, including the trading interface, market data interface, data structures, and error handling.

When to Use This Skill

This skill should be triggered when:

  • Use the CTP API for futures/options trading development
  • Implement market data subscription and data processing
  • Handle order submission, order cancellation, and query operations
  • Understand the CTP callback mechanism and event handling
  • Debug CTP connection, login, and trading issues
  • Query account funds, positions, and trade records

Quick Reference

Core Classes

Class Name Purpose
CThostFtdcTraderApi Main trading interface class, handles orders and queries
CThostFtdcMdApi Main market data interface class, subscribes to market data
CThostFtdcTraderSpi Trading callback interface, receives trading responses
CThostFtdcMdSpi Market data callback interface, receives market data

Common Request Methods (TraderApi)

// 登录
ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID);

// 报单
ReqOrderInsert(CThostFtdcInputOrderField *pInputOrder, int nRequestID);

// 撤单
ReqOrderAction(CThostFtdcInputOrderActionField *pInputOrderAction, int nRequestID);

// 查询持仓
ReqQryInvestorPosition(CThostFtdcQryInvestorPositionField *pQryInvestorPosition, int nRequestID);

// 查询资金
ReqQryTradingAccount(CThostFtdcQryTradingAccountField *pQryTradingAccount, int nRequestID);

Common Callback Methods (TraderSpi)

// 登录响应
OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);

// 报单回报
OnRtnOrder(CThostFtdcOrderField *pOrder);

// 成交回报
OnRtnTrade(CThostFtdcTradeField *pTrade);

// 报单错误
OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo);

Market Data Interface (MdApi)

// 订阅行情
SubscribeMarketData(char *ppInstrumentID[], int nCount);

// 行情回调
OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData);

Key Data Structures

// 报单输入
struct CThostFtdcInputOrderField {
    TThostFtdcBrokerIDType BrokerID;          // 经纪公司代码
    TThostFtdcInvestorIDType InvestorID;      // 投资者代码
    TThostFtdcInstrumentIDType InstrumentID;  // 合约代码
    TThostFtdcDirectionType Direction;         // 买卖方向
    TThostFtdcCombOffsetFlagType CombOffsetFlag; // 开平标志
    TThostFtdcVolumeType VolumeTotalOriginal; // 数量
    TThostFtdcPriceType LimitPrice;           // 限价
    // ...
};

// 深度行情
struct CThostFtdcDepthMarketDataField {
    TThostFtdcInstrumentIDType InstrumentID;  // 合约代码
    TThostFtdcPriceType LastPrice;            // 最新价
    TThostFtdcVolumeType Volume;              // 成交量
    TThostFtdcPriceType BidPrice1;            // 买一价
    TThostFtdcVolumeType BidVolume1;          // 买一量
    TThostFtdcPriceType AskPrice1;            // 卖一价
    TThostFtdcVolumeType AskVolume1;          // 卖一量
    // ...
};

Common Error Codes

Error Code Meaning
0 Success
3 Invalid login
5 User not logged in
13 Insufficient funds
14 Invalid order quantity
22 Incorrect instrument code
25 Close volume exceeds position volume
30 CTP not initialized
31 Front inactive

Reference Files

This skill includes comprehensive documentation in references/ (52 files, ~1.1MB total):

Category File Description
Getting Started getting_started_*.md Getting started guide, reading guide (3 files)
Trading Interface trader_api.md CThostFtdcTraderApi class
Market Data Interface md_api.md CThostFtdcMdApi class
Trading Callback trader_spi.md CThostFtdcTraderSpi callback
Market Data Callback md_spi.md CThostFtdcMdSpi callback
Request Methods requests_*.md Req* methods (5 files)
Callback Methods callbacks_*.md OnRsp*/OnRtn* (10 files)
Trading Features trading_*.md Trading-related (5 files)
Market Data Features market_data_*.md Market data-related (5 files)
API Reference api_reference_*.md Complete API (14 files)
Version History changelog_*.md Update log (4 files)
Regulation monitoring.md See-through regulation description

Working with This Skill

Trading Workflow

  1. Initialize: CreateFtdcTraderApi() Create API instance
  2. Register: RegisterSpi() Register callback,RegisterFront() register front address
  3. Connect: Init() Start connection, wait for OnFrontConnected() callback
  4. Authenticate: ReqAuthenticate() Client authentication (see-through regulation)
  5. Login: ReqUserLogin() User login
  6. Trade: Send order, query, and other requests
  7. Release: Release() Release resources

Market Data Workflow

  1. Initialize: CreateFtdcMdApi() Create market data API
  2. Register: Register Spi and front address
  3. Connect: Init() Start, wait for OnFrontConnected()
  4. Login: ReqUserLogin() Log in to market data server
  5. Subscribe: SubscribeMarketData() Subscribe to contract market data
  6. Receive: via OnRtnDepthMarketData() receive market data push

Notes

  • All requests are asynchronous and return results via callbacks
  • Each request requires a unique RequestID
  • Penetration-style client authentication must be completed before logging in
  • Rate limit: at most 1-2 requests per second
  • Be careful to handle disconnection and reconnection logic

Source

  • PDF: CTP 6.7.8 API interface description
  • Pages: 2466
  • Version: 6.7.8
  • Date: 2024-12

Notes

  • This skill is automatically extracted from the official PDF documentation
  • Contains complete API methods, callbacks, and data structures
  • Code examples are in C++ style; Python binding method names are the same
  • For details, please refer to the categorized documentation under the references/ directory