mcpField
C
ctp-api

ctp-api

github.com/algoderiv開発5949 回インストール33 週間前に更新
リポジトリ

ctp-api について

ctp-apiは、先物・オプション取引やマーケットデータのアプリ開発者向けのCTP 6.7.8リファレンススキルです。API、コールバック、データ構造、処理手順、エラー対応を分類して解説します。

主な機能

  1. 01取引・マーケットデータAPIのリファレンス
  2. 02リクエストとコールバックのドキュメント
  3. 03データ構造とエラーコードのガイド
  4. 04接続とログインの手順
  5. 05カテゴリ別のリファレンスファイル52件

活用シーン

  1. 01先物またはオプションの注文処理を実装
  2. 02マーケットデータを購読して処理
  3. 03非同期CTPコールバックを処理
  4. 04接続、ログイン、取引の問題を調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/algoderiv/agent-skills --skill ctp-api

インストール後、Claude Code で/ctp-apiを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api_reference_part1_aa.md
api_reference_part1_ab.md
api_reference_part1_b.md
api_reference_part2_aa.md
api_reference_part2_ab.md
api_reference_part2_b.md
api_reference_part3_aa.md
api_reference_part3_ab.md
api_reference_part3_ac.md
api_reference_part3_b.md
api_reference_part4_a.md
api_reference_part4_b.md
api_reference_part4_c.md
callbacks_part1_aa.md
callbacks_part1_ab.md
callbacks_part1_b.md
callbacks_part2_aa.md
callbacks_part2_ab.md
callbacks_part2_b.md
callbacks_part3_aa.md
callbacks_part3_ab.md
callbacks_part3_b.md
callbacks_part4_a.md
callbacks_part4_b.md
changelog_part1_aa.md
changelog_part1_ab.md
changelog_part1_b.md
changelog_part2.md
getting_started_aa.md
getting_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決済数量がポジション数量を超えています
30CTPが初期化されていません
31フロントがアクティブではありません

リファレンスファイル

このスキルには、references/ に包括的なドキュメントが含まれています(52 ファイル、合計約 1.1 MB)。

カテゴリファイル説明
入門getting_started_*.md入門ガイド、読み進め方(3 files)
取引インターフェースtrader_api.mdCThostFtdcTraderApi クラス
マーケットデータインターフェースmd_api.mdCThostFtdcMdApi クラス
取引コールバックtrader_spi.mdCThostFtdcTraderSpi コールバック
マーケットデータコールバックmd_spi.mdCThostFtdcMdSpi コールバック
リクエストメソッドrequests_*.mdReq* メソッド(5 files)
コールバックメソッドcallbacks_*.mdOnRsp*/OnRtn*(10 files)
取引機能trading_*.md取引関連(5 files)
マーケットデータ機能market_data_*.mdマーケットデータ関連(5 files)
API リファレンスapi_reference_*.mdAPI 全般(14 files)
バージョン履歴changelog_*.md更新履歴(4 files)
監督monitoring.md透過型監督に関する説明

このスキルの使い方

取引の流れ
  1. 初期化:CreateFtdcTraderApi() で API インスタンスを作成します
  2. 登録:RegisterSpi() でコールバックを登録し、RegisterFront() でフロントアドレスを登録します
  3. 接続:Init() で接続を開始し、OnFrontConnected() コールバックを待ちます
  4. 認証:ReqAuthenticate() でクライアント認証を行います(透過型監督)
  5. ログイン:ReqUserLogin() でユーザーログインを行います
  6. 取引:注文や照会などのリクエストを送信します
  7. 解放:Release() でリソースを解放します
マーケットデータの流れ
  1. 初期化:CreateFtdcMdApi() でマーケットデータ API を作成します
  2. 登録:Spi とフロントアドレスを登録します
  3. 接続:Init() で開始し、OnFrontConnected() を待ちます
  4. ログイン:ReqUserLogin() でマーケットデータサーバーにログインします
  5. 購読:SubscribeMarketData() で契約のマーケットデータを購読します
  6. 受信:OnRtnDepthMarketData() を通じてマーケットデータの配信を受信します
注意事項
  • すべてのリクエストは非同期で、結果はコールバックを通じて返されます
  • リクエストごとに一意の RequestID が必要です
  • ログイン前に、透過型監督のクライアント認証を完了する必要があります
  • フロー制御の制限により、リクエストは毎秒最大 1~2 件です
  • 切断後の再接続処理に注意してください

ソース

  • PDF:CTP 6.7.8 API インターフェース仕様
  • ページ数:2466
  • バージョン:6.7.8
  • 日付:2024-12

注記

  • このスキルは、公式 PDF ドキュメントから自動抽出したものです
  • API メソッド、コールバック、データ構造をすべて含みます
  • コード例は C++ 形式です。Python バインディングでもメソッド名は同じです
  • 詳細については、references/ ディレクトリ内のカテゴリ別ドキュメントを参照してください

コメント