用途
Tracking Crypto Prices 是一个基础技能,为加密插件生态提供实时与历史加密货币价格数据。它是该生态的数据层,有 10 多个其他技能依赖它获取价格信息,例如市场异动扫描器、加密投资组合追踪器、加密税务计算器、DeFi 收益优化器、流动性池分析器、质押奖励优化器、加密衍生品追踪器、DEX 聚合路由器、期权流分析器和套利机会发现器。
主要能力
- 支持 10000+ 加密货币的实时价格查询。
- 提供历史 OHLCV(开盘、最高、最低、收盘、成交量)数据,时间范围从 1 天到全部历史。
- 多币种支持:USD、EUR、GBP 等 30+ 种货币。
- 智能缓存以减少 API 调用。
- 预定义观察列表(top10、defi、layer2、stablecoins、memecoins)和自定义观察列表。
- 支持导出为 CSV/JSON 以便分析。
使用方式
前置条件
安装依赖:
pip install requests pandas yfinance
可选高级功能:
pip install python-dotenv # 用于 API 密钥管理
API 设置(可选,用于提高速率限制):
- 从 https://www.coingecko.com/en/api 获取免费 API 密钥。
- 添加到 {baseDir}/config/settings.yaml 或设置环境变量 COINGECKO_API_KEY。
快速价格查询
查询单个加密货币当前价格:
python {baseDir}/scripts/price_tracker.py --symbol BTC
查询多个资产:
python {baseDir}/scripts/price_tracker.py --symbols BTC,ETH,SOL
使用观察列表
扫描预定义观察列表:
# 市值前 10
python {baseDir}/scripts/price_tracker.py --watchlist top10
# DeFi 代币
python {baseDir}/scripts/price_tracker.py --watchlist defi
# Layer 2 代币
python {baseDir}/scripts/price_tracker.py --watchlist layer2
可用观察列表:top10、defi、layer2、stablecoins、memecoins。
获取历史数据
获取 OHLCV 历史:
# 最近 30 天
python {baseDir}/scripts/price_tracker.py --symbol BTC --period 30d
# 最近 90 天并导出 CSV
python {baseDir}/scripts/price_tracker.py --symbol BTC --period 90d --output csv
# 自定义日期范围
python {baseDir}/scripts/price_tracker.py --symbol ETH --start 2024-01-01 --end 2024-12-31
配置设置
编辑 {baseDir}/config/settings.yaml 可自定义缓存 TTL、默认货币、自定义观察列表等。
输出格式
默认输出为价格表格,包含符号、价格、24 小时变化、24 小时成交量、市值等信息。使用 --format json 可输出 JSON 格式。历史数据可导出为 CSV,包含日期、开盘、最高、最低、收盘、成交量列。
错误处理
常见错误包括:未知符号(检查拼写,使用 --list 搜索)、速率限制超出(等待 60 秒或使用 API 密钥)、网络错误(检查连接,将使用缓存数据)、缓存过期(仍显示数据并警告,随后刷新)。技能会自动使用缓存、应用指数退避、在 CoinGecko 失败时回退到 yfinance,并作为最后手段显示带警告的过期缓存数据。
集成方式
其他技能可通过直接导入(推荐 Python 技能)、CLI 子进程或共享缓存文件 {baseDir}/data/cache.json 来使用本技能提供的价格数据。
文件结构
- scripts/price_tracker.py:主 CLI 入口点
- scripts/api_client.py:CoinGecko/yfinance 抽象
- scripts/cache_manager.py:缓存读写与失效
- scripts/formatters.py:输出格式化
- config/settings.yaml:用户配置
- data/cache.json:价格缓存(自动生成)
资源
- CoinGecko API:主要数据源
- yfinance:历史数据回退源
- PRD.md:产品需求
- ARD.md:架构文档
限制
资料中未提供关于收费、价格、平台支持范围、具体效果或使用步骤的更多细节。部分功能(如价格提醒设置)在示例中提及但未展开说明,具体实现暂未提供。