ccxt by 2025emma/vibe-coding-cn
npx skills add https://github.com/2025emma/vibe-coding-cn --skill ccxt提供关于 ccxt 开发的全面协助,内容源自官方文档。
在以下情况应触发此技能:
模式 1: 常见问题
我正在尝试运行代码,但它不工作,我该如何修复?
如果你的问题像上面那样简短地表述,我们不会提供帮助。我们不教授编程。如果你无法阅读和理解手册,或者你不能严格按照 CONTRIBUTING 文档中的指南来报告问题,我们也不会提供帮助。请阅读 CONTRIBUTING 指南了解如何报告问题,并阅读手册。在没有非常仔细地阅读完整本手册之前,你不应该拿任何人的金钱和时间冒险。如果你不习惯阅读大量包含海量细节的内容,你就不应该冒险。此外,如果你对自己使用的编程语言没有信心,那么有更适合学习编程基础和练习的地方。搜索 python 教程、js 视频,尝试运行示例,这就是其他人攀登学习曲线的方式。如果你想学习,没有捷径。
获得帮助需要什么?
提问时:
首先使用搜索按钮查找重复问题!
以详细模式发布你的请求和响应!
在你遇到问题的代码行之前添加 exchange.verbose = true,并复制粘贴你在屏幕上看到的内容。这在故障排除部分、README 以及之前问题和拉取请求中许多类似问题的答案中都有提及。没有借口。
详细输出应包含来自交易所的请求和响应。
包含完整的错误调用堆栈!
写下你的编程语言和语言版本号
写下 CCXT / CCXT Pro 库版本号
是哪个交易所
你正在尝试调用哪个方法
发布你的代码以重现问题。使其成为一个完整的简短可运行程序,不要省略代码行,并尽可能使其紧凑(5-10 行代码),包括交易所实例化代码。移除其中所有不相关的部分,只留下重现问题所需的核心代码。
不要发布代码或错误的截图,以纯文本形式发布输出和代码!
用三个反引号包围代码和输出: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。 再次强调,重现问题的代码以及你的详细请求和响应是必需的。仅仅错误跟踪、或仅仅响应、或仅仅请求、或仅仅代码——是不够的! 你能在交易所 bar 中实现功能 foo 吗? 是的,我们可以。如果在我们之前没有其他人做的话,我们会的。问这类问题意义不大,因为答案总是肯定的。当有人问我们是否能做这个或那个时,问题不在于我们的能力,一切都归结为实现所有累积功能请求所需的时间和管理。此外,这是一个正在开发中的开源库。这意味着,这个项目旨在由使用它的用户社区来开发。你问的不是我们能否实现它,实际上你是在告诉我们去完成那个特定的任务,这不是我们看待自愿协作的方式。欢迎你的贡献、PR 和提交:https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code。 我们不对免费的开源工作做出承诺或估计。如果你希望加快进度,请随时通过 info@ccxt.trade 联系我们。 你们什么时候会为交易所 bar 添加功能 foo?预计时间是多少?我们应该什么时候期待这个? 我们不对开源工作做出承诺或估计。其背后的原因在上段已解释。 你们什么时候会添加 Issues 中请求的交易所支持? 同样,由于上述原因,我们无法承诺添加这个或那个交易所的日期。答案将始终相同:尽快。 我应该等待一个功能被添加多久?我需要决定是自己实现还是等待 CCXT 开发团队为我实现。 请自己动手实现,不要等我们。我们会尽快添加它。同时,非常欢迎你的贡献:https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code 你们在添加之前请求的功能 foo 方面进展如何?你们在实现交易所 bar 方面做得怎么样了? 这类问题通常是浪费时间,因为回答它通常需要太多时间进行上下文切换,而且回答这个问题通常比实际用代码满足一个新功能或新交易所的请求花费更多时间。这个开源项目的进展也是开放的,所以,每当你想知道进展如何时,请查看提交历史。 这个 PR 的状态是什么?有更新吗? 如果它没有被合并,意味着 PR 包含错误,需要先修复。如果它可以按原样合并——我们会合并它,你一开始就不会问这个问题。不合并 PR 的最常见原因是违反了任何 CONTRIBUTING 指南。这些指南应该被字面理解,如果你想你的 PR 被快速合并,就不能跳过其中的任何一行或一个词。不违反指南的代码贡献几乎会立即被合并(通常在几小时内)。 你能指出错误或我应该在我的 PR 中编辑什么才能将其合并到 master 分支吗? 不幸的是,我们并不总是有时间快速列出代码中阻止其合并的每一个错误。通常,直接去修复错误比解释应该做什么来修复它更容易、更快。其中大部分已经在 CONTRIBUTING 指南中概述了。主要的经验法则是字面遵循所有指南。 嘿!你上传的修复是 TypeScript 的,你能也修复 JavaScript / Python / PHP 吗? 我们的构建系统自动为我们生成特定于交易所的 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 如何创建带有止盈+止损的订单? 一些交易所支持带有附加的止损和止盈子订单的 createOrder - 查看附加到仓位的止损和止盈订单。然而,一些交易所可能不支持该功能,你将需要运行单独的 createOrder 方法来向已开仓位添加条件订单(例如,*触发订单 | 止损订单 | 止盈订单)- 查看条件订单。你也可以通过查看 exchange.has['createOrderWithTakeProfitAndStopLoss']、exchange.has['createStopLossOrder'] 和 exchange.has['createTakeProfitOrder'] 来检查它们,但它们不如 .features 属性精确。 如何创建带有成本的现货市价买单? 要创建带有成本的市价买单,首先,你需要检查交易所是否支持该功能(exchange.has['createMarketBuyOrderWithCost'])。如果支持,那么你可以使用createMarketBuyOrderWithCostorder = await exchange.createMarketBuyOrderWithCost(symbol, cost)create_order(symbol, 'market,' 'buy,' 10)create_order(symbol, 'market', 'buy', 0.001, 20000)exchange.options['createMarketBuyOrderRequiresPrice'] = Falsecreate_order(symbol, 'market', 'buy', 10)create_order('SHIB/USDT', market, buy, 1000000)await exchange.loadMarkets()symbol = 'XRP/USDT:USDT'market = exchange.market(symbol)print(market['contractSize'])`
如何下 reduceOnly 订单?
reduceOnly 订单是一种只能减少仓位而不能增加仓位的订单类型。要下 reduceOnly 订单,你通常使用带有 reduceOnly 参数设置为 true 的 createOrder 方法。这确保了订单只有在减少未平仓仓位大小时才会执行,如果执行它会增加仓位大小,它将部分成交或完全不成交。
Javascript
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
方法。示例: createMarketBuyRequiresPrice 选项是什么意思? 许多交易所在下现货市价买单时要求金额以计价货币为单位(它们不接受基础货币金额)。在这些情况下,交易所的选项 createMarketBuyRequiresPrice 将被设置为 true。 示例:如果你想用市价买单购买 BTC/USDT,你需要提供 amount = 5 USDT 而不是 0.000X。我们有一个检查来防止错误,这些错误明确要求价格,因为用户通常会提供基础货币的金额。所以默认情况下,如果你这样做,如果交易所有该选项,将会抛出错误(createOrder() 需要 price 参数来计算要花费的总成本(amount * price),或者将 createMarketBuyOrderRequiresPrice 选项或参数设置为 false...)。如果交易所要求成本而用户提供了基础金额,我们需要请求一个额外的参数 price 并将它们相乘以获得成本。如果你了解这种行为,你可以简单地禁用 createMarketBuyOrderRequiresPrice 并在 amount 参数中传递成本,但禁用它并不意味着你可以使用基础金额而不是计价金额来下单。如果你执行ccxt 将使用所需价格通过 0.01*20000 计算成本并将该值发送给交易所。如果你想直接在 amount 参数中提供成本,你可以执行(你确认 amount 将是市价买入的成本),然后你可以执行 这基本上是为了避免用户这样做: 并认为他试图购买 100 万个 shib,但实际上他购买的是价值 100 万 USDT 的 SHIB。因此,默认情况下 ccxt 总是在 amount 参数中接受基础货币。或者,如果可用,你可以使用函数 createMarketBuyOrderWithCost/ createMarketSellOrderWithCost。查看更多:市价买入 现货交易和掉期/永续期货交易有什么区别? 现货交易涉及立即交割买卖金融工具(如加密货币)。它很简单,涉及资产的直接交换。另一方面,掉期交易涉及衍生品合约,其中两方在未来某个设定日期基于标的资产交换金融工具或现金流。掉期通常用于杠杆、投机或对冲,并且不一定涉及标的资产的交换,直到合约到期。除此之外,如果你交易掉期,你将处理的是合约,而不是直接处理基础货币(例如,BTC),所以如果你创建 amount = 1 的订单,以 BTC 计价的金额将根据 contractSize 而变化。你可以通过以下方式检查合约大小: 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 库中统一方法使用的端点,你通常需要参考库的源代码,查找你感兴趣的特定交易所实现。CCXT 中的统一方法抽象了它们交互的特定端点的细节,因此这些信息不会通过库的 API 直接暴露。要进行详细检查,你可以在 GitHub 上查看 CCXT 库源代码中特定交易所方法的实现。
查看更多:统一 API
如何区分资金费率结构中的 previousFundingRate、fundingRate 和 nextFundingRate?
资金费率结构可以返回三个不同的资金费率值:
previousFundingRate 指的是最近一次已完成的费率。
fundingRate 是即将到来的费率。这个值一直在变化,直到资金时间过去,然后它成为 previousFundingRate。
nextFundingRate 仅在少数交易所支持,是即将到来的费率之后预测的资金费率。这个值是两次资金费率之后的值。
举个例子,假设现在是 12:30。previousFundingRate 发生在 12:00,我们通过检查 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,你需要提供 amount = 5 USDT 而不是 0.000X。我们有一个检查来防止错误,这些错误明确要求价格,因为用户通常会提供基础货币的金额。
create_order(symbol, 'market,' 'buy,' 10)
模式 4: 有关所有交易所及其支持方法的完整列表,请参考此示例:https://github.com/ccxt/ccxt/blob/master/examples/js/exchange-capabilities.js
exchange.rateLimit
模式 5: ccxt 库在 Python 3.5+ 中支持带有 async/await 语法的异步并发模式。异步 Python 版本使用纯 asyncio 和 aiohttp。在异步模式下,你拥有所有相同的属性和方法,但大多数方法都装饰有 async 关键字。如果你想使用异步模式,你应该链接到 ccxt.async_support 子包,如下例所示:
ccxt.async_support
此技能包含 references/ 目录下的全面文档:
当需要详细信息时,使用 view 读取特定的参考文件。
从 getting_started 或 tutorials 参考文件开始,了解基础概念。
使用适当的类别参考文件(api、guides 等)获取详细信息。
上面的快速参考部分包含从官方文档中提取的常见模式。
从官方来源提取的组织化文档。这些文件包含:
在此处添加用于常见自动化任务的辅助脚本。
在此处添加模板、样板或示例项目。
要使用更新的文档刷新此技能:
每周安装数
146
仓库
GitHub 星标数
17.8K
首次出现
2026年1月22日
安全审计
安装于
opencode114
gemini-cli107
codex103
cursor98
claude-code97
github-copilot90
Comprehensive assistance with ccxt development, generated from official documentation.
This skill should be triggered when:
Pattern 1: Frequently Asked Questions I'm trying to run the code, but it's not working, how do I fix it? If your question is formulated in a short manner like the above, we won't help. We don't teach programming. If you're unable to read and understand the Manual or you can't follow precisely the guides from the CONTRIBUTING doc on how to report an issue, we won't help either. Read the CONTRIBUTING guides on how to report an issue and read the Manual. You should not risk anyone's money and time without reading the entire Manual very carefully. You should not risk anything if you're not used to a lot of reading with tons of details. Also, if you don't have the confidence with the programming language you're using, there are much better places for coding fundamentals and practice. Search for python tutorials, js videos, play with examples, this is how other people climb up the learning curve. No shortcuts, if you want to learn something. What is required to get help? When asking a question: Use the search button for duplicates first! Post your request and response in verbose mode! Add exchange.verbose = true right before the line you're having issues with, and copypaste what you see on your screen. It's written and mentioned everywhere, in the Troubleshooting section, in the README and in many answers to similar questions among previous issues and pull requests. No excuses. The verbose output should include both the request and response from the exchange. Include the full error callstack! Write your programming language and language version number Write the CCXT / CCXT Pro library version number Which exchange it is Which method you're trying to call Post your code to reproduce the problem. Make it a complete short runnable program, don't swallow the lines and make it as compact as you can (5-10 lines of code), including the exchange instantation code. Remove all irrelevant parts from it, leaving just the essence of the code to reproduce the issue. DON'T POST SCREENSHOTS OF CODE OR ERRORS, POST THE OUTPUT AND CODE IN PLAIN TEXT! Surround code and output with triple backticks: GOOD. Don't confuse the backtick symbol () with the quote symbol ('): '''BAD''' Don't confuse a single backtick with triple backticks: BAD DO NOT POST YOUR apiKey AND secret! Keep them safe (remove them before posting)! I am calling a method and I get an error, what am I doing wrong? You're not reporting the issue properly ) Please, help the community to help you ) Read this and follow the steps: https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-submit-an-issue. Once again, your code to reproduce the issue and your verbose request and response ARE REQUIRED. Just the error traceback, or just the response, or just the request, or just the code – is not enough! I got an incorrect result from a method call, can you help? Basically the same answer as the previous question. Read and follow precisely: https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-submit-an-issue. Once again, your code to reproduce the issue and your verbose request and response ARE REQUIRED. Just the error traceback, or just the response, or just the request, or just the code – is not enough! Can you implement feature foo in exchange bar? Yes, we can. And we will, if nobody else does that before us. There's very little point in asking this type of questions, because the answer is always positive. When someone asks if we can do this or that, the question is not about our abilities, it all boils down to time and management needed for implementing all accumulated feature requests. Moreover, this is an open-source library which is a work in progress. This means, that this project is intended to be developed by the community of users, who are using it. What you're asking is not whether we can or cannot implement it, in fact you're actually telling us to go do that particular task and this is not how we see a voluntary collaboration. Your contributions, PRs and commits are welcome: https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code. We don't give promises or estimates on the free open-source work. If you wish to speed it up, feel free to reach out to us via info@ccxt.trade. When will you add feature foo for exchange bar ? What's the estimated time? When should we expect this? We don't give promises or estimates on the open-source work. The reasoning behind this is explained in the previous paragraph. When will you add the support for an exchange requested in the Issues? Again, we can't promise on the dates for adding this or that exchange, due to reasons outlined above. The answer will always remain the same: as soon as we can. How long should I wait for a feature to be added? I need to decide whether to implement it myself or to wait for the CCXT Dev Team to implement it for me. Please, go for implemeting it yourself, do not wait for us. We will add it as soon as we can. Also, your contributions are very welcome: https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code What's your progress on adding the feature foo that was requested earlier? How do you do implementing exchange bar? This type of questions is usually a waste of time, because answering it usually requires too much time for context-switching, and it often takes more time to answer this question, than to actually satisfy the request with code for a new feature or a new exchange. The progress of this open-source project is also open, so, whenever you're wondering how it is doing, take a look into commit history. What is the status of this PR? Any update? If it is not merged, it means that the PR contains errors, that should be fixed first. If it could be merged as is – we would merge it, and you wouldn't have asked this question in the first place. The most frequent reason for not merging a PR is a violation of any of the CONTRIBUTING guidelines. Those guidelines should be taken literally, cannot skip a single line or word from there if you want your PR to be merged quickly. Code contributions that do not break the guidelines get merged almost immediately (usually, within hours). Can you point out the errors or what should I edit in my PR to get it merged into master branch? Unfortunately, we don't always have the time to quickly list out each and every single error in the code that prevents it from merging. It is often easier and faster to just go and fix the error rather than explain what one should do to fix it. Most of them are already outlined in the CONTRIBUTING guidelines. The main rule of thumb is to follow all guidelines literally. Hey! The fix you've uploaded is in TypeScript, would you fix JavaScript / Python / PHP as well, please? Our build system generates exchange-specific JavaScript, Python and PHP code for us automatically, so it is transpiled from TypeScript, and there's no need to fix all languages separately one by one. Thus, if it is fixed in TypeScript, it is fixed in JavaScript NPM, Python pip and PHP Composer as well. The automatic build usually takes 15-20 minutes. Just upgrade your version with npm, pip or composer after the new version arrives and you'll be fine. More about it here: https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#multilanguage-support https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#transpiled-generated-files How to create an order with takeProfit+stopLoss? Some exchanges support createOrder with the additional "attached" stopLoss & takeProfit sub-orders - view StopLoss And TakeProfit Orders Attached To A Position. However, some exchanges might not support that feature and you will need to run separate createOrder methods to add conditional order (e.g. *trigger order | stoploss order | takeprofit order) to the already open position - view [Conditional orders](Manual.md#Conditional Orders). You can also check them by looking at exchange.has['createOrderWithTakeProfitAndStopLoss'], exchange.has['createStopLossOrder'] and exchange.has['createTakeProfitOrder'], however they are not as precise as .features property. How to create a spot market buy with cost? To create a market-buy order with cost, first, you need to check if the exchange supports that feature (exchange.has['createMarketBuyOrderWithCost']). If it does, then you can use the createMarketBuyOrderWithCost method. Example: order = await exchange.createMarketBuyOrderWithCost(symbol, cost) What does the createMarketBuyRequiresPrice option mean? Many exchanges require the amount to be in the quote currency (they don't accept the base amount) when placing spot-market buy orders. In those cases, the exchange will have the option createMarketBuyRequiresPrice set to true. Example: If you wanted to buy BTC/USDT with a market buy-order, you would need to provide an amount = 5 USDT instead of 0.000X. We have a check to prevent errors that explicitly require the price because users will usually provide the amount in the base currency. So by default, if you do, create_order(symbol, 'market,' 'buy,' 10) will throw an error if the exchange has that option (createOrder() requires the price argument for market buy orders to calculate the total cost to spend (amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to false...). If the exchange requires the cost and the user provided the base amount, we need to request an extra parameter price and multiply them to get the cost. If you're aware of this behavior, you can simply disable createMarketBuyOrderRequiresPrice and pass the cost in the amount parameter, but disabling it does not mean you can place the order using the base amount instead of the quote. If you do create_order(symbol, 'market', 'buy', 0.001, 20000) ccxt will use the required price to calculate the cost by doing 0.01*20000 and send that value to the exchange. If you want to provide the cost directly in the amount argument, you can do exchange.options['createMarketBuyOrderRequiresPrice'] = False (you acknowledge that the amount will be the cost for market-buy) and then you can do create_order(symbol, 'market', 'buy', 10) This is basically to avoid a user doing this: create_order('SHIB/USDT', market, buy, 1000000) and thinking he's trying to buy 1kk of shib but in reality he's buying 1kk USDT worth of SHIB. For that reason, by default ccxt always accepts the base currency in the amount parameter. Alternatively, you can use the functions createMarketBuyOrderWithCost/ createMarketSellOrderWithCost if they are available. See more: Market Buys What's the difference between trading spot and swap/perpetual futures? Spot trading involves buying or selling a financial instrument (like a cryptocurrency) for immediate delivery. It's straightforward, involving the direct exchange of assets. Swap trading, on the other hand, involves derivative contracts where two parties exchange financial instruments or cash flows at a set date in the future, based on the underlying asset. Swaps are often used for leverage, speculation, or hedging and do not necessarily involve the exchange of the underlying asset until the contract expires. Besides that, you will be handling contracts if you're trading swaps and not the base currency (e.g., BTC) directly, so if you create an order with amount = 1, the amount in BTC will vary depending on the contractSize. You can check the contract size by doing: await exchange.loadMarkets() symbol = 'XRP/USDT:USDT' market = exchange.market(symbol) print(market['contractSize']) How to place a reduceOnly order? A reduceOnly order is a type of order that can only reduce a position, not increase it. To place a reduceOnly order, you typically use the createOrder method with a reduceOnly parameter set to true. This ensures that the order will only execute if it decreases the size of an open position, and it will either partially fill or not fill at all if executing it would increase the position size. Javascript const params = { 'reduceOnly': true, // set to true if you want to close a position, set to false if you want to open a new position } const order = await exchange.createOrder (symbol, type, side, amount, price, params) Python params = { 'reduceOnly': True, # set to True if you want to close a position, set to False if you want to open a new position } order = exchange.create_order (symbol, type, side, amount, price, params) PHP $params = { 'reduceOnly': true, // set to true if you want to close a position, set to false if you want to open a new position } $order = $exchange->create_order ($symbol, $type, $side, $amount, $price, $params); See more: Trailing Orders How to check the endpoint used by the unified method? To check the endpoint used by a unified method in the CCXT library, you would typically need to refer to the source code of the library for the specific exchange implementation you're interested in. The unified methods in CCXT abstract away the details of the specific endpoints they interact with, so this information is not directly exposed via the library's API. For detailed inspection, you can look at the implementation of the method for the particular exchange in the CCXT library's source code on GitHub. See more: Unified API How to differentiate between previousFundingRate, fundingRate and nextFundingRate in the funding rate structure? The funding rate structure has three different funding rate values that can be returned: previousFundingRaterefers to the most recently completed rate. fundingRate is the upcoming rate. This value is always changing until the funding time passes and then it becomes the previousFundingRate. nextFundingRate is only supported on a few exchanges and is the predicted funding rate after the upcoming rate. This value is two funding rates from now. As an example, say it is 12:30. The previousFundingRate happened at 12:00 and we're looking to see what the upcoming funding rate will be by checking the fundingRate value. In this example, given 4-hour intervals, the fundingRate will happen in the future at 4:00 and the nextFundingRate is the predicted rate that will happen at 8:00.
python tutorials
Pattern 2: To create a market-buy order with cost, first, you need to check if the exchange supports that feature (exchange.has['createMarketBuyOrderWithCost']). If it does, then you can use the createMarketBuyOrderWithCost` method. Example:
exchange.has['createMarketBuyOrderWithCost']). If it does, then you can use the
Pattern 3: Example: If you wanted to buy BTC/USDT with a market buy-order, you would need to provide an amount = 5 USDT instead of 0.000X. We have a check to prevent errors that explicitly require the price because users will usually provide the amount in the base currency.
create_order(symbol, 'market,' 'buy,' 10)
Pattern 4: For a complete list of all exchanges and their supported methods, please, refer to this example: https://github.com/ccxt/ccxt/blob/master/examples/js/exchange-capabilities.js
exchange.rateLimit
Pattern 5: The ccxt library supports asynchronous concurrency mode in Python 3.5+ with async/await syntax. The asynchronous Python version uses pure asyncio with aiohttp. In async mode you have all the same properties and methods, but most methods are decorated with an async keyword. If you want to use async mode, you should link against the ccxt.async_support subpackage, like in the following example:
ccxt.async_support
This skill includes comprehensive documentation in references/:
Use view to read specific reference files when detailed information is needed.
Start with the getting_started or tutorials reference files for foundational concepts.
Use the appropriate category reference file (api, guides, etc.) for detailed information.
The quick reference section above contains common patterns extracted from the official docs.
Organized documentation extracted from official sources. These files contain:
Add helper scripts here for common automation tasks.
Add templates, boilerplate, or example projects here.
To refresh this skill with updated documentation:
Weekly Installs
146
Repository
GitHub Stars
17.8K
First Seen
Jan 22, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode114
gemini-cli107
codex103
cursor98
claude-code97
github-copilot90
agent-browser 浏览器自动化工具 - Vercel Labs 命令行网页操作与测试
157,400 周安装
McKinsey Consultant V3.1:基于渐进式披露与依赖感知的AI咨询技能,节省95%分析时间
729 周安装
Claude Skill测试教程:day1-test-skill入门指南与执行原理详解
746 周安装
WordPress路由器:智能识别项目类型并自动选择工作流程的AI技能
744 周安装
Claude技能规则提炼工具:自动化提取通用原则,优化AI助手规则管理
776 周安装
make-plan:AI协调者制定分阶段LLM友好计划,确保代码与文档一致
764 周安装
Self-Improving Agent:AI智能体自我改进与知识沉淀技能指南
780 周安装