SuperAPI AI 工具集

market-data

数据与分析

查看项目

更新于 10-16 08:25

技能介绍

用途

market-data 用于从 Alpha Vantage、Yahoo Finance 等 API 获取并处理实时金融市场数据,支持分析及交易决策。它负责数据摄取、归一化,以及对股票、货币和指数的基础计算。

主要能力

  • 通过 API 获取股票、ETF 和外汇的实时或历史数据。
  • 使用内置函数处理数据,例如计算简单移动平均(SMA)或波动率。
  • 支持多个数据源,可通过 JSON 配置文件进行配置。
  • 通过分页和缓存高效处理大型数据集。
  • 可与其他金融工具集成,实现自动化工作流。

使用方式

使用前需通过环境变量完成认证,设置 $MARKET_API_KEY。典型流程为:先获取数据,再处理数据,最后输出或集成。在脚本中可作为模块导入并直接调用函数;在 CLI 模式下可串联命令执行顺序操作。应避免直接写入数据库,仅用于临时数据处理。

常用命令与 API

使用 claw CLI 快速访问;API 端点用于程序化调用。运行命令前需设置 $MARKET_API_KEY 进行认证。

CLI 命令:获取股票价格

claw market-data fetch --symbol AAPL --interval 1min

该命令获取 AAPL 最新的 1 分钟 OHLC 数据。

API 端点:获取股票数据

端点:GET /api/v1/stocks/{symbol},查询参数如 ?interval=1min

代码示例:

import requests
response = requests.get('http://api.openclaw.ai/api/v1/stocks/AAPL', headers={'Authorization': f'Bearer {os.environ["MARKET_API_KEY"]}'})
data = response.json()

CLI 命令:处理数据(例如计算 SMA)

claw market-data process --input data.json --function sma --period 20

该命令读取 JSON 文件并计算 20 周期 SMA。

API 端点:处理数据

端点:POST /api/v1/process,JSON 请求体 {"function": "sma", "data": [...], "period": 20}

示例:

fetch('http://api.openclaw.ai/api/v1/process', {
  method: 'POST',
  headers: { 'Authorization': `Bearer ${process.env.MARKET_API_KEY}` },
  body: JSON.stringify({function: 'sma', data: [/* array */], period: 20})
}).then(res => res.json());

配置格式:使用 JSON 文件进行设置

示例 config.json:

{
  "api_endpoint": "http://api.openclaw.ai",
  "default_interval": "1min",
  "cache_ttl": 300
}

加载方式:

claw market-data config load path/to/config.json

集成说明

将技能函数封装到应用代码中进行集成;确保环境中已设置 $MARKET_API_KEY。对于 Web 应用,使用异步调用以避免阻塞。若与其他技能组合,可通过 stdin/stdout 传递输出,例如:

claw market-data fetch --symbol AAPL | claw trading-execution analyze

通过添加延迟或使用内置重试机制(--retry-count 3)处理速率限制。先在沙箱环境中测试集成。

错误处理

通过解析响应码检查 API 错误;常见错误包括 401(未授权),通常因 $MARKET_API_KEY 缺失或无效。代码中使用 try-catch:

try:
    response = requests.get(...)  # 同上
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    print(f"Error: {err} - Check API key or endpoint")

CLI 中可添加 --verbose 记录错误,例如:

claw market-data fetch --symbol AAPL --verbose

对瞬时错误使用指数退避重试;可通过 config.json 配置,如 {"retry_policy": {"max_retries": 5, "backoff": 2}}。始终验证输入以防止格式错误的请求。

具体使用示例

在 Python 脚本中获取并分析股票价格:

设置 $MARKET_API_KEY=your_key,然后:

import os
import requests
symbol = 'AAPL'
response = requests.get(f'http://api.openclaw.ai/api/v1/stocks/{symbol}', headers={'Authorization': f'Bearer {os.environ["MARKET_API_KEY"]}'})
price = response.json()['price']
print(f"Current price of {symbol}: {price}")

该脚本输出实时价格,可直接用于交易算法。

通过 CLI 处理历史数据以生成交易信号:

先获取数据:

claw market-data fetch --symbol TSLA --interval daily --output history.json

再处理:

claw market-data process --input history.json --function rsi --period 14

输出为包含 RSI 值的 JSON,可输入决策脚本以生成买入/卖出信号。

适用场景

适用于交易机器人中的实时市场监控、金融仪表盘或数据驱动应用。当你需要实时股票价格、历史数据或移动平均等指标时使用,尤其适合高频交易场景或投资组合分析。

限制

资料未提供关于收费、价格、平台支持范围、性能上限或具体数据源覆盖范围的明确说明,这些信息暂未提供。