一、信号生成基础:什么是交易信号?

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

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

我刚开始做量化的时候,总觉得信号这东西很玄乎。后来发现,它其实就是一组条件判断。条件满足了,信号就出来了。

举个例子:

if 当前价格 > 移动平均线:
    生成买入信号
else:
    生成卖出信号

嗯,就这么简单。但真正落地的时候,坑可不少。

信号的核心三要素

一个交易信号,离不开三个东西:价格、成交量、时间

这三者缺一不可。我见过不少新手,只看价格就做决策,结果被成交量「打脸」。

要素 作用 我踩过的坑
价格 判断趋势和入场点 只看收盘价,忽略了盘中波动
成交量 验证价格变动的真实性 价格突破但量能不足,假突破
时间 确定信号的时效性 用了过时的数据,信号滞后

价格:最直观的信号源

价格是交易信号的「脸面」。你看到涨了,就想买;看到跌了,就想卖。

但这里有个问题:你用哪个价格?

开盘价?收盘价?最高价?最低价?

我个人习惯用收盘价做主要判断。为什么?因为收盘价是市场经过一天博弈后的「共识价」。它比盘中价格更稳定。

重要提醒:别用盘中价格做决策。除非你做高频交易。

我曾经在盘中看到价格突破,立刻买入。结果收盘前价格回落,被套了一整天。

成交量:信号的「验金石」

价格可以骗人,但成交量很难。

你想想看,如果价格涨了,但成交量没跟上,说明什么?说明没人跟风。这种上涨,大概率是假的。

我在项目中遇到过这种情况:

  • 价格突破前高,看起来很强
  • 但成交量只有前几天的三分之一
  • 结果第二天价格直接跌回原形

这就是典型的「量价背离」。信号看起来很美,但成交量出卖了它。

我的经验:成交量至少是过去5日均量的1.5倍,这个信号才值得信任。

时间:信号的「保质期」

每个信号都有有效期。过了这个时间,信号就失效了。

比如:

  • 日内信号:有效期几小时
  • 短线信号:有效期1-3天
  • 中线信号:有效期1-2周
  • 长线信号:有效期1个月以上

我见过有人拿着上周的信号,今天还在用。这不是交易,这是赌博。

避坑指南:我曾经用了一个3天前的信号做入场,结果市场已经反转了。从那以后,我每个信号都打上时间戳,过期自动作废。

信号生成的核心逻辑

说了这么多,信号到底怎么生成?

其实就三步:

  1. 获取数据:价格、成交量、时间
  2. 计算指标:比如移动平均线、RSI、MACD
  3. 条件判断:指标满足条件,就生成信号

下面是我常用的一个信号生成框架:

def generate_signal(data):
    # 1. 计算指标
    ma5 = data['close'].rolling(5).mean()
    ma20 = data['close'].rolling(20).mean()
    volume_avg = data['volume'].rolling(5).mean()
    
    # 2. 条件判断
    buy_condition = (data['close'] > ma5) & (data['close'] > ma20)
    volume_condition = data['volume'] > volume_avg * 1.5
    
    # 3. 生成信号
    if buy_condition.iloc[-1] and volume_condition.iloc[-1]:
        return 'BUY'
    else:
        return 'HOLD'

这个代码很简单,但很实用。我用了好几年,改了几十版,核心逻辑没变过。

信号生成的知识体系

为了让你更直观地理解,我画了一张图:

交易信号生成知识体系 价格 成交量 时间 数据处理:清洗、对齐、归一化 指标计算:MA、RSI、MACD、布林带... 信号生成:BUY / SELL / HOLD

这张图展示了我做信号生成时的完整流程。从三要素出发,经过数据处理、指标计算,最后生成信号。每一步都很关键。

最后说几句

交易信号不是万能的。它只是一个工具,帮你提高胜率。

我见过有人靠一个简单的均线信号,稳定盈利了好几年。也见过有人用复杂的机器学习模型,亏得底朝天。

关键不在于信号有多复杂,而在于你怎么用它。

嗯,这一章就到这里。记住:价格、成交量、时间,这三个东西搞明白了,信号生成就入门了。

专注资料整理