文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CCXT:加密货币量化交易神器

2024-12-03 00:32

关注

  Python中文社区 (ID:python-china)

CCXT框架 是一个Python/Javascript/PHP的一个交易API框架,对接超过130多个交易所。可用于世界各地的加密货币交易所的连接和交易,以及转账支付处理,可用于存储数据,分析,可视化,指标开发,算法交易,是一个非常容易集成的开箱即用的统一API。

CCXT框架Github地址:

https://github.com/ccxt/ccxt

当前功能列表:

认证交易所

支持的加密货币交易所

ccxt库目前支持以下131个加密货币交易所和交易API,可以在github查看。上面的列表经常更新,新的加密市场,山寨币交换,错误修复,API端点定期引入和添加。有关详细信息,请参阅手册,如果你没有在上面的列表中找到加密货币交易市场和/或想要添加其他交易所,请通过GitHub或通过电子邮件在此处发布问题来发布或向我们发送链接。

该库受到MIT许可,这意味着任何开发人员都可以完全免费构建商业和开源软件,但使用它需要你自担风险且无需担保。

安装

安装ccxt库的最简单方法是使用内置包管理器:

该库作为一体化模块实现提供,具有最小的依赖性和要求:

也可以从ccxt GitHub存储库将其克隆到项目目录中: 

  1. git clone https://github.com/ccxt/ccxt.git 

将此库安装到代码中的另一种方法是将单个文件手动复制到工作目录中,并使用适合你环境的语言扩展名。

安装 

  1. pip install ccxt 

常用接口 

  1. # 初始化交易所  
  2. binance_exchange = ccxt.binance({  
  3. 'timeout': 15000,  
  4. 'enableRateLimit': True  
  5. })  
  6. # 获取单个交易对ticker数据  
  7. binance_exchange.fetchTicker(symbol)  
  8. # 获取多个交易对ticker数据  
  9. tickers_data = binance_exchange.fetchTickers(['BTC/USDT', 'ETH/USDT'])  
  10. # 交易委托账本数据获取  
  11. binance_exchange.fetch_order_book(symbol)  
  12. # K线数据数据获取  
  13. binance_exchange.fetch_ohlcv(symbol, timeframe='1d'

使用

CCXT里面的交易所都集成来自Exchange的基类,然后每个交易所实现了一些统一的api接口,另外也实现自己交易所特有的api方法。统一的api方法分为不需要权限就能访问的,比如loadmarkets(加载市场的交易对)、 fetchticker(获取ticker)等,需要权限访问的方法如fetchbalance(获取张账户资金)、createorder(生成订单)等。CCXT的方法名称有两种实现方式,一种是驼峰法, 另外一种是下划线命名法,在python中,推荐使用下划线方法来调用。

公共API包括

私有API包括

此库为所有交换实现完整的公共和私有REST API。即将推出JavaScript,PHP,Python和其他语言的WebSocket和FIX实现。

ccxt库支持 camelcase表示法(在JavaScript中是首选)和下划线表示法(在Python和PHP中首选),因此所有方法都可以用任何语言的符号或编码方式调用。 

  1. // both of these notations work in JavaScript/Python/PHP  
  2.  exchange.methodName ()  // camelcase pseudocode 
  3.  exchange.method_name () // underscore pseudocode 

Python 

  1. coding=utf-8  
  2. import ccxt  
  3. hitbtc = ccxt.hitbtc({'verbose': True})  
  4. bitmex = ccxt.bitmex()  
  5. huobi  = ccxt.huobi()  
  6. exmo   = ccxt.exmo({  
  7. 'apiKey': 'YOUR_PUBLIC_API_KEY',  
  8. 'secret': 'YOUR_SECRET_PRIVATE_KEY',  
  9. })  
  10. kraken = ccxt.kraken({  
  11. 'apiKey': 'YOUR_PUBLIC_API_KEY',  
  12. 'secret': 'YOUR_SECRET_PRIVATE_KEY',  
  13. })  
  14. exchange_id = 'binance'  
  15. exchange_class = getattr(ccxt, exchange_id)  
  16. exchange = exchange_class({  
  17. 'apiKey': 'YOUR_API_KEY',  
  18. 'secret': 'YOUR_SECRET',  
  19. 'timeout': 30000,  
  20. 'enableRateLimit': True,  
  21. }) 
  22. hitbtchitbtc_markets = hitbtc.load_markets()  
  23. print(hitbtc.id, hitbtc_markets)  
  24. print(bitmex.id, bitmex.load_markets())  
  25. print(huobi.id, huobi.load_markets())  
  26. print(hitbtc.fetch_order_book(hitbtc.symbols[0]))  
  27. print(bitmex.fetch_ticker('BTC/USD'))  
  28. print(huobi.fetch_trades('LTC/CNY'))  
  29. print(exmo.fetch_balance())  
  30. # sell one ฿ for market price and receive $ right now  
  31. print(exmo.id, exmo.create_market_sell_order('BTC/USD', 1))  
  32. # limit buy BTC/EUR, you pay €2500 and receive ฿1  when the order is closed  
  33. print(exmo.id, exmo.create_limit_buy_order('BTC/EUR', 1, 2500.00))  
  34. # pass/redefine custom exchange-specific order params: type, amount, price, flags, etc... 
  35. kraken.create_market_buy_order('BTC/USD', 1, {'trading_agreement': 'agree'})  

 

来源:Python中文社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯