使用 OpenClaw 搭建金融资讯与交易信号自动推送系统

结合金十数据、东方财富 MCP/Skill 与 OpenClaw 定时任务,以黄金交易为例,打造 7×24 小时智能盯盘与信号推送方案。


一、背景与架构总览

2026 年初,OpenClaw(原 Clawdbot/Moltbot)凭借强大的 MCP(Model Context Protocol)协议支持和 Skill 生态迅速走红。与此同时,国内主流金融数据平台------金十数据东方财富------也相继推出了各自的 MCP Server 或 Skill,使得 AI 智能体可以直接调用实时行情、技术指标和财经快讯。

本文介绍如何将这些能力串联起来,构建一套完整的金融资讯与交易信号自动推送系统。整体架构如下:

复制代码
┌─────────────┐    ┌──────────────┐    ┌─────────────┐    ┌──────────┐
│  金十数据    │    │  东方财富     │    │ Gold Price   │    │  自定义   │
│  MCP/Skill  │    │  MCP/Skill   │    │  MCP         │    │  策略脚本  │
└──────┬──────┘    └──────┬───────┘    └──────┬──────┘    └────┬─────┘
       │                  │                   │                │
       └──────────────────┼───────────────────┼────────────────┘
                          │                   │
                    ┌─────▼───────────────────▼────┐
                    │      OpenClaw 智能体          │
                    │  (MCP Client + Cron 调度)     │
                    └──────────────┬───────────────┘
                                   │
                          ┌────────▼────────┐
                          │   飞书群机器人    │
                          │  Webhook 推送    │
                          └─────────────────┘

二、金融数据源配置

2.1 金十数据(Jin10)

金十数据是国内领先的宏观金融资讯平台,提供全球央行动态、经济数据日历、市场快讯等实时信息。金十数据已推出官方标准 MCP Server,支持通过 Bearer Token 直接访问。

2.1.1 金十数据官方 MCP Server(推荐)

金十数据提供了符合标准 MCP 协议的远程服务器,无需本地安装,直接通过 HTTP 调用即可。

MCP 配置:

json 复制代码
{
  "mcpServers": {
    "jin10": {
      "serverUrl": "https://mcp.jin10.com/mcp",
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer sk-xxxx"
      }
    }
  }
}

sk-xxxx 替换为你的金十数据 API Token。

标准 MCP 接入流程:

金十数据 MCP Server 遵循标准 MCP 协议,推荐协议版本 2025-11-25。接入流程如下:

复制代码
initialize → notifications/initialized → tools/list / resources/list → tools/call

数据读取约定:

  • 结果读取时优先使用 result.structuredContent
  • result.content 只作为可读文本补充,不要作为主要机器解析来源
  • 所有列表分页统一使用:
    • 请求参数:cursor
    • 响应字段:data.next_cursor
    • 是否还有更多:data.has_more

已验证可用工具(7 项):

工具名 参数 说明
get_quote { code } 获取指定品种实时行情
list_flash { cursor? } 获取最新快讯列表
search_flash { keyword } 按关键词搜索快讯
list_news { cursor? } 获取最新资讯列表
search_news { keyword, cursor? } 按关键词搜索资讯
get_news { id } 获取单篇资讯详情
list_calendar {} 获取财经日历数据

已验证可用资源:

资源 URI 说明
quote://codes 获取支持的报价品种代码列表

数据读取约定详解:

报价工具(get_quote)返回字段:

  • data.code --- 品种代码
  • data.name --- 品种名称
  • data.time --- 行情时间
  • data.open --- 开盘价
  • data.close --- 收盘价
  • data.high --- 最高价
  • data.low --- 最低价
  • data.volume --- 成交量
  • data.ups_price --- 涨跌额
  • data.ups_percent --- 涨跌幅

快讯/资讯列表工具返回字段:

  • data.items --- 数据列表
  • data.next_cursor --- 下一页游标
  • data.has_more --- 是否还有更多

文章详情工具(get_news)返回字段:

  • data.id --- 文章 ID
  • data.title --- 标题
  • data.introduction --- 摘要
  • data.time --- 发布时间
  • data.url --- 原文链接
  • data.content --- 正文内容

财经日历工具(list_calendar)返回字段:

  • data 为数组,每项包含:pub_time / star / title / previous / consensus / actual / revised / affect_txt

推荐调用方式:

  • 查询某个品种报价 :先读取 quote://codes 确认 code,再调用 get_quote({ code })
  • 查询某个主题的最新快讯 :调用 search_flash({ keyword });如果要顺序浏览最新流,调 list_flash({}),然后按 next_cursor 翻页
  • 查询某个主题的深度文章 :调用 search_news({ keyword })list_news({}),拿到 id 后再调 get_news({ id })
  • 查询财经日历/本周数据 :直接调 list_calendar({})

常用品种代码示例:

品种代码 名称
XAUUSD 现货黄金
XAGUSD 现货白银
USOIL WTI 原油
UKOIL 布伦特原油
COPPER 现货铜
USDJPY 美元/日元
EURUSD 欧元/美元
USDCNH 美元/人民币

常用关键词示例:

黄金、原油、美联储、日元、通胀、非农、日本央行、欧佩克

错误处理:

  • 如果返回 isError=true,按工具业务错误处理
  • 如果返回 JSON-RPC error,按协议错误处理
  • 不要传未声明参数;例如分页请传 cursor,不要再传 offset

兼容性说明:

  • 该服务已按严格 MCP 客户端方式验证
  • 所有工具均返回 structuredContent
  • 列表字段统一为 data.items
  • 分页字段统一为 cursor / next_cursor
2.1.2 金十数据开放平台 REST API(备选)

如果你需要在非 MCP 环境(如独立 Python 脚本)中使用金十数据,也可以使用其 REST API。

申请步骤:

  1. 访问 金十数据开放平台 注册开发者账号
  2. 在控制台申请 API 访问权限,获取 secret-key
  3. 根据文档选择所需数据类型

核心 API 接口:

数据类型 端点 说明
实时快讯 /data-api/flash 市场突发新闻、央行声明等
经济日历 /data-api/calendar 各国经济数据发布时间表
行情数据 /data-api/symbols 外汇、商品、期货、加密货币实时报价
新闻资讯 /data-api/news 深度分析文章

请求示例:

bash 复制代码
curl -X POST "https://open-data-api.jin10.com/data-api/flash" \
  -H "Content-Type: application/json" \
  -H "secret-key: YOUR_SECRET_KEY" \
  -d '{"type": "flash", "flash_type": "1"}'

参数说明:

  • flash_type: 快讯类型(1=重要, 2=央行, 3=地缘, 4=数据, 5=其他)
  • calendar_type: 日历类型(cj=财经, qh=期货, hk=港股, us=美股)
  • symbols_type: 行情类型(GOODS=商品, FOREX=外汇, FUTURE=期货, CRYPTO=加密货币)

2.2 东方财富(East Money)

东方财富是国内最大的互联网券商之一,其 MCP Server 提供了丰富的 A 股、港股、美股实时行情和技术分析能力。

2.2.1 实时股票分析 MCP Server

该项目通过东方财富网公开接口获取金融数据,无需登录或 Token,开箱即用。

项目地址: real-time-stock-mcp-service

安装方式:

bash 复制代码
# 使用 uvx 直接运行(推荐)
uvx real-time-stock-mcp-service

# 或在 Claude Desktop / OpenClaw 配置文件中添加

OpenClaw 配置:

json 复制代码
{
  "mcpServers": {
    "eastmoney-stock": {
      "command": "uvx",
      "args": ["real-time-stock-mcp-service"]
    }
  }
}

可用工具列表(34 项,覆盖 8 大模块):

模块 功能
股票检索 按名称/代码搜索股票、查询交易日
实时行情 A/B/H 股实时报价、大盘指数、分时数据
K 线数据 日/周/月 K 线、分钟级 K 线
技术指标 MA、MACD、BOLL、RSI、KDJ 等
基本面 主营构成、经营范围、行业分类
财务分析 财务比率、业绩概况、利润表
估值指标 市盈率(PE)、市净率(PB)、市值
市场动态 板块行情、同行对比、资金流向、AI 智能点评
2.2.2 FinanceMCP-DCTHS(同花顺 + 东方财富双源)

另一个值得关注的开源项目是 FinanceMCP-DCTHS,它同时集成了同花顺和东方财富两个数据源。

安装配置:

bash 复制代码
# 克隆项目
git clone https://github.com/guangxiangdebizi/FinanceMCP-DCTHS.git
cd FinanceMCP-DCTHS

# 安装依赖
pip install -r requirements.txt

# 配置 Tushare Token(可选,用于增强数据)
export TUSHARE_TOKEN="your_tushare_token"

OpenClaw 配置:

json 复制代码
{
  "mcpServers": {
    "finance-dc-ths": {
      "command": "python",
      "args": ["-m", "finance_mcp_dcths"],
      "env": {
        "TUSHARE_TOKEN": "your_token_here"
      }
    }
  }
}
2.2.3 AKShare MCP Server

AKShare 是一个开源的金融数据接口库,其 MCP Server 版本支持通过 MCP 协议访问东方财富、新浪财经等公开数据。

安装:

bash 复制代码
# 通过 uvx 运行
uvx akshare-mcp-server

OpenClaw 配置:

json 复制代码
{
  "mcpServers": {
    "akshare": {
      "command": "uvx",
      "args": ["akshare-mcp-server"]
    }
  }
}

2.3 Gold Price MCP(黄金价格专用)

针对黄金交易场景,ClawHub 上已有专门的 Gold Price MCP Skill,可追踪全球黄金市场即时波动。

安装:

bash 复制代码
openclaw skill install gold-price-mcp

该 Skill 支持以下功能:

  • 实时国际金价(XAU/USD)
  • 主要货币对黄金报价
  • 黄金 ETF 持仓变动
  • 全球主要金市开盘状态

三、黄金交易策略设计

本节以黄金(XAU/USD)为例,设计一套基于技术指标的自动化交易信号策略,并通过 OpenClaw 定时推送。

3.1 策略核心逻辑

采用三重过滤系统,综合判断趋势方向、动能状态和价格位置:

复制代码
第一层过滤:趋势判断(日线级别)
  └─ MACD 判断多空方向
  
第二层过滤:动能判断(4小时级别)
  └─ RSI 识别超买超卖
  
第三层过滤:入场时机(1小时级别)
  └─ 布林带确定具体买卖点

3.2 技术指标参数

MACD(指数平滑异同移动平均线)
参数 说明
快线周期 12 EMA 短期
慢线周期 26 EMA 长期
信号线周期 9 DEA 平滑

买入信号:

  • MACD 在零轴下方形成金叉(DIF 上穿 DEA)
  • 绿柱缩短转红柱,且红柱持续放大
  • 价格站上布林带中轨

卖出信号:

  • MACD 在零轴上方形成死叉(DIF 下穿 DEA)
  • 红柱缩短转绿柱,且绿柱持续放大
  • 价格跌破布林带中轨
RSI(相对强弱指数)
参数 说明
周期 14 标准设置
超买线 70 RSI > 70 视为超买
超卖线 30 RSI < 30 视为超卖

买入信号:

  • RSI 从超卖区(<30)回升并突破 30
  • RSI 形成底背离(价格创新低但 RSI 未创新低)

卖出信号:

  • RSI 从超买区(>70)回落并跌破 70
  • RSI 形成顶背离(价格创新高但 RSI 未创新高)
布林带(Bollinger Bands)
参数 说明
周期 20 中轨 SMA 周期
标准差倍数 2 上下轨距离

买入信号:

  • 价格触及下轨后反弹,收盘价回到带内
  • 布林带收口后开始张口,价格向上突破中轨

卖出信号:

  • 价格触及上轨后回落,收盘价回到带内
  • 布林带收口后开始张口,价格向下跌破中轨

3.3 综合信号判定规则

信号等级 条件 操作建议
强烈买入 三层过滤全部看多 建仓/加仓
买入 两层过滤看多,一层中性 轻仓试探
观望 信号矛盾或全部中性 持仓观望
卖出 两层过滤看空,一层中性 减仓/平仓
强烈卖出 三层过滤全部看空 清仓/做空

3.4 风控规则

  • 止损设置: 入场价下方 1.5% 或布林带下轨下方 0.5%
  • 止盈设置: 风险回报比至少 1:2,即止盈距离为止损距离的 2 倍
  • 仓位管理: 单笔交易风险不超过总资金的 2%
  • 时间过滤: 避开重大数据发布前后 30 分钟(如非农、CPI、美联储议息)

四、OpenClaw 飞书配置教程

4.1 飞书应用创建与配置

第一步:创建飞书企业自建应用
  1. 登录 飞书开放平台
  2. 点击「创建企业自建应用」,填写应用名称(如"金融资讯推送机器人")
  3. 记录凭证页面的 App IDApp Secret(后续配置需要)
第二步:配置应用权限

在应用管理后台,进入「权限管理」页面,搜索并添加以下权限:

复制代码
im:message              发送消息
im:message:send_as_bot  以机器人身份发送消息
im:chat                 获取群信息
im:chat:readonly        读取群信息
第三步:添加机器人能力
  1. 进入「应用能力」→「机器人」
  2. 开启机器人功能
  3. 设置机器人名称和头像
第四步:配置事件订阅
  1. 进入「事件与回调」→「事件配置」
  2. 将接收方式切换为 长连接模式(推荐,无需公网 IP)
  3. 添加事件:im.message.receive_v1(接收消息事件)
第五步:发布应用
  1. 进入「版本管理与发布」
  2. 创建新版本,提交审核
  3. 审核通过后正式发布

4.2 OpenClaw 侧配置

方式一:通过阿里云控制台配置(推荐)

如果使用阿里云轻量服务器部署的 OpenClaw 实例:

  1. 登录阿里云控制台,进入 OpenClaw 实例管理
  2. 在「通道配置」区域填入:
    • App ID:飞书应用的 App ID
    • App Secret:飞书应用的 App Secret
  3. 确认配置,等待通道连接成功
方式二:通过命令行配置
bash 复制代码
# 配置飞书通道
openclaw channel add feishu \
  --app-id "cli_xxxxxxxxxxxxx" \
  --app-secret "your_app_secret"

4.3 机器人配对与入群

  1. 在飞书群聊设置中,添加刚创建的机器人到群
  2. 向机器人发送任意消息触发配对
  3. 在 OpenClaw WebUI 或终端执行配对确认:
bash 复制代码
# 查看待处理的配对请求
openclaw pairing list feishu

# 批准配对
openclaw pairing approve feishu PAIRING_CODE

4.4 获取飞书群 Webhook 地址(用于定时任务推送)

定时任务推送需要独立的 Webhook 地址:

  1. 打开目标飞书群聊
  2. 进入群设置 → 群机器人 → 添加机器人 → 自定义机器人
  3. 设置机器人名称(如"资讯推送")
  4. 复制生成的 Webhook 地址 (格式:https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx
  5. 可选:设置安全签名(推荐开启)

4.5 创建定时推送任务

方式一:通过自然语言创建(推荐)

直接在 OpenClaw 对话中输入:

复制代码
帮我创建一个定时任务:
- 每天早上 9:00(北京时间)执行
- 获取金十数据最新财经快讯和黄金实时价格
- 结合 MACD、RSI、布林带指标分析黄金走势
- 如果有买入或卖出信号,标注信号等级
- 将结果推送到飞书群,Webhook 地址是:https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx
方式二:通过命令行创建
bash 复制代码
# 创建每日早9点黄金资讯推送任务
openclaw cron add \
  --name "黄金资讯早报" \
  --cron "0 9 * * *" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --wake now \
  --channel feishu \
  --to "chat:oc_xxxxxxxxxxxxx" \
  --message "获取金十数据最新财经快讯,查询黄金(XAU/USD)实时价格和技术指标(MACD、RSI、布林带),综合分析后生成黄金交易信号报告,推送到飞书群" \
  --announce

关键参数说明:

参数 说明
--cron Cron 表达式,"0 9 * * *" 表示每天 9:00
--tz 时区,必须设为 "Asia/Shanghai" 否则默认 UTC 会偏差 8 小时
--session isolated 隔离会话,避免与主任务上下文冲突
--wake now 时间到达后立即执行,防止心跳延迟
--channel feishu 指定推送渠道为飞书
--to 目标地址,群聊用 chat:oc_xxx,个人用 user:ou_xxx
--announce 激活主动消息推送
方式三:创建盘中实时监控任务

如果需要更高频的监控(如每 30 分钟):

bash 复制代码
openclaw cron add \
  --name "黄金盘中监控" \
  --cron "*/30 9-16 * * 1-5" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --wake now \
  --channel feishu \
  --to "chat:oc_xxxxxxxxxxxxx" \
  --message "查询黄金(XAU/USD)当前价格和技术指标,判断是否触发买入/卖出信号,如有信号立即推送告警" \
  --announce

4.6 定时任务管理

bash 复制代码
# 查看所有定时任务
openclaw cron list

# 手动触发某个任务立即执行
openclaw cron run <job-id>

# 暂停某个任务
openclaw cron disable <job-id>

# 恢复某个任务
openclaw cron enable <job-id>

# 删除某个任务
openclaw cron remove <job-id>

# 查看任务执行历史
openclaw cron runs

4.7 推送消息格式示例

OpenClaw 自动推送的飞书消息示例:

复制代码
📊 黄金交易信号日报 | 2026-04-01 09:00

━━━━━━━━━━━━━━━━━━━━

💰 实时行情
  现价: $3,285.60/盎司
  涨跌: +$12.30 (+0.38%)
  日内高: $3,292.10
  日内低: $3,271.50

📈 技术指标分析
  【MACD 日线】DIF: 15.2, DEA: 12.8, 红柱放大 → 偏多 ✓
  【RSI 4H】  RSI(14): 58 → 中性 -
  【布林带 1H】价格在中轨上方运行,通道微张口 → 偏多 ✓

🔔 信号判定: 买入(2/3 偏多)
  建议: 轻仓试探,止损 $3,265,目标 $3,315

📰 重要快讯
  • 美联储官员讲话暗示降息节奏可能放缓
  • 地缘局势升温,避险情绪支撑金价
  • 今日关注: 美国 ADP 就业数据(20:15)

⚠️ 风险提示: 本信号仅供参考,不构成投资建议
━━━━━━━━━━━━━━━━━━━━

五、完整实战示例

5.1 配置文件汇总

以下是完整的 OpenClaw 配置示例(~/.openclaw/config.json):

json 复制代码
{
  "mcpServers": {
    "jin10": {
      "serverUrl": "https://mcp.jin10.com/mcp",
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer sk-your_jin10_token"
      }
    },
    "eastmoney-stock": {
      "command": "uvx",
      "args": ["real-time-stock-mcp-service"]
    },
    "gold-price": {
      "command": "npx",
      "args": ["-y", "gold-price-mcp"]
    }
  },
  "channels": {
    "feishu": {
      "enabled": true,
      "appId": "cli_xxxxxxxxxxxxx",
      "appSecret": "your_app_secret"
    }
  }
}

5.2 策略脚本示例

以下是一个完整的黄金分析脚本,可被 OpenClaw 定时任务调用:

python 复制代码
#!/usr/bin/env python3
"""
黄金交易信号分析脚本
配合 OpenClaw 定时任务使用,输出格式化的交易信号报告
使用金十数据官方 MCP Server 获取数据
"""

import requests
import json
from datetime import datetime

# ===== 配置区 =====
JIN10_MCP_URL = "https://mcp.jin10.com/mcp"
JIN10_TOKEN = "sk-your_token_here"
FEISHU_WEBHOOK = "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxx"

# 技术指标阈值
RSI_OVERBOUGHT = 70
RSI_OVERSOLD = 30

def call_jin10_mcp(method, params):
    """调用金十数据 MCP 工具"""
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {JIN10_TOKEN}"
    }
    payload = {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/call",
        "params": {
            "name": method,
            "arguments": params
        }
    }
    try:
        response = requests.post(JIN10_MCP_URL, headers=headers, json=payload)
        result = response.json()
        # 优先使用 structuredContent
        if "result" in result and "structuredContent" in result["result"]:
            return result["result"]["structuredContent"]
        # 降级使用 content
        if "result" in result and "content" in result["result"]:
            return result["result"]["content"]
        return None
    except Exception as e:
        print(f"MCP 调用失败: {e}")
    return None

def get_gold_price():
    """获取黄金实时价格(通过金十数据 MCP get_quote 工具)"""
    result = call_jin10_mcp("get_quote", {"code": "XAUUSD"})
    if result and "data" in result:
        data = result["data"]
        return {
            "name": data.get("name", "现货黄金"),
            "code": data.get("code", "XAUUSD"),
            "price": data.get("close", 0),
            "open": data.get("open", 0),
            "high": data.get("high", 0),
            "low": data.get("low", 0),
            "change": data.get("ups_price", 0),
            "change_pct": data.get("ups_percent", 0),
            "time": data.get("time", "")
        }
    return None

def get_flash_news():
    """获取最新财经快讯(通过金十数据 MCP list_flash 工具)"""
    result = call_jin10_mcp("list_flash", {})
    if result and "data" in result and "items" in result["data"]:
        return result["data"]["items"][:5]  # 取最新5条
    return []

def get_calendar():
    """获取财经日历(通过金十数据 MCP list_calendar 工具)"""
    result = call_jin10_mcp("list_calendar", {})
    if result and "data" in result:
        return result["data"]
    return []

def analyze_signals(price_data):
    """
    综合技术分析,生成交易信号
    实际项目中应接入东方财富 MCP 获取详细技术指标
    此处为简化示例
    """
    signals = {"bullish": 0, "bearish": 0, "neutral": 0}
    details = []
    
    if not price_data:
        return "观望", signals, ["数据获取失败"]
    
    price = price_data["price"]
    change_pct = price_data["change_pct"]
    
    # 模拟 MACD 分析(实际应通过 MCP 获取真实指标)
    macd_signal = "偏多" if change_pct > 0 else "偏空"
    if macd_signal == "偏多":
        signals["bullish"] += 1
    else:
        signals["bearish"] += 1
    details.append(f"MACD: {macd_signal}")
    
    # 模拟 RSI 分析
    # 实际应通过 MCP 获取 RSI(14) 值
    if change_pct > 1.0:
        rsi_signal = "超买风险"
        signals["bearish"] += 1
    elif change_pct < -1.0:
        rsi_signal = "超卖机会"
        signals["bullish"] += 1
    else:
        rsi_signal = "中性"
        signals["neutral"] += 1
    details.append(f"RSI: {rsi_signal}")
    
    # 模拟布林带分析
    boll_signal = "偏多" if change_pct > 0.2 else ("偏空" if change_pct < -0.2 else "中性")
    if boll_signal == "偏多":
        signals["bullish"] += 1
    elif boll_signal == "偏空":
        signals["bearish"] += 1
    else:
        signals["neutral"] += 1
    details.append(f"布林带: {boll_signal}")
    
    # 综合判定
    if signals["bullish"] >= 3:
        level = "强烈买入"
    elif signals["bullish"] >= 2:
        level = "买入"
    elif signals["bearish"] >= 3:
        level = "强烈卖出"
    elif signals["bearish"] >= 2:
        level = "卖出"
    else:
        level = "观望"
    
    return level, signals, details

def send_to_feishu(message):
    """发送消息到飞书群"""
    payload = {
        "msg_type": "interactive",
        "card": {
            "header": {
                "title": {"tag": "plain_text", "content": "📊 黄金交易信号日报"},
                "template": "blue"
            },
            "elements": [
                {
                    "tag": "markdown",
                    "content": message
                }
            ]
        }
    }
    try:
        response = requests.post(FEISHU_WEBHOOK, json=payload)
        return response.status_code == 200
    except Exception as e:
        print(f"飞书推送失败: {e}")
    return False

def build_report():
    """构建完整的分析报告"""
    now = datetime.now().strftime("%Y-%m-%d %H:%M")
    
    # 获取数据
    gold = get_gold_price()
    news = get_flash_news()
    calendar = get_calendar()
    signal_level, signals, details = analyze_signals(gold)
    
    # 构建报告
    report = f"**更新时间**: {now}\n\n"
    
    if gold:
        report += f"**实时行情**\n"
        report += f"品种: {gold['name']} ({gold['code']})\n"
        report += f"现价: ${gold['price']:,.2f}/盎司\n"
        report += f"涨跌: {gold['change']:+.2f} ({gold['change_pct']:+.2f}%)\n"
        report += f"开盘: ${gold['open']:,.2f} | 日内高: ${gold['high']:,.2f} | 日内低: ${gold['low']:,.2f}\n"
        report += f"行情时间: {gold['time']}\n\n"
    
    report += f"**技术指标**\n"
    for d in details:
        report += f"• {d}\n"
    report += f"\n**信号判定**: {signal_level}(多:{signals['bullish']} 空:{signals['bearish']} 中:{signals['neutral']})\n\n"
    
    if news:
        report += f"**重要快讯**\n"
        for n in news:
            title = n.get("title", n.get("content", ""))
            time_str = n.get("time", "")
            report += f"• [{time_str}] {title[:60]}\n"
    
    if calendar:
        report += f"\n**今日财经日历**\n"
        for item in calendar[:5]:
            title = item.get("title", "")
            actual = item.get("actual", "-")
            consensus = item.get("consensus", "-")
            previous = item.get("previous", "-")
            report += f"• {title} | 前值:{previous} 预期:{consensus} 实际:{actual}\n"
    
    report += "\n⚠️ 风险提示: 本信号仅供参考,不构成投资建议"
    
    return report

if __name__ == "__main__":
    report = build_report()
    print(report)
    
    # 推送到飞书
    success = send_to_feishu(report)
    if success:
        print("\n✅ 飞书推送成功")
    else:
        print("\n❌ 飞书推送失败")

5.3 在 OpenClaw 中配置完整任务

将上述脚本保存后,在 OpenClaw 中创建定时任务:

bash 复制代码
openclaw cron add \
  --name "黄金交易信号自动推送" \
  --cron "0 9 * * 1-5" \
  --tz "Asia/Shanghai" \
  --session isolated \
  --wake now \
  --channel feishu \
  --to "chat:oc_xxxxxxxxxxxxx" \
  --message "执行黄金交易信号分析脚本,获取金十数据实时金价和快讯,结合技术指标生成交易信号报告并推送到飞书群" \
  --announce

六、注意事项与最佳实践

6.1 定时任务常见坑点

  1. 时区问题--tz 参数必须设为 "Asia/Shanghai",否则默认 UTC 会导致推送时间偏差 8 小时
  2. Payload 类型 :必须使用 "kind": "agentTurn",不能使用 "systemEvent"
  3. 通道指定 :如果配置了多个推送渠道(企微、飞书、钉钉),必须在 cron 中通过 --channel 明确指定
  4. 目标地址格式 :群聊用 chat:oc_xxx,个人用 user:ou_xxx,格式错误会导致推送失败

6.2 数据源注意事项

  1. 金十数据 MCP 协议 :官方 MCP Server 遵循标准 MCP 协议,所有工具调用优先读取 result.structuredContentresult.content 仅作补充
  2. 分页参数 :金十数据 MCP 统一使用 cursor 分页,不要传 offset 等未声明参数
  3. 品种代码确认 :查询报价前建议先读取 quote://codes 资源确认品种代码,避免传错 code
  4. API 频率限制:金十数据 API 有调用频率限制,建议快讯接口调用间隔不低于 5 分钟
  5. 数据延迟:免费 API 可能存在 1-3 分钟延迟,不适合高频交易场景
  6. 免责声明:所有推送内容应包含"仅供参考,不构成投资建议"的风险提示

6.3 安全建议

  1. Webhook 安全:飞书自定义机器人建议开启签名校验,防止 Webhook 地址泄露后被滥用
  2. 密钥管理:API Secret Key 不要硬编码在脚本中,建议使用环境变量或密钥管理服务
  3. 权限最小化:飞书应用只申请必要的权限,不要过度授权

七、扩展方向

  1. 多品种监控:扩展到外汇(EUR/USD)、原油(WTI)、主要股指等品种
  2. 智能止损提醒:当持仓品种价格触及止损线时,立即推送告警
  3. 周/月报自动生成:利用 OpenClaw 的长文本能力,每周自动生成交易周报
  4. 回测集成:结合历史数据 MCP,在推送信号的同时展示该策略的历史胜率
  5. 多通道推送:同时推送到飞书群、企业微信群、个人钉钉,确保不错过重要信号

八、参考资源


免责声明:本文所述策略和信号仅供技术学习和参考,不构成任何投资建议。金融市场存在风险,实际交易请结合自身风险承受能力并咨询专业投资顾问。

相关推荐
期权汇小韩1 天前
A股3800点:底部信号确认与2026年投资策略展望
金融
2501_921649491 天前
WebSocket 金融实时行情推送 API 实战解析:低延迟、高可用架构设计与落地
websocket·网络协议·金融·node.js
AI智域边界 - Alvin Cho1 天前
金融专家不应成为 AI 的免费训练数据
人工智能·金融
OneMoreThink2 天前
攻击路径(13):借助集权系统,从金融办公网打到业务区
网络·金融
2501_921649493 天前
期货 Tick 级数据与基金净值历史数据 API 接口详解
开发语言·后端·python·websocket·金融·区块链
wayz113 天前
1.2 多因子模型:CAPM→Fama-French→Barra
金融·量化交易
wayz113 天前
1.3 A股特殊性:制度、投资者结构与市场周期
金融·量化交易
区块链市场观察家3 天前
海洋文明天地人仓位管理体系
金融
2501_921649493 天前
RESTful 金融数据 API 文档:设计原则与最佳实践
开发语言·后端·python·金融·restful