CCXT加密货币交易库技能 ccxt

CCXT技能是一个专门用于加密货币交易自动化的开发辅助工具,提供对CCXT库的全面支持,包括API调用、市场数据获取、订单管理、跨交易所交易等功能。适用于量化交易、交易机器人开发、加密货币数据分析等场景。关键词:CCXT,加密货币交易,API开发,量化交易,Python交易,JavaScript交易,PHP交易,交易所集成,交易自动化,数字货币开发

量化金融 0 次安装 0 次浏览 更新于 2/23/2026

名称: ccxt 描述: CCXT加密货币交易库。用于150多个交易所的加密货币交易所API、交易、市场数据、订单管理和加密货币交易自动化。支持JavaScript/Python/PHP。

Ccxt 技能

提供ccxt开发的全面协助,内容源自官方文档。

何时使用此技能

此技能应在以下情况触发:

  • 使用ccxt时
  • 询问ccxt功能或API时
  • 实现ccxt解决方案时
  • 调试ccxt代码时
  • 学习ccxt最佳实践时

快速参考

常见模式

模式1: 常见问题 我正在尝试运行代码,但它不工作,如何修复? 如果你的问题像上面那样简短地表述,我们将不会提供帮助。我们不教授编程。如果你无法阅读和理解手册,或者无法严格按照CONTRIBUTING文档中的指南报告问题,我们也不会提供帮助。请阅读CONTRIBUTING指南了解如何报告问题,并阅读手册。在没有非常仔细地阅读整个手册之前,你不应该拿任何人的金钱和时间冒险。如果你不习惯阅读大量细节内容,也不应该冒险。此外,如果你对自己使用的编程语言没有信心,有更好的地方可以学习编程基础和进行练习。搜索Python教程、JavaScript视频,尝试示例,这是其他人提升学习曲线的方式。如果你想学习,没有捷径。 获得帮助需要什么? 提问时: 首先使用搜索按钮查找重复问题! 以详细模式发布你的请求和响应! 在遇到问题的代码行之前添加 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中编辑什么以使其合并到主分支吗? 不幸的是,我们并不总是有时间快速列出代码中阻止其合并的每一个错误。通常,直接修复错误比解释应该做什么来修复它更容易、更快。其中大部分已经在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’])。如果支持,那么你可以使用createMarketBuyOrderWithCost方法。 示例:order = await exchange.createMarketBuyOrderWithCost(symbol, cost)

createMarketBuyRequiresPrice选项是什么意思? 许多交易所在下现货市价买入订单时要求金额为报价货币(它们不接受基础货币金额)。在这些情况下,交易所将把选项createMarketBuyRequiresPrice设置为true。 示例:如果你想用市价买入订单购买BTC/USDT,你需要提供amount = 5 USDT而不是0.000X。我们有一个检查来防止明确要求价格的错误,因为用户通常会提供基础货币金额。所以默认情况下,如果你这样做,create_order(symbol, ‘market’, ‘buy’, 10) 如果交易所有该选项,将抛出错误(createOrder()需要price参数用于市价买入订单以计算要花费的总成本(amount * price),或者将createMarketBuyOrderRequiresPrice选项或参数设置为false…)。 如果交易所要求成本而用户提供了基础金额,我们需要请求一个额外的参数price并将它们相乘以获得成本。如果你了解这种行为,你可以简单地禁用createMarketBuyOrderRequiresPrice并在amount参数中传递成本,但禁用它并不意味着你可以使用基础金额而不是报价金额下订单。 如果你做 create_order(symbol, ‘market’, ‘buy’, 0.001, 20000) ccxt将使用所需价格通过0.01*20000计算成本并将该值发送给交易所。 如果你想直接在amount参数中提供成本,你可以做 exchange.options[‘createMarketBuyOrderRequiresPrice’] = False(你确认amount将是市价买入的成本),然后你可以做 create_order(symbol, ‘market’, ‘buy’, 10) 这基本上是为了避免用户这样做:create_order(‘SHIB/USDT’, market, buy, 1000000) 并认为他试图购买100万个shib,但实际上他购买的是价值100万个USDT的SHIB。 因此,默认情况下ccxt始终在amount参数中接受基础货币。或者,如果可用,你可以使用函数createMarketBuyOrderWithCost/ createMarketSellOrderWithCost。 查看更多:市价买入

现货交易和互换/永续期货有什么区别? 现货交易涉及立即交割金融工具(如加密货币)的买卖。它很简单,涉及资产的直接交换。另一方面,互换交易涉及衍生品合约,其中两方在未来设定日期基于标的资产交换金融工具或现金流。互换通常用于杠杆、投机或对冲,不一定涉及标的资产的交换,直到合约到期。 除此之外,如果你交易互换,你将处理合约而不是直接处理基础货币(例如,BTC),所以如果你创建amount = 1的订单,BTC中的金额将根据contractSize而变化。 你可以通过以下方式检查合约大小:await exchange.loadMarkets() symbol = ‘XRP/USDT:USDT’ market = exchange.market(symbol) print(market[‘contractSize’])

如何下reduceOnly订单? reduceOnly订单是一种只能减少仓位而不能增加仓位的订单类型。要下reduceOnly订单,通常使用createOrder方法,并将reduceOnly参数设置为true。这确保订单仅在减少开仓仓位大小时执行,如果执行它会增加仓位大小,则要么部分成交,要么根本不成交。 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库中统一方法使用的端点,通常需要参考库的源代码,了解你感兴趣的特定交易所实现。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 教程

模式2: 要创建带有成本的市价买入订单,首先,你需要检查交易所是否支持该功能(exchange.has[‘createMarketBuyOrderWithCost’])。如果支持,那么你可以使用createMarketBuyOrderWithCost方法。示例:

exchange.has['createMarketBuyOrderWithCost'])。如果支持,那么你可以使用

模式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或教程参考文件开始,了解基础概念。

对于特定功能

使用适当的类别参考文件(api、guides等)获取详细信息。

对于代码示例

上面的快速参考部分包含从官方文档中提取的常见模式。

资源

references/

从官方来源提取的有组织文档。这些文件包含:

  • 详细解释
  • 带有语言注释的代码示例
  • 原始文档链接
  • 快速导航目录

scripts/

在此处添加常见自动化任务的辅助脚本。

assets/

在此处添加模板、样板或示例项目。

备注

  • 此技能自动从官方文档生成
  • 参考文件保留了源文档的结构和示例
  • 代码示例包括语言检测以更好地进行语法高亮
  • 快速参考模式从文档中的常见使用示例中提取

更新

要使用更新的文档刷新此技能:

  1. 使用相同配置重新运行爬虫
  2. 技能将使用最新信息重建