专注加密货币量化交易 , focus on crypto quant
用基于 Python 的开发框架 Brownie 部署以太坊智能合约
在本文中,我们将使用Python部署智能合约。这篇文章可能是您走向智能合约和区块链开发的桥梁! 介绍 我希望可以在任何开发场景都尽量用Python。在区块链开发中,常用的是以太坊虚拟机智能合约语言Solidity,它具有许多不错的功能,并且仍然可以使用 Python 进行部署。刚开始使用Solidity时,我使用了Remix(https://remix.ethereum.org/),这是一个强大的Web IDE,可让您进行智能合约可视化。Remix很棒,我现在仍然使用它,但是在单个IDE之外可以实现很多其他功能。后来我开始学习Truffle(https://www.trufflesuite.com/)和HardHat(https://hardhat.org/guides/mainnet-forking.html),它们是用于部署智能合约的Node.js框架。 这些是到目前为止我所见过的主要框架,这些框架都不错,但是我更喜欢Python。所以当我发现Brownie 和web3.py:一个用于部署智能合约的Python框架和一个用于区块链开发的开源协议之后非常兴奋。我们将在本文中同时...
用 Python 和币安 API 构建数字货币交易机器人(一)
交易数字货币或任何其他资产的首要任务是要有目标和策略来实现。在这里,我们不是在谈论交易策略,而只是构建一个简单而功能强大的数字货币交易机器人来应用您的策略。本系列更像是一个数字货币自动交易机器人框架。 我们将使用python 3.9(3.9.2)首先创建项目文件结构。 /exchanges /strategies /models 在这里,“ exchanges”文件夹存储了Exchange API包装器,为您的策略制定策略并为我们将要使用的业务对象建模。 模型 我们将为此项目定义几个业务对象,例如价格,货币类型或订单。首先,让我们从价格开始,将其用于我们随后将要创建的策略。 在我们为业务对象编写通用抽象层之前: ./models/model.pyfrom datetime import datetime class AbstractModel: created: datetime def __init__(self, **kwargs): for key, value in kwargs.items(): setattr(self, key, value) 然后是我们的第一个Pr...
用 Python 和币安 API 构建数字货币交易机器人(三)
欢迎来到本系列的第三部分。 数据集创建 首先,让我们介绍一个新的“数据集”业务对象来对价格进行分组。 ./models/dataset.pyfrom datetime import datetime from api import utils from models.model import AbstractModel from models.exchange import Exchange from models.currency import Currency class Dataset(AbstractModel): resource_name = 'datasets' pair: str = '' exchange: str = '' period_start: str = '' period_end: str = '' currency: str = '' asset: str = '' relations = {'exchange': Exchange, 'currency': Currency, 'asset': Currency} def __init__(sel...
用基于 Python 的开发框架 Brownie 部署以太坊智能合约
在本文中,我们将使用Python部署智能合约。这篇文章可能是您走向智能合约和区块链开发的桥梁! 介绍 我希望可以在任何开发场景都尽量用Python。在区块链开发中,常用的是以太坊虚拟机智能合约语言Solidity,它具有许多不错的功能,并且仍然可以使用 Python 进行部署。刚开始使用Solidity时,我使用了Remix(https://remix.ethereum.org/),这是一个强大的Web IDE,可让您进行智能合约可视化。Remix很棒,我现在仍然使用它,但是在单个IDE之外可以实现很多其他功能。后来我开始学习Truffle(https://www.trufflesuite.com/)和HardHat(https://hardhat.org/guides/mainnet-forking.html),它们是用于部署智能合约的Node.js框架。 这些是到目前为止我所见过的主要框架,这些框架都不错,但是我更喜欢Python。所以当我发现Brownie 和web3.py:一个用于部署智能合约的Python框架和一个用于区块链开发的开源协议之后非常兴奋。我们将在本文中同时...
用 Python 和币安 API 构建数字货币交易机器人(一)
交易数字货币或任何其他资产的首要任务是要有目标和策略来实现。在这里,我们不是在谈论交易策略,而只是构建一个简单而功能强大的数字货币交易机器人来应用您的策略。本系列更像是一个数字货币自动交易机器人框架。 我们将使用python 3.9(3.9.2)首先创建项目文件结构。 /exchanges /strategies /models 在这里,“ exchanges”文件夹存储了Exchange API包装器,为您的策略制定策略并为我们将要使用的业务对象建模。 模型 我们将为此项目定义几个业务对象,例如价格,货币类型或订单。首先,让我们从价格开始,将其用于我们随后将要创建的策略。 在我们为业务对象编写通用抽象层之前: ./models/model.pyfrom datetime import datetime class AbstractModel: created: datetime def __init__(self, **kwargs): for key, value in kwargs.items(): setattr(self, key, value) 然后是我们的第一个Pr...
用 Python 和币安 API 构建数字货币交易机器人(三)
欢迎来到本系列的第三部分。 数据集创建 首先,让我们介绍一个新的“数据集”业务对象来对价格进行分组。 ./models/dataset.pyfrom datetime import datetime from api import utils from models.model import AbstractModel from models.exchange import Exchange from models.currency import Currency class Dataset(AbstractModel): resource_name = 'datasets' pair: str = '' exchange: str = '' period_start: str = '' period_end: str = '' currency: str = '' asset: str = '' relations = {'exchange': Exchange, 'currency': Currency, 'asset': Currency} def __init__(sel...
专注加密货币量化交易 , focus on crypto quant

Subscribe to quantbang

Subscribe to quantbang
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers

CCXT框架 是一个Python/Javascript/PHP的一个交易API框架,对接超过130多个交易所。可用于世界各地的加密货币交易所的连接和交易,以及转账支付处理,可用于存储数据,分析,可视化,指标开发,算法交易,是一个非常容易集成的开箱即用的统一API。
CCXT框架Github地址:
当前功能列表:
支持许多交易市场,甚至即将推出的
为所有交易提供完整的公共和私人API
所有货币,山寨币和标记,价格,订单,交易,代码等…
提供用于交叉交换或跨货币分析和套利的可选标准化数据
开箱即用的统一的一体化API,非常易于集成
适用于Node7.6+,Python2和3,PHP5.4+,Web浏览器
认证交易所

支持的加密货币交易所
ccxt库目前支持以下131个加密货币交易所和交易API,可以在github查看。上面的列表经常更新,新的加密市场,山寨币交换,错误修复,API端点定期引入和添加。有关详细信息,请参阅手册,如果你没有在上面的列表中找到加密货币交易市场和/或想要添加其他交易所,请通过GitHub或通过电子邮件在此处发布问题来发布或向我们发送链接。
该库受到MIT许可,这意味着任何开发人员都可以完全免费构建商业和开源软件,但使用它需要你自担风险且无需担保。
安装
安装ccxt库的最简单方法是使用内置包管理器:
NPM中的ccxt(JavaScript/Node v7.6+)
PyPI中的ccxt(Python 2和3.5.3+)
Packagist/Composer中的ccxt(PHP 5.4+)
该库作为一体化模块实现提供,具有最小的依赖性和要求:
js/在JavaScript中
python/在Python中(从JS生成)
PHP/ PHP(从JS生成)
也可以从ccxt GitHub存储库将其克隆到项目目录中:
git clone https://github.com/ccxt/ccxt.git
将此库安装到代码中的另一种方法是将单个文件手动复制到工作目录中,并使用适合你环境的语言扩展名。
安装
常用接口
# 初始化交易所
binance_exchange = ccxt.binance({
'timeout': 15000,
'enableRateLimit': True
})
# 获取单个交易对ticker数据
binance_exchange.fetchTicker(symbol)
# 获取多个交易对ticker数据
tickers_data = binance_exchange.fetchTickers(['BTC/USDT', 'ETH/USDT'])
# 交易委托账本数据获取
binance_exchange.fetch_order_book(symbol)
# K线数据数据获取
binance_exchange.fetch_ohlcv(symbol, timeframe='1d')
使用
CCXT里面的交易所都集成来自Exchange的基类,然后每个交易所实现了一些统一的api接口,另外也实现自己交易所特有的api方法。统一的api方法分为不需要权限就能访问的,比如loadmarkets(加载市场的交易对)、 fetchticker(获取ticker)等,需要权限访问的方法如fetchbalance(获取张账户资金)、createorder(生成订单)等。CCXT的方法名称有两种实现方式,一种是驼峰法, 另外一种是下划线命名法,在python中,推荐使用下划线方法来调用。
公共API包括
市场数据
交易对
交易手续费
订单薄/深度数据
交易历史
行情/Tickers
用以制图的 OHLC(V)/K线
其他公共接口
私有API包括
管理个人账户信息
查询账户余额
通过市价单和限价单进行交易
存入和提取法币和加密货币
查询个人订单
获取交易明细/历史
在账户之间转移资金
使用商业服务
此库为所有交换实现完整的公共和私有REST API。即将推出JavaScript,PHP,Python和其他语言的WebSocket和FIX实现。
ccxt库支持 camelcase表示法(在JavaScript中是首选)和下划线表示法(在Python和PHP中首选),因此所有方法都可以用任何语言的符号或编码方式调用。
// both of these notations work in JavaScript/Python/PHP
exchange.methodName () // camelcase pseudocode
exchange.method_name () // underscore pseudocode
Python
# coding=utf-8
import ccxt
hitbtc = ccxt.hitbtc({'verbose': True})
bitmex = ccxt.bitmex()
huobi = ccxt.huobi()
exmo = ccxt.exmo({
'apiKey': 'YOUR_PUBLIC_API_KEY',
'secret': 'YOUR_SECRET_PRIVATE_KEY',
})
kraken = ccxt.kraken({
'apiKey': 'YOUR_PUBLIC_API_KEY',
'secret': 'YOUR_SECRET_PRIVATE_KEY',
})
exchange_id = 'binance'
exchange_class = getattr(ccxt, exchange_id)
exchange = exchange_class({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
'timeout': 30000,
'enableRateLimit': True,
})
hitbtc_markets = hitbtc.load_markets()
print(hitbtc.id, hitbtc_markets)
print(bitmex.id, bitmex.load_markets())
print(huobi.id, huobi.load_markets())
print(hitbtc.fetch_order_book(hitbtc.symbols[0]))
print(bitmex.fetch_ticker('BTC/USD'))
print(huobi.fetch_trades('LTC/CNY'))
print(exmo.fetch_balance())
# sell one ฿ for market price and receive $ right now
print(exmo.id, exmo.create_market_sell_order('BTC/USD', 1))
# limit buy BTC/EUR, you pay €2500 and receive ฿1 when the order is closed
print(exmo.id, exmo.create_limit_buy_order('BTC/EUR', 1, 2500.00))
# pass/redefine custom exchange-specific order params: type, amount, price, flags, etc...
kraken.create_market_buy_order('BTC/USD', 1, {'trading_agreement': 'agree'})

CCXT框架 是一个Python/Javascript/PHP的一个交易API框架,对接超过130多个交易所。可用于世界各地的加密货币交易所的连接和交易,以及转账支付处理,可用于存储数据,分析,可视化,指标开发,算法交易,是一个非常容易集成的开箱即用的统一API。
CCXT框架Github地址:
当前功能列表:
支持许多交易市场,甚至即将推出的
为所有交易提供完整的公共和私人API
所有货币,山寨币和标记,价格,订单,交易,代码等…
提供用于交叉交换或跨货币分析和套利的可选标准化数据
开箱即用的统一的一体化API,非常易于集成
适用于Node7.6+,Python2和3,PHP5.4+,Web浏览器
认证交易所

支持的加密货币交易所
ccxt库目前支持以下131个加密货币交易所和交易API,可以在github查看。上面的列表经常更新,新的加密市场,山寨币交换,错误修复,API端点定期引入和添加。有关详细信息,请参阅手册,如果你没有在上面的列表中找到加密货币交易市场和/或想要添加其他交易所,请通过GitHub或通过电子邮件在此处发布问题来发布或向我们发送链接。
该库受到MIT许可,这意味着任何开发人员都可以完全免费构建商业和开源软件,但使用它需要你自担风险且无需担保。
安装
安装ccxt库的最简单方法是使用内置包管理器:
NPM中的ccxt(JavaScript/Node v7.6+)
PyPI中的ccxt(Python 2和3.5.3+)
Packagist/Composer中的ccxt(PHP 5.4+)
该库作为一体化模块实现提供,具有最小的依赖性和要求:
js/在JavaScript中
python/在Python中(从JS生成)
PHP/ PHP(从JS生成)
也可以从ccxt GitHub存储库将其克隆到项目目录中:
git clone https://github.com/ccxt/ccxt.git
将此库安装到代码中的另一种方法是将单个文件手动复制到工作目录中,并使用适合你环境的语言扩展名。
安装
常用接口
# 初始化交易所
binance_exchange = ccxt.binance({
'timeout': 15000,
'enableRateLimit': True
})
# 获取单个交易对ticker数据
binance_exchange.fetchTicker(symbol)
# 获取多个交易对ticker数据
tickers_data = binance_exchange.fetchTickers(['BTC/USDT', 'ETH/USDT'])
# 交易委托账本数据获取
binance_exchange.fetch_order_book(symbol)
# K线数据数据获取
binance_exchange.fetch_ohlcv(symbol, timeframe='1d')
使用
CCXT里面的交易所都集成来自Exchange的基类,然后每个交易所实现了一些统一的api接口,另外也实现自己交易所特有的api方法。统一的api方法分为不需要权限就能访问的,比如loadmarkets(加载市场的交易对)、 fetchticker(获取ticker)等,需要权限访问的方法如fetchbalance(获取张账户资金)、createorder(生成订单)等。CCXT的方法名称有两种实现方式,一种是驼峰法, 另外一种是下划线命名法,在python中,推荐使用下划线方法来调用。
公共API包括
市场数据
交易对
交易手续费
订单薄/深度数据
交易历史
行情/Tickers
用以制图的 OHLC(V)/K线
其他公共接口
私有API包括
管理个人账户信息
查询账户余额
通过市价单和限价单进行交易
存入和提取法币和加密货币
查询个人订单
获取交易明细/历史
在账户之间转移资金
使用商业服务
此库为所有交换实现完整的公共和私有REST API。即将推出JavaScript,PHP,Python和其他语言的WebSocket和FIX实现。
ccxt库支持 camelcase表示法(在JavaScript中是首选)和下划线表示法(在Python和PHP中首选),因此所有方法都可以用任何语言的符号或编码方式调用。
// both of these notations work in JavaScript/Python/PHP
exchange.methodName () // camelcase pseudocode
exchange.method_name () // underscore pseudocode
Python
# coding=utf-8
import ccxt
hitbtc = ccxt.hitbtc({'verbose': True})
bitmex = ccxt.bitmex()
huobi = ccxt.huobi()
exmo = ccxt.exmo({
'apiKey': 'YOUR_PUBLIC_API_KEY',
'secret': 'YOUR_SECRET_PRIVATE_KEY',
})
kraken = ccxt.kraken({
'apiKey': 'YOUR_PUBLIC_API_KEY',
'secret': 'YOUR_SECRET_PRIVATE_KEY',
})
exchange_id = 'binance'
exchange_class = getattr(ccxt, exchange_id)
exchange = exchange_class({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
'timeout': 30000,
'enableRateLimit': True,
})
hitbtc_markets = hitbtc.load_markets()
print(hitbtc.id, hitbtc_markets)
print(bitmex.id, bitmex.load_markets())
print(huobi.id, huobi.load_markets())
print(hitbtc.fetch_order_book(hitbtc.symbols[0]))
print(bitmex.fetch_ticker('BTC/USD'))
print(huobi.fetch_trades('LTC/CNY'))
print(exmo.fetch_balance())
# sell one ฿ for market price and receive $ right now
print(exmo.id, exmo.create_market_sell_order('BTC/USD', 1))
# limit buy BTC/EUR, you pay €2500 and receive ฿1 when the order is closed
print(exmo.id, exmo.create_limit_buy_order('BTC/EUR', 1, 2500.00))
# pass/redefine custom exchange-specific order params: type, amount, price, flags, etc...
kraken.create_market_buy_order('BTC/USD', 1, {'trading_agreement': 'agree'})
No activity yet