1. 课程导入

欢迎进入《Transformer交易信号预测实战》。在正式写模型之前,我们需要先建立一张清晰的“作战地图”:我们要预测什么、为什么用Transformer、数据如何流动、模型如何评估、以及怎样把预测结果变成可执行的交易信号。本章不涉及复杂公式推导,而是帮你建立全局认知,避免后续陷入“只会调包、不懂因果”的困境。

一、学习目标:你最终要掌握什么

本课程的目标不是训练一个“看起来很准”的模型,而是构建一条从原始行情到交易决策的完整链路。学完后,你应当能够独立完成以下任务:

  • 数据层:获取并清洗K线、成交量、盘口等时序数据,构造无未来函数泄漏的特征与标签。
  • 模型层:理解自注意力机制为何适合捕捉多周期、跨资产的依赖关系,并能搭建编码器式Transformer预测器。
  • 训练层:掌握时间序列切分、损失函数选择、学习率调度与过拟合监控。
  • 评估层:用IC、RankIC、分层回测、胜率、盈亏比等指标判断信号质量,而非只看准确率。
  • 落地层:把预测值映射为仓位、止损止盈与交易成本约束下的可执行策略。
提示:交易信号预测属于“弱信号、高噪声”问题。任何声称单模型稳定高准确率的方案都值得怀疑,工程重点在于稳健的特征、严格的验证和风险控制。

二、核心概念:先统一语言

在后续章节中,以下概念会反复出现,请先建立直觉:

概念含义在本课程中的角色
时间序列窗口用过去N根K线预测未来M根收益决定模型输入输出形状
自注意力让每个时间步动态关注其他时间步捕捉长程与多周期依赖
位置编码为序列注入顺序信息弥补注意力本身的无序性
标签泄漏训练时使用了未来信息最常见的致命错误
IC / RankIC预测值与未来收益的相关性衡量信号方向性
分层回测按预测值分组检验收益单调性验证信号可交易性

其中,标签泄漏是新手最容易踩的坑。例如用当日收盘价计算的特征去预测当日收益,或标准化时使用了全样本均值,都会让回测结果虚高。课程中我们会用严格的滚动窗口和“训练集统计量”来规避。

三、整体框架与实战路线图

整个项目可以拆成五个阶段,形成闭环迭代:数据准备 → 特征工程 → 模型构建 → 训练验证 → 信号回测。下图展示了从原始行情到交易信号的完整数据流与关键判断点。

原始行情 K线/成交量/盘口 特征工程 滚动窗口/标准化 Transformer 编码器+预测头 训练验证 IC/损失/早停 信号回测 分层/成本/仓位 迭代优化 特征/超参/风控 闭环迭代:回测结果反哺特征与模型,而非一次性训练 关键判断点:无泄漏、样本外验证、交易成本、风险约束

路线图的核心逻辑是闭环迭代:回测不理想时,优先检查特征与标签构造,再调整模型结构,最后才考虑堆叠更复杂的网络。很多初学者一上来就追求深层Transformer,却忽略了数据质量,结果事倍功半。

四、典型场景与常见误区

假设我们要预测某只股票未来5日的收益率方向。一个合理的流程是:用过去60根K线的量价特征作为输入,输出未来5日收益的预测值,再按预测值排序做多头部、做空尾部。这个场景贯穿课程始终。

以下是新手最常犯的四类错误,请务必警惕:

  1. 未来函数:用当日收盘价计算的特征预测当日收益,或标准化时用了全样本统计量。
  2. 随机切分:时间序列必须按时间顺序切分,随机打乱会让模型“偷看”未来。
  3. 只看准确率:涨跌样本不平衡时,准确率毫无意义,应关注IC与分层收益。
  4. 忽略成本:高频调仓在扣除手续费和滑点后可能由盈转亏。
警告:任何回测结果在未扣除交易成本、未做样本外验证之前,都不具备参考价值。课程后续会提供统一的回测框架,确保评估口径一致。

五、环境与代码准备

课程使用Python生态,建议提前安装以下依赖。后续章节的代码均基于此环境:

# 建议使用 Python 3.9+
pip install torch numpy pandas scikit-learn matplotlib
pip install ta tushare  # 技术指标与数据获取(可选)

一个最小可运行的数据窗口构造示例如下,它体现了“用过去预测未来”的基本思想:

import numpy as np

def make_windows(series, lookback=60, horizon=5):
    X, y = [], []
    for i in range(lookback, len(series) - horizon):
        X.append(series[i - lookback:i])
        y.append(series[i + horizon] / series[i] - 1)  # 未来收益
    return np.array(X), np.array(y)

# series 为按时间排序的收盘价序列
# X.shape = (样本数, 60),y.shape = (样本数,)

注意这里y使用的是i+horizon时刻的价格,与i时刻的特征严格错开,避免泄漏。这个简单函数会在后续章节被扩展为多特征、多资产的张量形式。

六、本章复盘

本章建立了课程的全局框架:以“数据→特征→模型→训练→回测”为主线,以无泄漏和样本外验证为底线,以IC和分层收益为核心评估指标。请记住三个关键词:时序因果、弱信号、风险优先。接下来的章节将逐层展开,从数据获取与特征构造开始,一步步带你搭建属于自己的Transformer交易信号系统。