加密货币量化系列之一:下载加密货币数据并交易
本文以Python为例,展示如何从全球最大的加密货币交易所「币安(Binance)」交易所下载加密货币的历史数据,并交易加密货币期货的方法,为此后加密货币的量化交易提供数据基础。步骤一:搭建Python开发环境Anaconda是包管理器和环境管理器,它附带了 conda、Python 和 150 多个科学包及其依赖项,因此对Python开发者非常友好。建议大家前往下面的官方网站进行下载: https://www.anaconda.com/步骤二:安装开发量化策略所需的Python包除了常用的一些Python包(pandas,numpy等),ccxt(https://github.com/ccxt/ccxt)是一个非常常用的加密货币量化包,它是一个开源的数字货币交易框架,连接了全球几乎所有的交易所,为用户提供了市场数据访问、算法交易等功能。初次使用前需要啊下载该工具包,方法如下:步骤三:下载交易所历史数据步骤三a:连接交易所,下载并处理数据ccxt下载成功后,可以使用如下方法连接交易所:import ccxt exchange = ccxt.binance() #连接币安 使用fe...
部署以太坊全节点教程系列之二:运行测试网验证节点
本文将演示如何通过质押以太坊,成为验证节点。步骤一:加快节点同步速度在上一篇文章(链接如下),介绍了如何运行以太坊的执行和共识节点。第一次运行时,通常节点同步要等待2-3天时间(共识链和执行层需要分别进行同步,但最慢的是共识层),这是由于共识层客户端需要从第一个区块开始重新验证和同步。 为了加快共识层的同步速度,可以选择使用checkpoint sync,即选择受信任的别的信标链最新确认区块开始同步,并假设此前的所有区块已经被验证: https://mirror.xyz/0x89912c3449006F0Db8a1E051f3b9fc87ea435330 添加checkpoint sync的方法也很简单,只要重新运行./prysm.sh,并添加两个额外参数,如果是goerli(prater)的话:--checkpoint-sync-url=https://goerli.checkpoint-sync.ethpandaops.io --genesis-beacon-api-url=https://goerli.checkpoint-sync.ethpandaops.io 上面的ch...
部署以太坊全节点教程系列之一:运行全节点
本系列将系统介绍如何在谷歌云服务器上部署以太坊节点。 在以太坊完成合并之后,原来的以太坊eth1只负责执行,而共识层则由信标链(beacon chain)完成。 部署以太坊节点需要完成3个步骤:运行执行层客户端,可以选择Geth,Nethermind,Besu 等运行共识层客户端,可以选择Prysm, Lighthouse, Teku 等运行验证节点(下一篇文章会进行分享)以太坊节点的部署总览可以参考下面这张图(来自Somer Esat的medium):步骤一:运行节点的硬件要求本文将以运行CentOS 8的Linux系统为例,使用Geth作为执行层客户端,Prysm作为共识层客户端进行演示。主要原因是它们都是各自使用最多的客户端程序(下图),意味着相关文档和话题也最多。步骤二:安装Prysm在/home/master目录下创建ethereum文件夹,以及consensus和execution两个子文件夹。 前往consensus文件夹并运行以下命令下载Prysm客户端:mkdir prysm && cd prysm curl https://raw.gith...
Crypto quant trader
加密货币量化系列之一:下载加密货币数据并交易
本文以Python为例,展示如何从全球最大的加密货币交易所「币安(Binance)」交易所下载加密货币的历史数据,并交易加密货币期货的方法,为此后加密货币的量化交易提供数据基础。步骤一:搭建Python开发环境Anaconda是包管理器和环境管理器,它附带了 conda、Python 和 150 多个科学包及其依赖项,因此对Python开发者非常友好。建议大家前往下面的官方网站进行下载: https://www.anaconda.com/步骤二:安装开发量化策略所需的Python包除了常用的一些Python包(pandas,numpy等),ccxt(https://github.com/ccxt/ccxt)是一个非常常用的加密货币量化包,它是一个开源的数字货币交易框架,连接了全球几乎所有的交易所,为用户提供了市场数据访问、算法交易等功能。初次使用前需要啊下载该工具包,方法如下:步骤三:下载交易所历史数据步骤三a:连接交易所,下载并处理数据ccxt下载成功后,可以使用如下方法连接交易所:import ccxt exchange = ccxt.binance() #连接币安 使用fe...
部署以太坊全节点教程系列之二:运行测试网验证节点
本文将演示如何通过质押以太坊,成为验证节点。步骤一:加快节点同步速度在上一篇文章(链接如下),介绍了如何运行以太坊的执行和共识节点。第一次运行时,通常节点同步要等待2-3天时间(共识链和执行层需要分别进行同步,但最慢的是共识层),这是由于共识层客户端需要从第一个区块开始重新验证和同步。 为了加快共识层的同步速度,可以选择使用checkpoint sync,即选择受信任的别的信标链最新确认区块开始同步,并假设此前的所有区块已经被验证: https://mirror.xyz/0x89912c3449006F0Db8a1E051f3b9fc87ea435330 添加checkpoint sync的方法也很简单,只要重新运行./prysm.sh,并添加两个额外参数,如果是goerli(prater)的话:--checkpoint-sync-url=https://goerli.checkpoint-sync.ethpandaops.io --genesis-beacon-api-url=https://goerli.checkpoint-sync.ethpandaops.io 上面的ch...
部署以太坊全节点教程系列之一:运行全节点
本系列将系统介绍如何在谷歌云服务器上部署以太坊节点。 在以太坊完成合并之后,原来的以太坊eth1只负责执行,而共识层则由信标链(beacon chain)完成。 部署以太坊节点需要完成3个步骤:运行执行层客户端,可以选择Geth,Nethermind,Besu 等运行共识层客户端,可以选择Prysm, Lighthouse, Teku 等运行验证节点(下一篇文章会进行分享)以太坊节点的部署总览可以参考下面这张图(来自Somer Esat的medium):步骤一:运行节点的硬件要求本文将以运行CentOS 8的Linux系统为例,使用Geth作为执行层客户端,Prysm作为共识层客户端进行演示。主要原因是它们都是各自使用最多的客户端程序(下图),意味着相关文档和话题也最多。步骤二:安装Prysm在/home/master目录下创建ethereum文件夹,以及consensus和execution两个子文件夹。 前往consensus文件夹并运行以下命令下载Prysm客户端:mkdir prysm && cd prysm curl https://raw.gith...
Crypto quant trader
Subscribe to Trader Li
Subscribe to Trader Li
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
链上数据之于区块链,就像基本面数据之于股票市场,是做加密资产量化时绕不开的信息,它可以成为因子策略中的重要因子。
链上数据泛指所有发生在区块链上的交易信息。区块链本质上是一个公开的分布式数据库,所有的链上交易都会被保存,具有公开透明、不可篡改等特点。因此,链上数据不可造假,公开透明。
本文将简要介绍主要有哪些链上数据提供商,并以Glassnode为例展示如何使用Python下载数据,并以「活跃地址交易调整后价格」指标为例展示链上数据的作用。

区块链的数据提供商可以分成以下三类:
一是区块浏览器,包括Etherscan、Zapper等,主要是用来帮助用户更方便地浏览交易和账户信息(下图)。

二是链上数据服务商,包括 Glassnode,Coin Metrics,IntoTheBlock、Nansen,Token Terminal 等,主要对链上数据进行分析整合和分析。本文将简要介绍如何使用 Python 从 Glassnode 免费下载链上数据。
三是链上基建,包括Chainalysis,Infura等,包括以反洗钱为目的监测链上数据,为项目开发提供了基础设施开发工具套件和API。
Glassnode 是一家顶级的区块链的数据分析平台,它提供了比较完整的链上、期货期权、交易所交互等数据。知名投资机构、量化团队、咨询平台等都在使用它们提供的数据信息。
Glassnode 主要分为**「Studio数据库」, 「Insights市场研报」,「Academy教育」**三个模块。
「Studio」模块界面如下,用户可以查看加密资产指标。

「Insights」模块每周提供专业分析师的最新研报,还提供了中文翻译,内容除了周报和链上数据分析,还有对defi、nft等领域的分析。

「Academy」模块提供了对链上数据模型的使用指南和相关知识的免费学习。

如下图,Glassnode数据可以大致分成地址(addresses),指标类(indicators),衍生品(derivatives)等。

Glassnode 的数据标价表如下,标准版(Standard)是免费的,支持日度频率的数据下载。

第一次使用Glassnode需要申请API,用户可以在「studio」模块完成账户注册,并申请一个API key,并将api key填入下面的代码中。
import json
import requests
import pandas as pd
# insert your API key here
API_KEY = '{your api key}'
# make API request
res = requests.get('https://api.glassnode.com/v1/metrics/indicators/sopr',
params={'a': 'BTC', 'api_key': API_KEY})
# convert to pandas dataframe
df = pd.read_json(res.text, convert_dates=['t'])
Tier 1一共支持437个数据接口,可以使用如下代码查询所有可调用接口,或直接查看官方开发文档:https://docs.glassnode.com/basic-api/endpoints。
# make API request
res = requests.get('https://api.glassnode.com/v2/metrics/endpoints',
params={'a': 'ETH', 'api_key': API_KEY})
# convert to pandas dataframe
df = pd.read_json(res.text, convert_dates=['t'])
以调用活跃用户地址数量为例,可以通过如下输入关键词「active」的方法查看端口完整名称,从中确定了端口是 /v1/metrics/addresses/active_count 。
for index, row in df.iterrows():
if 'active' in row['path']:
print(row['path'])
得到端口名称后,便可以运行如下代码得到glassnode数据:
#链接可以修改
res = requests.get('https://api.glassnode.com/v1/metrics/addresses/active_count',
params={'a': 'ETH', 'api_key': API_KEY})
# convert to pandas dataframe
df = pd.read_json(res.text, convert_dates=['t'])
摩根士丹利在一篇研报中提出过 Volume per Address adjusted Price 概念(简称pava),即**「活跃地址交易调整后价格」**。简单来说,对一层公链来说(例如以太坊、Solana等),可以通过链上交易量和活跃地址数对价格进行调整,计算出公链的估值水平。计算方法是用价格除以(90天平均链上交易量/90天平均活跃地址数),以上提到的数据都可以通过 glassnode 的api 免费得到。
将调整后价格(pava指标)和过去90天收益率放在同一张图如下:

从上表可以发现,调整后价格与过去90天收益率有很强的相关性,并存在周期性。假如将pava按大小分成5个区间,区间0代表最小的20%值,区间4代表最大的20%值的话,计算未来7天,30天和90天的平均收益率,如下:

以及未来胜率:

综上可以发现,pava是一个不错的因子。
本文简单简单介绍了链上数据的提供商glassnode,如何使用api下载从glassnode获得链上数据,最后以「活跃地址交易调整后价格」为例展示了链上数据的价值。
链上数据之于区块链,就像基本面数据之于股票市场,是做加密资产量化时绕不开的信息,它可以成为因子策略中的重要因子。
链上数据泛指所有发生在区块链上的交易信息。区块链本质上是一个公开的分布式数据库,所有的链上交易都会被保存,具有公开透明、不可篡改等特点。因此,链上数据不可造假,公开透明。
本文将简要介绍主要有哪些链上数据提供商,并以Glassnode为例展示如何使用Python下载数据,并以「活跃地址交易调整后价格」指标为例展示链上数据的作用。

区块链的数据提供商可以分成以下三类:
一是区块浏览器,包括Etherscan、Zapper等,主要是用来帮助用户更方便地浏览交易和账户信息(下图)。

二是链上数据服务商,包括 Glassnode,Coin Metrics,IntoTheBlock、Nansen,Token Terminal 等,主要对链上数据进行分析整合和分析。本文将简要介绍如何使用 Python 从 Glassnode 免费下载链上数据。
三是链上基建,包括Chainalysis,Infura等,包括以反洗钱为目的监测链上数据,为项目开发提供了基础设施开发工具套件和API。
Glassnode 是一家顶级的区块链的数据分析平台,它提供了比较完整的链上、期货期权、交易所交互等数据。知名投资机构、量化团队、咨询平台等都在使用它们提供的数据信息。
Glassnode 主要分为**「Studio数据库」, 「Insights市场研报」,「Academy教育」**三个模块。
「Studio」模块界面如下,用户可以查看加密资产指标。

「Insights」模块每周提供专业分析师的最新研报,还提供了中文翻译,内容除了周报和链上数据分析,还有对defi、nft等领域的分析。

「Academy」模块提供了对链上数据模型的使用指南和相关知识的免费学习。

如下图,Glassnode数据可以大致分成地址(addresses),指标类(indicators),衍生品(derivatives)等。

Glassnode 的数据标价表如下,标准版(Standard)是免费的,支持日度频率的数据下载。

第一次使用Glassnode需要申请API,用户可以在「studio」模块完成账户注册,并申请一个API key,并将api key填入下面的代码中。
import json
import requests
import pandas as pd
# insert your API key here
API_KEY = '{your api key}'
# make API request
res = requests.get('https://api.glassnode.com/v1/metrics/indicators/sopr',
params={'a': 'BTC', 'api_key': API_KEY})
# convert to pandas dataframe
df = pd.read_json(res.text, convert_dates=['t'])
Tier 1一共支持437个数据接口,可以使用如下代码查询所有可调用接口,或直接查看官方开发文档:https://docs.glassnode.com/basic-api/endpoints。
# make API request
res = requests.get('https://api.glassnode.com/v2/metrics/endpoints',
params={'a': 'ETH', 'api_key': API_KEY})
# convert to pandas dataframe
df = pd.read_json(res.text, convert_dates=['t'])
以调用活跃用户地址数量为例,可以通过如下输入关键词「active」的方法查看端口完整名称,从中确定了端口是 /v1/metrics/addresses/active_count 。
for index, row in df.iterrows():
if 'active' in row['path']:
print(row['path'])
得到端口名称后,便可以运行如下代码得到glassnode数据:
#链接可以修改
res = requests.get('https://api.glassnode.com/v1/metrics/addresses/active_count',
params={'a': 'ETH', 'api_key': API_KEY})
# convert to pandas dataframe
df = pd.read_json(res.text, convert_dates=['t'])
摩根士丹利在一篇研报中提出过 Volume per Address adjusted Price 概念(简称pava),即**「活跃地址交易调整后价格」**。简单来说,对一层公链来说(例如以太坊、Solana等),可以通过链上交易量和活跃地址数对价格进行调整,计算出公链的估值水平。计算方法是用价格除以(90天平均链上交易量/90天平均活跃地址数),以上提到的数据都可以通过 glassnode 的api 免费得到。
将调整后价格(pava指标)和过去90天收益率放在同一张图如下:

从上表可以发现,调整后价格与过去90天收益率有很强的相关性,并存在周期性。假如将pava按大小分成5个区间,区间0代表最小的20%值,区间4代表最大的20%值的话,计算未来7天,30天和90天的平均收益率,如下:

以及未来胜率:

综上可以发现,pava是一个不错的因子。
本文简单简单介绍了链上数据的提供商glassnode,如何使用api下载从glassnode获得链上数据,最后以「活跃地址交易调整后价格」为例展示了链上数据的价值。
No activity yet