风险感知交易智能体

首页 › 指南

用新闻回测交易策略,不用未来函数

新闻策略的回测最容易自欺欺人。只要回测让策略提前读到还没发布的标题,或者读到交易所用的那个收盘之后才出来的报道,结果就会好得不真实,实盘里根本做不到。风险感知交易智能体是一个开源的 Python 项目,它按每条新闻的发布时间回放新闻,并对每次实验做防偷看检查。

在 GitHub 上获取 2026 年数据集 测试 LLM 智能体

新闻回测通常在哪里偷看了未来

大多数新闻回测的「未来函数」都出在几个很平常的地方:

这个项目怎样回放新闻

第 t 天 16:00(纽约)          收盘之后                              第 t+1 天 09:30
    股票收盘       ->   策略看到第 t 天及以前的数据          ->   订单按开盘价成交
                        和 16:00 之前发布的新闻                   (加 5 个基点滑点)

试一下

git clone https://github.com/jackson-cmd/risk-aware-trading-agents
cd risk-aware-trading-agents
pip install -e ".[dashboard,mcp]"        # 需要 Python 3.10+

riskaware backtest --strategy risk_aware --preset megacap --start 2026-01-02 --news
riskaware research run --strategy swing_trend --split 2026-07-01   # 带防偷看检查,并保存实验记录
riskaware research day 2026-04-08 --symbols NVDA,TSLA              # 那天收盘时已知的全部信息

2026 年的新闻随安装包提供,什么都不用下载。想测自己的想法,可以写一个小的 Python 类,也可以直接用一句话告诉 Claude,让它来写代码(见 LLM 智能体和 MCP)。

证明没有偷看:防偷看检查

时间戳的规则写对了,也可能因为一个 bug 漏出未来数据。所以每次研究实验都会再跑三遍:每一遍把某个切点之后的每个价格和每条标题都换成随机的,其中包括编造的好消息、坏消息和破产公告。只用了该知道的信息的策略,在每个切点之前做出的决定会完全一样;只要切点之前有一个决定变了,检查就判失败,并写出第一个变化的日期和决定。项目的测试里故意埋了这样一个 bug(一个读到第二天收盘价的指标),用来证明检查能抓到。

2026 年的结果

五种常见的波段策略,56 只大盘股,2026 年 1 月 2 日到 11 月 11 日,最多 10 个等额仓位,次日开盘成交:

策略不开新闻开新闻Sharpe最大回撤
趋势跟随(EMA20 上穿 EMA50)+21.1%+19.6%1.44-4.7%
新闻后的惯性(不开新闻时:改由价格异动触发)+15.7%+4.4%1.01-9.8%
Connors RSI(2) 均值回归+12.7%+10.8%0.85-7.9%
上升趋势中买回调+2.3%+1.7%-0.13-4.4%
20 日突破-0.3%-3.5%-0.15-15.6%
SPY 买入持有+12.1%0.77-8.9%

Sharpe 和回撤是不开新闻时的数字。用 riskaware research baselines 可以复现。

五种波段策略 2026 年的表现,开和不开新闻,与 SPY 对比

加新闻过滤让每个策略都略差一点;按正面标题买入,也不如按同样幅度的价格异动买入。原因是只有一个标题来源,多数报道只有单一出处,过滤器多半是在对噪音做反应。项目自己的风险感知智能体加新闻后好一些(+15.9%,不加是 +15.4%,SPY 是 +12.1%),但十个月的数据不足以有把握地区分这些数字:95% 区间彼此重叠。所有运行都通过了防偷看检查。

其他年份的新闻

riskaware news-history 会在你自己的电脑上建一个按时间点记录的新闻库:2018 年以来的 SEC 8-K 公告可以免费下载(带 SEC 受理的时间),Benzinga 标题可以用你自己的 API key 下载,任何包含时间、代码和标题的 CSV 也能导入。riskaware news-history show NVDA --date 2024-05-22 会列出回测在那天收盘时看到的全部新闻。详见 docs/zh/news-history.md。

常见问题

支持日内交易吗?

不支持。决策在每天收盘之后,订单在下一个交易日开盘成交,所以测的是基于日线的波段和中线交易,不是日内交易。

能用我自己的新闻吗?

能:导入一个包含发布时间、代码和标题的 CSV,或者只给某一次实验加几条标题,看策略对一条从没发生过的新闻怎么反应。

能让 AI 帮我写策略吗?

能。通过 MCP,Claude、Codex 或 Gemini 会把策略写成代码;代码先检查有没有写日期、股票代码和副作用,再在单独的进程里运行。

更多指南

按时间点记录的 2026 年数据价格、VIX 和新闻,附 SHA-256 哈希 测试 LLM 交易智能体一步一步、可盲测、通过 MCP 风险感知交易智能体智能体、券商和看板