一、信号生成基础:什么是交易信号?
交易信号,说白了就是市场给你的一个「提示」。
它告诉你:现在该买,还是该卖,或者该观望。
我刚开始做量化的时候,总觉得信号这东西很玄乎。后来发现,它其实就是一组条件判断。条件满足了,信号就出来了。
举个例子:
if 当前价格 > 移动平均线:
生成买入信号
else:
生成卖出信号
嗯,就这么简单。但真正落地的时候,坑可不少。
信号的核心三要素
一个交易信号,离不开三个东西:价格、成交量、时间。
这三者缺一不可。我见过不少新手,只看价格就做决策,结果被成交量「打脸」。
| 要素 | 作用 | 我踩过的坑 |
|---|---|---|
| 价格 | 判断趋势和入场点 | 只看收盘价,忽略了盘中波动 |
| 成交量 | 验证价格变动的真实性 | 价格突破但量能不足,假突破 |
| 时间 | 确定信号的时效性 | 用了过时的数据,信号滞后 |
价格:最直观的信号源
价格是交易信号的「脸面」。你看到涨了,就想买;看到跌了,就想卖。
但这里有个问题:你用哪个价格?
开盘价?收盘价?最高价?最低价?
我个人习惯用收盘价做主要判断。为什么?因为收盘价是市场经过一天博弈后的「共识价」。它比盘中价格更稳定。
重要提醒:别用盘中价格做决策。除非你做高频交易。
我曾经在盘中看到价格突破,立刻买入。结果收盘前价格回落,被套了一整天。
成交量:信号的「验金石」
价格可以骗人,但成交量很难。
你想想看,如果价格涨了,但成交量没跟上,说明什么?说明没人跟风。这种上涨,大概率是假的。
我在项目中遇到过这种情况:
- 价格突破前高,看起来很强
- 但成交量只有前几天的三分之一
- 结果第二天价格直接跌回原形
这就是典型的「量价背离」。信号看起来很美,但成交量出卖了它。
我的经验:成交量至少是过去5日均量的1.5倍,这个信号才值得信任。
时间:信号的「保质期」
每个信号都有有效期。过了这个时间,信号就失效了。
比如:
- 日内信号:有效期几小时
- 短线信号:有效期1-3天
- 中线信号:有效期1-2周
- 长线信号:有效期1个月以上
我见过有人拿着上周的信号,今天还在用。这不是交易,这是赌博。
避坑指南:我曾经用了一个3天前的信号做入场,结果市场已经反转了。从那以后,我每个信号都打上时间戳,过期自动作废。
信号生成的核心逻辑
说了这么多,信号到底怎么生成?
其实就三步:
- 获取数据:价格、成交量、时间
- 计算指标:比如移动平均线、RSI、MACD
- 条件判断:指标满足条件,就生成信号
下面是我常用的一个信号生成框架:
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'
这个代码很简单,但很实用。我用了好几年,改了几十版,核心逻辑没变过。
信号生成的知识体系
为了让你更直观地理解,我画了一张图:
这张图展示了我做信号生成时的完整流程。从三要素出发,经过数据处理、指标计算,最后生成信号。每一步都很关键。
最后说几句
交易信号不是万能的。它只是一个工具,帮你提高胜率。
我见过有人靠一个简单的均线信号,稳定盈利了好几年。也见过有人用复杂的机器学习模型,亏得底朝天。
关键不在于信号有多复杂,而在于你怎么用它。
嗯,这一章就到这里。记住:价格、成交量、时间,这三个东西搞明白了,信号生成就入门了。