第一章:课程导论与数据源

大家好,我是你们的老朋友。今天咱们正式开讲《链上数据量化回测与策略优化实战》的第一章。

说实话,我接触链上数据量化这个领域,已经有五六年了。刚开始那会儿,市场上能用的工具少得可怜,数据质量也参差不齐。我踩过的坑,估计比你们走过的路还多(笑)。所以这一章,我会把最核心的东西掰开揉碎了讲给你听。

1.1 什么是链上数据?

链上数据,说白了就是区块链上记录的所有交易、合约调用、地址余额等信息。它不像传统金融数据那样,只有价格和成交量。链上数据更底层、更原始。

举个例子:

  • 交易数据:谁给谁转了多少钱,用了什么代币
  • 合约数据:某个DeFi协议每天有多少用户交互,锁仓量多少
  • 地址数据:大户地址的持仓变化,新地址的创建速度
  • Gas数据:网络拥堵程度,矿工费变化

我个人习惯把链上数据分成两类:原生数据衍生数据。原生数据就是区块里直接能读到的,比如转账记录。衍生数据则是经过计算得到的,比如某个地址的盈亏比、换手率。

核心观点:链上数据是区块链世界的「心电图」。它告诉你市场在做什么,而不是市场在说什么。

1.2 为什么链上数据对量化交易重要?

你想想看,传统量化交易看什么?K线、MACD、RSI。这些指标都是价格和成交量的衍生品。但链上数据给你的是另一个维度——行为维度

我在项目中遇到过这样一个案例:某个代币价格突然暴涨,但链上数据显示大户地址正在持续出货。如果你只看K线,可能会追高。但如果你看了链上数据,就会知道这波拉升大概率是诱多。结果呢?三天后价格腰斩。

链上数据的核心价值在于:

  1. 提前发现信号:大户的链上操作往往比市场价格变动早几个小时甚至几天
  2. 验证市场情绪:价格涨了,但链上活跃度没跟上?那可能是假突破
  3. 构建更稳健的策略:结合链上数据的策略,往往比纯价格策略有更高的夏普比率

我的经验:别把链上数据当成万能药。它和价格数据是互补关系,不是替代关系。最好的策略,往往是两者结合。

1.3 主流数据源介绍

现在市面上能用的链上数据源不少,但真正靠谱的也就那么几家。我按自己的使用频率,给你排个序。

数据源 特点 适合场景 价格
Dune 社区驱动,SQL查询,免费额度大 快速原型验证,自定义查询 免费版够用,付费版$399/月起
Glassnode 专业级指标,数据质量高 机构级策略,深度研究 $29/月起,专业版$799/月
CoinMetrics 覆盖广,API稳定,支持历史数据 回测研究,学术分析 按量计费,企业版定制

1.3.1 Dune:社区驱动的数据宝库

Dune是我用得最多的工具。为什么?因为它有个巨大的社区,别人写好的查询可以直接拿来用。你想想看,省了多少时间。

Dune的核心是SQL查询。你写一条SQL,就能从海量链上数据中提取你想要的信息。比如:

-- 查询过去24小时Uniswap V3的交易量
SELECT 
  date_trunc('hour', block_time) AS hour,
  SUM(amount_usd) AS volume_usd
FROM uniswap_v3_ethereum.swaps
WHERE block_time >= now() - interval '24 hours'
GROUP BY 1
ORDER BY 1

嗯,这里要注意:Dune的数据更新有延迟,大概5-10分钟。做高频交易的话,它不太合适。

1.3.2 Glassnode:机构级的数据质量

Glassnode是我做深度研究时的首选。它的指标都是经过精心计算的,比如MVRV比率、SOPR、NUPL等。这些指标在传统数据源里根本找不到。

我曾经用Glassnode的「交易所净流量」指标,成功预测过两次比特币的短期顶部。具体逻辑很简单:当大量BTC流入交易所时,说明大户准备出货了。

避坑指南:Glassnode的API有调用次数限制。免费版每分钟只能请求10次。我曾经因为没注意这个限制,导致回测脚本跑了一半就挂了。后来我加了个请求队列,才解决问题。

1.3.3 CoinMetrics:历史数据的王者

CoinMetrics最大的优势是历史数据覆盖广。它支持从比特币创世区块到现在的所有数据。对于做长周期回测的人来说,这简直是神器。

它的API设计也很规范,RESTful风格,文档清晰。我建议你直接用Python的requests库来调用:

import requests
import json

url = "https://api.coinmetrics.io/v4/timeseries/asset-metrics"
params = {
    "assets": "btc",
    "metrics": "PriceUSD,CapRealUSD",
    "frequency": "1d",
    "limit_per_asset": 100,
    "api_key": "YOUR_API_KEY"
}

response = requests.get(url, params=params)
data = response.json()
print(json.dumps(data, indent=2))

不过要注意,CoinMetrics的免费额度很少。做大规模回测的话,建议直接上付费版。

1.4 知识体系总览

为了让你对本章内容有个整体认识,我画了张图。这张图展示了链上数据量化交易的核心知识结构。

链上数据量化交易知识体系 数据源层 数据获取 数据清洗 指标计算层(MVRV、SOPR、NUPL、交易所净流量...) 信号生成 回测验证 策略优化 执行与风控层(仓位管理、止损、滑点控制) 数据流方向:从底层数据源到上层策略执行

这张图展示了从数据获取到策略执行的完整链路。你会发现,数据源在最底层,是所有工作的基础。没有高质量的数据,再好的策略也是空中楼阁。

1.5 本章小结

好了,第一章的内容就到这里。我们讲了链上数据的定义、它对量化交易的重要性,以及三个主流数据源的特点和接入方式。

我个人建议你从Dune开始入手。它免费、社区活跃、学习曲线平缓。等你把Dune玩熟了,再考虑升级到Glassnode或CoinMetrics。

下一章,我们会深入讲解如何用Python搭建数据采集管道。到时候我会手把手教你写代码,把Dune和Glassnode的数据拉到本地。

课后作业:去Dune注册一个账号,跑通上面那个Uniswap V3的SQL查询。看看你能发现什么有趣的数据模式。

专注资料整理