# 在算法交易中使用新闻情绪作为交易信号
加密货币市场的算法交易在指标忽略市场状态转变时会失去效力。解决方案是通过向量搜索和 RAG 模型分析新闻情绪,而不是 LLM 解读。这能让你在价格反映之前捕捉到基本情绪转变。
为什么传统指标会失效
移动平均线和 RSI 是基于历史数据校准的,假设市场状态稳定。但现实中会有看跌和看涨日交替,甚至在一天内翻转。技术分析无法适应这些切换,因为它基于平均化。早上有正面新闻,晚上负面新闻。结果,指标显示“噪音”而非趋势。
问题不在于工具本身——而在于使用语境。指标在特定状态下有效,但无法识别状态本身。新闻背景决定了状态——权威来源如何塑造市场参与者的认知。
如何正确收集和过滤新闻
构建信号不仅仅是解析标题。三个参数至关重要:域名、发布时间和向量相似度。以下是具体方法:
- 使用向量搜索而非关键词
- 利用 PgVector 或 MongoDB Atlas Vector Search 进行语义搜索,而不是词匹配。
- 寻找余弦相似度接近零的分数——它们能捕捉隐藏影响(例如,提及 Trump 但无直接 Bitcoin 引用)。
- 跳过 LLM 用于初始搜索——它们是解读而非捕捉原始情绪。
- 聚焦权威域名
- SEC 监管文件本身不会驱动市场——只有被有影响力的博主或分析师转载时才行。
- 建立域名白名单,这些域名的受众真正能影响散户投资者。
- 考虑时间因素
- 每日平均会抹杀方向性。使用严格的 24 小时窗口——足以过滤噪音并保留语境。
- 过滤掉发布时间未知的文章(例如,00:00:00 GMT)。它们会引入前视偏差。
实际实现:代码和过滤
在使用 Tavily 等 API 时,要正确处理时间戳。以下是 JavaScript 过滤示例:
const hour = dayjs(publishedDate).utc().get("hour");
const minute = dayjs(publishedDate).utc().get("minute");
if (hour === 0 && minute === 0) {
console.warn(`fetchNews search invalid publishedDate query=${query} url=${url} from=${from} to=${to}`)
return false;
}
此外,向后查询 -2 天数据,然后本地过滤最近 24 小时。这能修复因 CDN 和数据库问题导致的日界丢失发布。
案例研究:情绪如何领先价格变动
在两个真实案例中,基于向量搜索的系统正确识别了方向:
- 中性-看跌情绪 → 随后 BTC 价格下跌。
- 看涨情绪 → 随后几小时稳步上涨。
关键点:系统不预测价格。它捕捉众多文章协同塑造集体市场预期的效应。这些预期随后在图表中显现。
仓位管理:基于盈亏退出,而非情绪
基于情绪转变退出交易太晚了。解析器有延迟,你会损失利润。最优方法:在开仓最大盈亏回撤 3% 时获利了结。
示例:如果仓位达到 +10%,在 +7% 退出。这能锁定 97% 的收益,即使新闻尚未转变。在 10 次交易中,这可将总回报提升高达 +30%。
风险管理上,使用硬止损和追踪止盈。它们能防范即使最快新闻系统也错过的突发反转。
关键要点
- 将向量搜索与 LLM 分离:前者发现情绪,后者解读它。
- 24 小时窗口最优:更短增加噪音,更长丢失方向。
- 权威域名 > 监管机构:市场对解读反应,而非事实。
- 基于盈亏退出,而非信号:每笔盈利交易节省 3%。
- 过滤无时间文章:它们会扭曲回测。
— Editorial Team
暂无评论。