用途
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,可输入决策脚本以生成买入/卖出信号。
适用场景
适用于交易机器人中的实时市场监控、金融仪表盘或数据驱动应用。当你需要实时股票价格、历史数据或移动平均等指标时使用,尤其适合高频交易场景或投资组合分析。
限制
资料未提供关于收费、价格、平台支持范围、性能上限或具体数据源覆盖范围的明确说明,这些信息暂未提供。