ctp-api について
ctp-apiは、先物・オプション取引やマーケットデータのアプリ開発者向けのCTP 6.7.8リファレンススキルです。API、コールバック、データ構造、処理手順、エラー対応を分類して解説します。
主な機能
- 01取引・マーケットデータAPIのリファレンス
- 02リクエストとコールバックのドキュメント
- 03データ構造とエラーコードのガイド
- 04接続とログインの手順
- 05カテゴリ別のリファレンスファイル52件
活用シーン
- 01先物またはオプションの注文処理を実装
- 02マーケットデータを購読して処理
- 03非同期CTPコールバックを処理
- 04接続、ログイン、取引の問題を調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ algoderiv/ agent-skills --skill ctp-apiインストール後、Claude Code で/ctp-apiを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api_reference_part1_aa.mdapi_reference_part1_ab.mdapi_reference_part1_b.mdapi_reference_part2_aa.mdapi_reference_part2_ab.mdapi_reference_part2_b.mdapi_reference_part3_aa.mdapi_reference_part3_ab.mdapi_reference_part3_ac.mdapi_reference_part3_b.mdapi_reference_part4_a.mdapi_reference_part4_b.mdapi_reference_part4_c.mdcallbacks_part1_aa.mdcallbacks_part1_ab.mdcallbacks_part1_b.mdcallbacks_part2_aa.mdcallbacks_part2_ab.mdcallbacks_part2_b.mdcallbacks_part3_aa.mdcallbacks_part3_ab.mdcallbacks_part3_b.mdcallbacks_part4_a.mdcallbacks_part4_b.mdchangelog_part1_aa.mdchangelog_part1_ab.mdchangelog_part1_b.mdchangelog_part2.mdgetting_started_aa.mdgetting_started_ab.md詳細
CTP 6.7.8 API スキル
CTP(総合取引プラットフォーム)は、中国の先物市場で最も広く使用されている取引インターフェースです。このスキルでは、取引インターフェース、マーケットデータインターフェース、データ構造、エラー処理など、CTP 6.7.8 の完全な API ドキュメントを扱います。
このスキルを使用する場面
このスキルは、次の場合に利用してください。
- CTP API を使用した先物/オプション取引の開発
- マーケットデータの購読とデータ処理の実装
- 注文の送信、取消、照会の処理
- CTP のコールバック機構とイベント処理の理解
- CTP の接続、ログイン、取引に関する問題のデバッグ
- 口座資金、ポジション、約定記録の照会
クイックリファレンス
コアクラス
| クラス名 | 用途 |
|---|---|
CThostFtdcTraderApi | 取引インターフェースのメインクラス。注文や照会を処理します |
CThostFtdcMdApi | マーケットデータインターフェースのメインクラス。市場データを購読します |
CThostFtdcTraderSpi | 取引コールバックインターフェース。取引応答を受信します |
CThostFtdcMdSpi | マーケットデータコールバックインターフェース。マーケットデータを受信します |
よく使用するリクエストメソッド(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);
よく使用するコールバックメソッド(TraderSpi)
// 登录响应
OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast);
// 报单回报
OnRtnOrder(CThostFtdcOrderField *pOrder);
// 成交回报
OnRtnTrade(CThostFtdcTradeField *pTrade);
// 报单错误
OnErrRtnOrderInsert(CThostFtdcInputOrderField *pInputOrder, CThostFtdcRspInfoField *pRspInfo);
マーケットデータインターフェース(MdApi)
// 订阅行情
SubscribeMarketData(char *ppInstrumentID[], int nCount);
// 行情回调
OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData);
主要なデータ構造
// 报单输入
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; // 卖一量
// ...
};
よくあるエラーコード
| エラーコード | 意味 |
|---|---|
| 0 | 成功 |
| 3 | 無効なログイン |
| 5 | ユーザーがログインしていません |
| 13 | 資金不足 |
| 14 | 注文数量が無効です |
| 22 | 契約コードが誤っています |
| 25 | 決済数量がポジション数量を超えています |
| 30 | CTPが初期化されていません |
| 31 | フロントがアクティブではありません |
リファレンスファイル
このスキルには、references/ に包括的なドキュメントが含まれています(52 ファイル、合計約 1.1 MB)。
| カテゴリ | ファイル | 説明 |
|---|---|---|
| 入門 | getting_started_*.md | 入門ガイド、読み進め方(3 files) |
| 取引インターフェース | trader_api.md | CThostFtdcTraderApi クラス |
| マーケットデータインターフェース | md_api.md | CThostFtdcMdApi クラス |
| 取引コールバック | trader_spi.md | CThostFtdcTraderSpi コールバック |
| マーケットデータコールバック | md_spi.md | CThostFtdcMdSpi コールバック |
| リクエストメソッド | requests_*.md | Req* メソッド(5 files) |
| コールバックメソッド | callbacks_*.md | OnRsp*/OnRtn*(10 files) |
| 取引機能 | trading_*.md | 取引関連(5 files) |
| マーケットデータ機能 | market_data_*.md | マーケットデータ関連(5 files) |
| API リファレンス | api_reference_*.md | API 全般(14 files) |
| バージョン履歴 | changelog_*.md | 更新履歴(4 files) |
| 監督 | monitoring.md | 透過型監督に関する説明 |
このスキルの使い方
取引の流れ
- 初期化:
CreateFtdcTraderApi()で API インスタンスを作成します - 登録:
RegisterSpi()でコールバックを登録し、RegisterFront()でフロントアドレスを登録します - 接続:
Init()で接続を開始し、OnFrontConnected()コールバックを待ちます - 認証:
ReqAuthenticate()でクライアント認証を行います(透過型監督) - ログイン:
ReqUserLogin()でユーザーログインを行います - 取引:注文や照会などのリクエストを送信します
- 解放:
Release()でリソースを解放します
マーケットデータの流れ
- 初期化:
CreateFtdcMdApi()でマーケットデータ API を作成します - 登録:Spi とフロントアドレスを登録します
- 接続:
Init()で開始し、OnFrontConnected()を待ちます - ログイン:
ReqUserLogin()でマーケットデータサーバーにログインします - 購読:
SubscribeMarketData()で契約のマーケットデータを購読します - 受信:
OnRtnDepthMarketData()を通じてマーケットデータの配信を受信します
注意事項
- すべてのリクエストは非同期で、結果はコールバックを通じて返されます
- リクエストごとに一意の RequestID が必要です
- ログイン前に、透過型監督のクライアント認証を完了する必要があります
- フロー制御の制限により、リクエストは毎秒最大 1~2 件です
- 切断後の再接続処理に注意してください
ソース
- PDF:CTP 6.7.8 API インターフェース仕様
- ページ数:2466
- バージョン:6.7.8
- 日付:2024-12
注記
- このスキルは、公式 PDF ドキュメントから自動抽出したものです
- API メソッド、コールバック、データ構造をすべて含みます
- コード例は C++ 形式です。Python バインディングでもメソッド名は同じです
- 詳細については、references/ ディレクトリ内のカテゴリ別ドキュメントを参照してください
コメント
Markdown 対応