CCXT:加密货币量化交易神器
CCXT框架 是一个Python/Javascript/PHP的一个交易API框架,对接超过130多个交易所。可用于世界各地的加密货币交易所的连接和交易,以及转账支付处理,可用于存储数据,分析,可视化,指标开发,算法交易,是一个非常容易集成的开箱即用的统一API。 CCXT框架Github地址: https://github.com/ccxt/ccxt 当前功能列表:支持许多交易市场,甚至即将推出的为所有交易提供完整的公共和私人API所有货币,山寨币和标记,价格,订单,交易,代码等…提供用于交叉交换或跨货币分析和套利的可选标准化数据开箱即用的统一的一体化API,非常易于集成适用于Node7.6+,Python2和3,PHP5.4+,Web浏览器认证交易所支持的加密货币交易所 ccxt库目前支持以下131个加密货币交易所和交易API,可以在github查看。上面的列表经常更新,新的加密市场,山寨币交换,错误修复,API端点定期引入和添加。有关详细信息,请参阅手册,如果你没有在上面的列表中找到加密货币交易市场和/或想要添加其他交易所,请通过GitHub或通过电子邮件在此处发布问题来发...
用基于 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...
专注加密货币量化交易 , focus on crypto quant
CCXT:加密货币量化交易神器
CCXT框架 是一个Python/Javascript/PHP的一个交易API框架,对接超过130多个交易所。可用于世界各地的加密货币交易所的连接和交易,以及转账支付处理,可用于存储数据,分析,可视化,指标开发,算法交易,是一个非常容易集成的开箱即用的统一API。 CCXT框架Github地址: https://github.com/ccxt/ccxt 当前功能列表:支持许多交易市场,甚至即将推出的为所有交易提供完整的公共和私人API所有货币,山寨币和标记,价格,订单,交易,代码等…提供用于交叉交换或跨货币分析和套利的可选标准化数据开箱即用的统一的一体化API,非常易于集成适用于Node7.6+,Python2和3,PHP5.4+,Web浏览器认证交易所支持的加密货币交易所 ccxt库目前支持以下131个加密货币交易所和交易API,可以在github查看。上面的列表经常更新,新的加密市场,山寨币交换,错误修复,API端点定期引入和添加。有关详细信息,请参阅手册,如果你没有在上面的列表中找到加密货币交易市场和/或想要添加其他交易所,请通过GitHub或通过电子邮件在此处发布问题来发...
用基于 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...
专注加密货币量化交易 , focus on crypto quant

Subscribe to quantbang

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

在本教程中,我们将介绍如何使用 Python 开发 DeFi 项目。去中心化金融 (DeFi) 是区块链和智能合约世界最重要的进步之一,通常被称为“新金融科技”。目前,智能合约开发由 JavaScript 主导,部分原因可能是 JavaScript 是地球上最常用的语言,并且与 Node.js 配合构建全栈应用程序更容易。然而,量化分析师、股票交易员和对冲基金的金融科技世界并非如此。大多数金融科技公司出于各种原因使用 Python:
更高效的开发体验
强大的人工智能和机器学习
捆绑的金融科技包
综合分析工具
生产环境中的可靠性

如此多的数据科学家、学者和金融科技机构使用 Python 是有原因的。DeFi 领域的一些项目,如yearn.finance,分享了这种观点,并使用 Python 和 Solidity 构建了他们的整个 DeFi 平台。正是由于像 web3.py 和 Brownie 这样的库和框架,我们才能看到这些项目变得生动起来。Brownie 是一个类似于 Truffle 的框架(它们都非常“sweet”),它维护您的部署、脚本、测试,并允许您制作端到端的后台。
Web3.py和Brownie还提供了“mix”,你可以在其中使用一些样板代码预打开项目。这就是我们今天将使用的Chainlink Brownie mix。
现在我们为什么要使用 Chainlink + Python?正如 Python 是金融科技事实上的编程语言一样,Chainlink 是将链下数据提供给 DeFi 智能合约的事实上的预言机解决方案,目前为顶级 DeFi 协议提供了超过 7B 美元的价值。这两种技术的结合为去中心化金融科技领域提供了一个安全而强大的框架。
以下是 Chainlink 在 2020 年启用的一些功能的快速浏览。

要开始使用 Brownie 和 Python 构建 DeFi 应用程序,您首先需要安装 Python。此时不建议 Python 低于 3.4 版本,因此如果您的版本低于 3.4,请升级。您可以通过运行以下命令查看您的 Python 版本并验证它是否已正确安装:
python --version
或者,如果使用 python3:
python3 --version
您还需要安装 Ganache。Ganache 是一个用 Python 编写的一键式区块链应用,可让您轻松启动本地区块链。尽管您必须使用 npm 和 node.js 下载它,但这将是您必须与之交互的唯一 JavaScript 片段。
首先,您需要安装 node.js 和 npm。Node.js 随 npm 一起安装。下载后,您可以通过运行以下命令来检查它是否正确完成:
npm -v
然后,您可以通过命令行安装 Ganache。
npm install -g ganache-cli
安装完成后,我们将像安装所有 Python 存储库一样使用 pip 安装 eth-brownie!
pip install eth-brownie
或者如果使用 pip3:
pip3 install eth-brownie
如果您在终端中运行 brownie,您就会知道您做对了,您会得到类似于以下内容的输出:
Brownie v1.13.0- Python development framework forEthereum
Usage: brownie <command> [<args>...] [options <args>]
Commands:
init Initialize a new brownie project
bake Initializefrom a brownie-mix template
pm Installand manage external packages
compile Compile the contract source files
console Load the console
test Run test cases in the tests/ folder
run Run a script in the scripts/ folder
accounts Managelocal accounts
networks Manage network settings
gui Load the GUI to view opcodes and test coverage
analyze Find security vulnerabilities using the MythX API
Options:
--help -h Displaythis message
--version Show version andexit
Type'brownie <command> --help'for specific options and more information about
each command.
此外,您还需要一个 MetaMask 或其他以太坊钱包。请使用 Kovan测试网获得ETH。请确保您的 ETH 钱包中有一些 testnet LINK 和 Kovan ETH。您可以在 LINK faucet 和 ETH Kovan faucet 中找到一些。
启动 Chainlink 项目
要开始使用Brownie,,我们可以使用所谓的Brownie mix 来为我们提供样板代码。在这个例子中,我们将部署一个简单的 Chainlink Price Feed 作为了解 Brownie 框架的一种方式。让我们bake chainlink-mix。
brownie bake chainlink-mix
cd chainlink
这将使我们进入一个新项目,其中已经为我们构建了一些默认代码。如果我们运行 ls 我们可以看到文件的布局是什么样的:
build :这是项目跟踪您部署的智能合约和编译的合约的地方
contracts:合同的源代码,通常用 Solidity 或 Vyper 编写
interfaces :您需要使用已部署合同的接口布局。与合约的每次交互都需要一个 ABI 和一个地址。接口是获取合约 ABI 的好方法
scripts:我们创建的脚本来自动化处理我们的合同的过程 测试
tests:测试
brownie-config.yaml :这是我们为 Brownie 了解如何使用我们的智能合约提供所有信息的地方。我们要部署到哪个区块链?有没有我们想要设置的特殊参数?所有这些都在配置文件中设置。
现在可以忽略 requirements.txt 、 README.md 、 LICENSE 和 .gitignore。当您练习时,您会发现它们的用途。
设置环境变量
尽管我们只是安装了 Ganache 来进行本地测试,但我们也希望能够连接到 ETH 主网和测试网,以便我们可以将它们部署在真实的测试网上。为此,我们需要设置 WEB3_INFURA_PROJECT_ID。您可以从 Infura 站点免费获得一个 Infura ID。您也可以使用其他 web3 提供程序或您自己的节点,但您必须为此做更多的配置。
在您的 brownie-config.yaml 文件中,您可以使用主机密钥设置网络,并定义您不想使用 MetaMask 时想要连接的 URL。
现在您有了 web3 ID,我们需要将我们的私钥作为环境变量,以便我们可以将我们的帐户与我们的钱包一起使用。如果您使用 MetaMask,请查找导出密钥。使用 MetaMask,您可能需要在私钥的开头添加 0x。建议在测试和导出密钥时使用与主帐户不同的帐户,以防万一。
现在,要使它们成为环境变量,只需在终端中运行以下命令:
export PRIVATE_KEY=0x96789…..
export WEB3_INFURA_PROJECT_ID=’dog cat mouse….’
如果你运行 printenv 并在那里看到你的环境变量,你就会知道你做对了。
部署您的智能合约
现在我们已经设置好了一切,我们甚至可以继续将智能合约部署到 Kovan 测试网!
在我们的脚本文件夹中,我们有一个名为 deploy_price_consumer_v3.py的脚本。这将部署我们的智能合约,以美元读取以太坊的价格。
只需使用 brownie run 即可使用部署脚本:
brownie run scripts/price_feed_scripts/deploy_price_consumer_v3.py --network kovan
你会看到这样的东西:
Running'scripts/price_feed_scripts/deploy_price_consumer_v3.py::main'...
Transaction sent: 0x23d1dfa3937e0cfbab58f8d5ecabe2bfffc28bbe2349527dabe9289e747bac56
Gas price: 20.0 gwei Gas limit: 145600Nonce: 1339
PriceFeed.constructor confirmed - Block: 22721813Gas used: 132364(90.91%)
PriceFeed deployed at: 0x6B2305935DbC77662811ff817cF3Aa54fc585816
如果这工作正常,我们可以去 Kovan Etherscan 并找到我们部署的合约。上面的链接显示了此示例中部署的合约。

在本教程中,我们将介绍如何使用 Python 开发 DeFi 项目。去中心化金融 (DeFi) 是区块链和智能合约世界最重要的进步之一,通常被称为“新金融科技”。目前,智能合约开发由 JavaScript 主导,部分原因可能是 JavaScript 是地球上最常用的语言,并且与 Node.js 配合构建全栈应用程序更容易。然而,量化分析师、股票交易员和对冲基金的金融科技世界并非如此。大多数金融科技公司出于各种原因使用 Python:
更高效的开发体验
强大的人工智能和机器学习
捆绑的金融科技包
综合分析工具
生产环境中的可靠性

如此多的数据科学家、学者和金融科技机构使用 Python 是有原因的。DeFi 领域的一些项目,如yearn.finance,分享了这种观点,并使用 Python 和 Solidity 构建了他们的整个 DeFi 平台。正是由于像 web3.py 和 Brownie 这样的库和框架,我们才能看到这些项目变得生动起来。Brownie 是一个类似于 Truffle 的框架(它们都非常“sweet”),它维护您的部署、脚本、测试,并允许您制作端到端的后台。
Web3.py和Brownie还提供了“mix”,你可以在其中使用一些样板代码预打开项目。这就是我们今天将使用的Chainlink Brownie mix。
现在我们为什么要使用 Chainlink + Python?正如 Python 是金融科技事实上的编程语言一样,Chainlink 是将链下数据提供给 DeFi 智能合约的事实上的预言机解决方案,目前为顶级 DeFi 协议提供了超过 7B 美元的价值。这两种技术的结合为去中心化金融科技领域提供了一个安全而强大的框架。
以下是 Chainlink 在 2020 年启用的一些功能的快速浏览。

要开始使用 Brownie 和 Python 构建 DeFi 应用程序,您首先需要安装 Python。此时不建议 Python 低于 3.4 版本,因此如果您的版本低于 3.4,请升级。您可以通过运行以下命令查看您的 Python 版本并验证它是否已正确安装:
python --version
或者,如果使用 python3:
python3 --version
您还需要安装 Ganache。Ganache 是一个用 Python 编写的一键式区块链应用,可让您轻松启动本地区块链。尽管您必须使用 npm 和 node.js 下载它,但这将是您必须与之交互的唯一 JavaScript 片段。
首先,您需要安装 node.js 和 npm。Node.js 随 npm 一起安装。下载后,您可以通过运行以下命令来检查它是否正确完成:
npm -v
然后,您可以通过命令行安装 Ganache。
npm install -g ganache-cli
安装完成后,我们将像安装所有 Python 存储库一样使用 pip 安装 eth-brownie!
pip install eth-brownie
或者如果使用 pip3:
pip3 install eth-brownie
如果您在终端中运行 brownie,您就会知道您做对了,您会得到类似于以下内容的输出:
Brownie v1.13.0- Python development framework forEthereum
Usage: brownie <command> [<args>...] [options <args>]
Commands:
init Initialize a new brownie project
bake Initializefrom a brownie-mix template
pm Installand manage external packages
compile Compile the contract source files
console Load the console
test Run test cases in the tests/ folder
run Run a script in the scripts/ folder
accounts Managelocal accounts
networks Manage network settings
gui Load the GUI to view opcodes and test coverage
analyze Find security vulnerabilities using the MythX API
Options:
--help -h Displaythis message
--version Show version andexit
Type'brownie <command> --help'for specific options and more information about
each command.
此外,您还需要一个 MetaMask 或其他以太坊钱包。请使用 Kovan测试网获得ETH。请确保您的 ETH 钱包中有一些 testnet LINK 和 Kovan ETH。您可以在 LINK faucet 和 ETH Kovan faucet 中找到一些。
启动 Chainlink 项目
要开始使用Brownie,,我们可以使用所谓的Brownie mix 来为我们提供样板代码。在这个例子中,我们将部署一个简单的 Chainlink Price Feed 作为了解 Brownie 框架的一种方式。让我们bake chainlink-mix。
brownie bake chainlink-mix
cd chainlink
这将使我们进入一个新项目,其中已经为我们构建了一些默认代码。如果我们运行 ls 我们可以看到文件的布局是什么样的:
build :这是项目跟踪您部署的智能合约和编译的合约的地方
contracts:合同的源代码,通常用 Solidity 或 Vyper 编写
interfaces :您需要使用已部署合同的接口布局。与合约的每次交互都需要一个 ABI 和一个地址。接口是获取合约 ABI 的好方法
scripts:我们创建的脚本来自动化处理我们的合同的过程 测试
tests:测试
brownie-config.yaml :这是我们为 Brownie 了解如何使用我们的智能合约提供所有信息的地方。我们要部署到哪个区块链?有没有我们想要设置的特殊参数?所有这些都在配置文件中设置。
现在可以忽略 requirements.txt 、 README.md 、 LICENSE 和 .gitignore。当您练习时,您会发现它们的用途。
设置环境变量
尽管我们只是安装了 Ganache 来进行本地测试,但我们也希望能够连接到 ETH 主网和测试网,以便我们可以将它们部署在真实的测试网上。为此,我们需要设置 WEB3_INFURA_PROJECT_ID。您可以从 Infura 站点免费获得一个 Infura ID。您也可以使用其他 web3 提供程序或您自己的节点,但您必须为此做更多的配置。
在您的 brownie-config.yaml 文件中,您可以使用主机密钥设置网络,并定义您不想使用 MetaMask 时想要连接的 URL。
现在您有了 web3 ID,我们需要将我们的私钥作为环境变量,以便我们可以将我们的帐户与我们的钱包一起使用。如果您使用 MetaMask,请查找导出密钥。使用 MetaMask,您可能需要在私钥的开头添加 0x。建议在测试和导出密钥时使用与主帐户不同的帐户,以防万一。
现在,要使它们成为环境变量,只需在终端中运行以下命令:
export PRIVATE_KEY=0x96789…..
export WEB3_INFURA_PROJECT_ID=’dog cat mouse….’
如果你运行 printenv 并在那里看到你的环境变量,你就会知道你做对了。
部署您的智能合约
现在我们已经设置好了一切,我们甚至可以继续将智能合约部署到 Kovan 测试网!
在我们的脚本文件夹中,我们有一个名为 deploy_price_consumer_v3.py的脚本。这将部署我们的智能合约,以美元读取以太坊的价格。
只需使用 brownie run 即可使用部署脚本:
brownie run scripts/price_feed_scripts/deploy_price_consumer_v3.py --network kovan
你会看到这样的东西:
Running'scripts/price_feed_scripts/deploy_price_consumer_v3.py::main'...
Transaction sent: 0x23d1dfa3937e0cfbab58f8d5ecabe2bfffc28bbe2349527dabe9289e747bac56
Gas price: 20.0 gwei Gas limit: 145600Nonce: 1339
PriceFeed.constructor confirmed - Block: 22721813Gas used: 132364(90.91%)
PriceFeed deployed at: 0x6B2305935DbC77662811ff817cF3Aa54fc585816
如果这工作正常,我们可以去 Kovan Etherscan 并找到我们部署的合约。上面的链接显示了此示例中部署的合约。
No activity yet