ccxt について
ccxt を使う開発者向けのドキュメントベースのスキルです。API の質問への回答、実装、デバッグ、推奨プラクティスの確認を支援します。
主な機能
- 01ccxt API の案内
- 02実装の支援
- 03デバッグの案内
- 04推奨プラクティスの参照
活用シーン
- 01ccxt の注文メソッドの確認
- 02取引所 API 呼び出しの調査
- 03ccxt 実装の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ 2025emma/ vibe-coding-cn --skill ccxtインストール後、Claude Code で/ccxtを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/cli.mdexchanges.mdfaq.mdgetting_started.mdindex.mdmanual.mdother.mdpro.mdspecification.md詳細
Ccxt スキル
公式ドキュメントから生成された、ccxt の開発を包括的に支援するスキルです。
このスキルを使用する場面
次の場合に、このスキルを使用してください。
- ccxt を使用するとき
- ccxt の機能や API について質問するとき
- ccxt を使用したソリューションを実装するとき
- ccxt のコードをデバッグするとき
- ccxt のベストプラクティスを学ぶとき
クイックリファレンス
よく使われるパターン
パターン 1: よくある質問 コードを実行しようとしていますが、動きません。どうすれば直せますか? 上記のように短く書かれた質問には、対応できません。プログラミングを教えることはありません。マニュアルを読んで理解できない場合や、問題の報告方法について CONTRIBUTING ドキュメントに記載されたガイドに正確に従えない場合も、対応できません。問題の報告方法について CONTRIBUTING ガイドを読み、マニュアルを読んでください。マニュアル全体を非常に注意深く読まずに、誰かの時間やお金を危険にさらすべきではありません。詳細が大量にある文章を読むことに慣れていない場合は、何も危険にさらすべきではありません。また、使用しているプログラミング言語に自信がない場合は、プログラミングの基礎や練習に最適な場所がほかにあります。Python のチュートリアルや JS の動画を探し、サンプルを試してみてください。ほかの人たちはこうして学習曲線を上っていきます。何かを学びたいなら、近道はありません。サポートを受けるには何が必要ですか? 質問するときは、まず検索ボタンで重複する質問がないか確認してください。リクエストとレスポンスを詳細モードで投稿してください。問題が起きている行の直前に exchange.verbose = true を追加し、画面に表示された内容をコピーして貼り付けてください。これは「トラブルシューティング」セクションや README、過去のイシューやプルリクエストにある類似の質問への回答など、あらゆる場所に記載されています。言い訳はできません。詳細出力には、exchange からのリクエストとレスポンスの両方を含めてください。エラーのコールスタック全体を含めてください。プログラミング言語とそのバージョン番号を書いてください。CCXT / CCXT Pro ライブラリのバージョン番号を書いてください。どの exchange かを書いてください。呼び出そうとしているメソッドを書いてください。問題を再現するコードを投稿してください。完全で短く、実行可能なプログラムにしてください。コードは省略せず、できるだけ簡潔に(5~10 行のコードに)まとめ、exchange のインスタンス化コードも含めてください。無関係な部分をすべて取り除き、問題を再現するために必要な要点だけを残してください。コードやエラーのスクリーンショットを投稿しないでください。出力とコードをプレーンテキストで投稿してください。コードと出力は、トリプルバッククォートで囲んでください。GOOD バッククォート記号()と引用符記号(')を混同しないでください。'''BAD''' 単一のバッククォートとトリプルバッククォートを混同しないでください。BAD apiKey と secret は投稿しないでください。安全に保管し、投稿前に削除してください。メソッドを呼び出すとエラーになります。何が間違っていますか? 問題の報告方法が適切ではありません。コミュニティがあなたをサポートできるよう、ご協力ください。こちらを読んで、手順に従ってください:https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-submit-an-issue。改めてお伝えしますが、問題を再現するコードと詳細なリクエストおよびレスポンスは必須です。エラーのトレースバックだけ、レスポンスだけ、リクエストだけ、コードだけでは不十分です。メソッドの呼び出しで正しくない結果が返ってきました。助けてもらえますか? 基本的には、前の質問と同じ回答です。こちらを読んで、正確に従ってください:https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-submit-an-issue。改めてお伝えしますが、問題を再現するコードと詳細なリクエストおよびレスポンスは必須です。エラーのトレースバックだけ、レスポンスだけ、リクエストだけ、コードだけでは不十分です。exchange bar に機能 foo を実装してもらえますか? はい、できます。ほかの人が先に実装しなければ、実装します。この種の質問をする意味はほとんどありません。答えは常に肯定だからです。これやあれができるかと聞かれた場合、私たちの能力について尋ねているのではありません。結局のところ、蓄積されたすべての機能リクエストを実装するために必要な時間と管理の問題なのです。さらに、これは開発が進行中のオープンソースライブラリです。つまり、このプロジェクトは、利用者であるコミュニティによって開発されることを意図しています。あなたが尋ねているのは、実装できるかどうかではありません。実際には、特定の作業に取り掛かるよう求めているのです。私たちは、自発的な協力とはそのようなものではないと考えています。貢献、PR、コミットを歓迎します:https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code。無償のオープンソース作業について、約束や見積もりはしません。作業を早めたい場合は、[email protected] までお気軽にお問い合わせください。exchange bar に機能 foo を追加するのはいつですか? 完了までの見込みはどれくらいですか? いつ頃を予定していますか? オープンソースの作業について、約束や見積もりはしません。その理由は前の段落で説明したとおりです。イシューでリクエストされた exchange のサポートはいつ追加されますか? 前述の理由により、これやあれの exchange を追加する日付を約束することはできません。答えはいつも同じです。できるだけ早くです。機能が追加されるまで、どのくらい待てばよいですか? 自分で実装するか、CCXT Dev Team が実装してくれるのを待つか、決める必要があります。ご自身で実装してください。私たちを待たないでください。できるだけ早く追加します。また、貢献も大歓迎です:https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code。以前リクエストした機能 foo の実装はどこまで進んでいますか? exchange bar の実装はどう進めていますか? この種の質問は、たいてい時間の無駄です。回答には通常、コンテキストの切り替えにかなりの時間がかかり、新しい機能や exchange のコードでリクエストに応えるより、質問に回答するほうが時間がかかることもよくあります。このオープンソースプロジェクトの進捗状況も公開されています。状況が気になったら、コミット履歴を確認してください。この PR の状況はどうですか? 何か進展はありますか? マージされていない場合、まず修正すべきエラーが PR に含まれているということです。そのままマージできるのであれば、すでにマージしているため、そもそもこの質問をする必要はなかったでしょう。PR がマージされない最も一般的な理由は、CONTRIBUTING のガイドラインに違反していることです。PR を迅速にマージしてもらいたいなら、これらのガイドラインを文字どおりに受け取り、1 行も 1 語も飛ばさずに従ってください。ガイドラインに違反しないコードの貢献は、ほぼすぐに(通常は数時間以内に)マージされます。master ブランチにマージしてもらうには、どこを修正すべきか、PR のどこを編集すべきか教えてもらえますか? 残念ながら、マージを妨げているコード上のエラーを一つひとつすぐに列挙する時間が、いつもあるとは限りません。何をどう修正すべきか説明するより、実際に修正してしまうほうが簡単で速い場合がよくあります。エラーの多くは、すでに CONTRIBUTING のガイドラインに記載されています。基本的な目安は、すべてのガイドラインに文字どおり従うことです。こんにちは! アップロードしてくれた修正は TypeScript です。JavaScript / Python / PHP も修正してもらえますか? 私たちのビルドシステムは、exchange 固有の JavaScript、Python、PHP コードを自動生成します。そのため、TypeScript からトランスパイルされ、言語ごとに個別に修正する必要はありません。つまり、TypeScript で修正されれば、JavaScript NPM、Python pip、PHP Composer でも修正済みとなります。自動ビルドは通常 15~20 分かかります。新しいバージョンが公開されたら、npm、pip、composer でバージョンをアップグレードすれば問題ありません。詳細はこちら:https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#multilanguage-support https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#transpiled-generated-files takeProfit+stopLoss 付きの注文を作成するにはどうすればよいですか? 一部の exchange は、追加の「attached」stopLoss および takeProfit サブ注文を指定した createOrder に対応しています。「ポジションに付随する StopLoss および TakeProfit 注文」を参照してください。ただし、この機能に対応していない exchange もあります。その場合は、別個の createOrder メソッドを実行して、すでに開いているポジションに条件付き注文(例:*トリガー注文 | stoploss 注文 | takeprofit 注文)を追加する必要があります。[条件付き注文](Manual.md#Conditional Orders)を参照してください。exchange.has['createOrderWithTakeProfitAndStopLoss']、exchange.has['createStopLossOrder']、exchange.has['createTakeProfitOrder'] を確認することもできますが、.features プロパティほど正確ではありません。コストを指定した現物の成行買い注文を作成するにはどうすればよいですか? コストを指定した成行買い注文を作成するには、まず exchange がその機能に対応しているか(exchange.has['createMarketBuyOrderWithCost'])を確認する必要があります。対応している場合は、createMarketBuyOrderWithCost メソッドを使用できます。例:order = await exchange.createMarketBuyOrderWithCost(symbol, cost) createMarketBuyRequiresPrice オプションは何を意味しますか? 多くの exchange では、現物の成行買い注文を出す際、数量をクオート通貨で指定する必要があります(ベース数量は受け付けません)。このような場合、exchange の createMarketBuyRequiresPrice オプションは true に設定されています。例:BTC/USDT を成行買い注文で購入する場合、0.000X ではなく、数量 = 5 USDT を指定する必要があります。ユーザーは通常、ベース通貨で数量を指定するため、価格を明示的に必須とする exchange ではエラーを防ぐチェックを行っています。そのためデフォルトでは、create_order(symbol, 'market,' 'buy,' 10) を実行すると、exchange にそのオプションが設定されている場合、エラーが発生します(成行買い注文で合計支出額(amount * price)を計算するには、createOrder() に価格引数が必要です。代わりに、createMarketBuyOrderRequiresPrice オプションまたはパラメーターを false に設定してください……)。exchange がコストを要求し、ユーザーがベース数量を指定した場合、追加の price パラメーターを要求し、それらを掛け合わせてコストを算出する必要があります。この動作を理解している場合は、createMarketBuyOrderRequiresPrice を無効にして、amount パラメーターにコストを渡すことができます。ただし、これを無効にしても、クオート通貨の代わりにベース数量を使って注文できるわけではありません。create_order(symbol, 'market', 'buy', 0.001, 20000) を実行すると、ccxt は必須の価格を使って 0.01*20000 を計算し、その値を exchange に送信します。amount 引数にコストを直接指定したい場合は、exchange.options['createMarketBuyOrderRequiresPrice'] = False を設定し(amount が成行買いのコストになることを了承したものとみなされます)、create_order(symbol, 'market', 'buy', 10) を実行できます。これは基本的に、ユーザーが create_order('SHIB/USDT', market, buy, 1000000) を実行して、SHIB を 1kk 購入しようとしていると思ったのに、実際には 1kk USDT 分の SHIB を買ってしまうことを防ぐためのものです。そのため、ccxt はデフォルトで、amount パラメーターに常にベース通貨を受け付けます。また、createMarketBuyOrderWithCost / createMarketSellOrderWithCost 関数が利用可能であれば、それを使用することもできます。詳細はこちら:成行買い 現物取引とスワップ/無期限先物の違いは何ですか? 現物取引では、金融商品(暗号資産など)を即時受け渡しで売買します。資産を直接交換する、分かりやすい取引です。一方、スワップ取引では、原資産に基づいて将来の特定の日付に 2 者間で金融商品またはキャッシュフローを交換するデリバティブ契約を扱います。スワップは、レバレッジ、投機、ヘッジによく利用され、契約が満了するまで原資産を交換する必要はありません。また、スワップを取引する場合はベース通貨(例:BTC)を直接取引するのではなく、コントラクトを扱うことになります。そのため、amount = 1 で注文を作成すると、BTC での数量は contractSize によって変わります。次のようにしてコントラクトサイズを確認できます:await exchange.loadMarkets() symbol = 'XRP/USDT:USDT' market = exchange.market(symbol) print(market['contractSize']) reduceOnly 注文を出すにはどうすればよいですか? reduceOnly 注文は、ポジションを増やすのではなく、減らすことだけができる注文です。reduceOnly 注文を出すには、通常、reduceOnly パラメーターを true に設定して createOrder メソッドを使用します。これにより、注文は未決済ポジションのサイズを減らす場合にのみ約定し、実行するとポジションサイズが増える場合は、一部約定するか、まったく約定しません。Javascript const params = { 'reduceOnly': true, // true にするとポジションを決済し、false にすると新しいポジションを開きます } const order = await exchange.createOrder (symbol, type, side, amount, price, params) Python params = { 'reduceOnly': True, # true にするとポジションを決済し、false にすると新しいポジションを開きます } order = exchange.create_order (symbol, type, side, amount, price, params) PHP $params = { 'reduceOnly': true, // true にするとポジションを決済し、false にすると新しいポジションを開きます } $order = $exchange->create_order ($symbol, $type, $side, $amount, $price, $params); 詳細はこちら:トレーリング注文 統合メソッドが使用するエンドポイントを確認するにはどうすればよいですか? CCXT ライブラリの統合メソッドが使用するエンドポイントを確認するには、通常、対象となる exchange の実装について、ライブラリのソースコードを参照する必要があります。CCXT の統合メソッドは、やり取りする特定のエンドポイントの詳細を抽象化しているため、この情報はライブラリの API から直接は公開されていません。詳しく調べるには、GitHub 上の CCXT ライブラリのソースコードで、該当する exchange のメソッド実装を確認してください。詳細はこちら:統合 API funding rate 構造内の previousFundingRate、fundingRate、nextFundingRate の違いを見分けるにはどうすればよいですか? funding rate 構造には、返される funding rate の値が 3 種類あります。previousFundingRate は、直近で完了したレートを指します。fundingRate は、次回のレートです。この値は funding time が過ぎるまで変化し続け、その後 previousFundingRate になります。nextFundingRate は一部の exchange のみが対応しており、次回のレートの後に予測される funding rate です。この値は、現在から 2 回先の funding rate にあたります。例として、現在が 12:30 だとします。previousFundingRate は 12:00 に発生したもので、次回の funding rate を確認するには fundingRate の値を見ます。この例で 4 時間間隔の場合、fundingRate は将来の 4:00 に発生し、nextFundingRate は 8:00 に発生すると予測されるレートです。
python tutorials
パターン 2: コストを指定して成行買い注文を作成するには、まず取引所がその機能をサポートしているか(exchange.has['createMarketBuyOrderWithCost'])確認する必要があります。サポートしている場合は、createMarketBuyOrderWithCost` メソッドを使用できます。例:
exchange.has['createMarketBuyOrderWithCost']). If it does, then you can use the
パターン 3: 例:BTC/USDT を成行買い注文で購入する場合、0.000X ではなく、amount = 5 USDT を指定する必要があります。ユーザーは通常、基軸通貨で金額を指定するため、価格の指定を明示的に求めることでエラーを防ぐチェックを設けています。
create_order(symbol, 'market,' 'buy,' 10)
パターン 4: すべての取引所とそれらがサポートするメソッドの完全な一覧については、次の例を参照してください:https://github.com/ccxt/ccxt/blob/master/examples/js/exchange-capabilities.js
exchange.rateLimit
パターン 5: ccxt ライブラリは、async/await 構文を使用した Python 3.5 以降の非同期並行処理モードをサポートしています。非同期 Python バージョンでは、aiohttp を使用した純粋な asyncio を利用します。非同期モードでも同じプロパティとメソッドをすべて使用できますが、ほとんどのメソッドには async キーワードが付いています。非同期モードを使用する場合は、次の例のように ccxt.async_support サブパッケージをリンクしてください。
ccxt.async_support
参考ファイル
このスキルには、references/ に包括的なドキュメントが含まれています。
- cli.md - CLI のドキュメント
- exchanges.md - 取引所のドキュメント
- faq.md - よくある質問のドキュメント
- getting_started.md - 入門ドキュメント
- manual.md - マニュアルのドキュメント
- other.md - その他のドキュメント
- pro.md - Pro のドキュメント
- specification.md - 仕様のドキュメント
詳細な情報が必要な場合は、view を使用して特定の参考ファイルを読んでください。
このスキルの使用方法
初心者向け
基本概念を学ぶには、getting_started または tutorials の参考ファイルから始めてください。
特定の機能について
詳細な情報については、適切なカテゴリの参考ファイル(api、guides など)を使用してください。
コード例について
上記のクイックリファレンスセクションには、公式ドキュメントから抜粋した一般的なパターンが含まれています。
リソース
references/
公式ソースから抽出したドキュメントを整理しています。これらのファイルには、次の内容が含まれています。
- 詳細な説明
- 言語アノテーション付きのコード例
- 元のドキュメントへのリンク
- すばやく移動できる目次
scripts/
一般的な自動化タスク用のヘルパースクリプトをここに追加してください。
assets/
テンプレート、ひな形、またはサンプルプロジェクトをここに追加してください。
注意事項
- このスキルは公式ドキュメントから自動生成されました
- 参考ファイルでは、ソースドキュメントの構造と例が維持されています
- コード例には、シンタックスハイライトを向上させるための言語検出が含まれています
- クイックリファレンスのパターンは、ドキュメント内の一般的な使用例から抜粋されています
更新
更新されたドキュメントでこのスキルを更新するには:
- 同じ設定でスクレイパーを再実行します
- 最新情報を使ってスキルが再構築されます