第一章:交易信号概述

什么是交易信号

交易信号,说白了就是市场给你的一个「提示」。

它告诉你:现在该买,还是该卖,或者该空仓观望。

我刚开始做量化的时候,总觉得信号这东西很玄乎。后来才明白,它其实就是一组条件判断的结果。比如:

  • 当5日均线上穿20日均线 → 买入信号
  • 当RSI超过80 → 超买信号
  • 当成交量突然放大3倍 → 异动信号

每个信号背后,都对应着一个具体的市场行为。你想想看,如果没有信号,交易就变成了瞎猜。有了信号,至少我们有了一个「依据」。

核心定义:交易信号 = 市场数据 + 规则引擎 → 交易决策

信号在量化交易中的角色

量化交易系统通常分三块:数据层、策略层、执行层。

信号就处在策略层的核心位置。它连接了原始数据和最终交易。

层级 功能 信号的作用
数据层 获取行情、清洗数据 信号依赖的「原材料」
策略层 生成信号、管理仓位 信号是策略的「输出」
执行层 下单、风控、记录 信号是执行的「指令」

我个人习惯把信号比作「红绿灯」。没有红绿灯,路口就乱套了。没有信号,交易系统就是一盘散沙。

我在项目中遇到过一件事:有个同事写了个策略,信号生成逻辑没问题,但执行层延迟太高。信号出来时,价格已经变了。结果呢?信号变成了「马后炮」。所以信号不仅要准,还要快。

信号生成的基本流程

信号生成不是一步到位的。它有一套标准流程。我总结为四步:

  1. 数据准备:获取原始行情数据,做清洗和标准化
  2. 特征计算:根据原始数据计算技术指标或统计量
  3. 规则匹配:将特征值与预设规则进行比对
  4. 信号输出:生成具体的交易指令(买入/卖出/持有)

举个例子,一个简单的均线交叉信号:

# 伪代码示例
def generate_signal(price_data):
    # 第一步:计算均线
    ma5 = SMA(price_data, window=5)
    ma20 = SMA(price_data, window=20)
    
    # 第二步:判断交叉
    if ma5[-2] < ma20[-2] and ma5[-1] > ma20[-1]:
        return 'BUY'
    elif ma5[-2] > ma20[-2] and ma5[-1] < ma20[-1]:
        return 'SELL'
    else:
        return 'HOLD'

避坑指南:我曾经犯过一个低级错误——直接用未清洗的数据算信号。结果因为数据里有停牌日的空值,信号全乱了。后来我养成了一个习惯:信号生成前,先做一次数据完整性检查。

信号的质量标准

不是所有信号都值得执行。我一般用三个维度来评估:

  • 准确性:信号出现后,市场走势是否如预期?
  • 及时性:信号是否在行情启动前发出?
  • 稳定性:信号是否频繁闪烁?会不会刚买入就反转?

嗯,这里要注意:信号质量不是越高越好。有时候信号准确率80%,但一年只出现两次,那也没用。你得在频率和准确率之间找平衡。

重要提醒:信号只是概率,不是预言。我见过太多人把信号当成了「圣杯」。记住,任何信号都有失效的时候。风控永远比信号本身更重要。

小结

交易信号,本质上是一个「决策辅助工具」。它帮你把模糊的市场感觉,转化成清晰的交易指令。

接下来的章节,我会带你深入每种信号的具体实现。从最简单的均线,到复杂的机器学习模型。一步步来,别急。

记住一句话:好的信号,不是预测未来,而是管理不确定性。

公众号:蓝海资料掘金营,微信deep3321