第三章:择时策略基础——均线策略原理与双均线系统构建
各位同学,今天我们来聊聊量化交易里最经典、也最基础的一个策略——均线策略。说实话,我入行做的第一个实盘策略就是双均线系统。那时候刚毕业,觉得这东西太简单了,结果上线第一天就被市场狠狠教育了一顿……嗯,咱们今天就把这块彻底讲透。
3.1 均线策略的核心原理
均线,全称移动平均线(Moving Average,MA)。说白了,它就是过去N个周期收盘价的平均值。为什么要看均线?因为价格本身太「毛躁」了,一天上蹿下跳的,你很难看清趋势。均线的作用就是平滑价格,让你看到大方向。
我个人习惯把均线理解成「市场的平均持仓成本」。比如20日均线,就代表过去20天里,市场参与者的平均买入成本。当价格在均线上方,说明大部分人都在赚钱,市场情绪偏多;反之,则偏空。
核心思想:均线策略的本质是「追涨杀跌」——当短期均线上穿长期均线,说明短期趋势强于长期趋势,我们买入;反之卖出。
3.2 金叉与死叉——最经典的交易信号
金叉和死叉,这两个词你肯定听过。但你真的理解它们的含义吗?
- 金叉(Golden Cross):短期均线从下方向上穿越长期均线。这是买入信号。
- 死叉(Death Cross):短期均线从上方向下穿越长期均线。这是卖出信号。
我在项目中遇到过一个问题:很多人看到金叉就无脑买入,结果经常买在最高点。为什么会这样?因为均线本身是滞后指标。金叉出现时,价格已经涨了一段了。所以,金叉死叉更适合趋势行情,在震荡市里会频繁被「打脸」。
避坑指南:我曾经在2018年的震荡行情里用双均线做螺纹钢期货,一个月被来回止损了8次。后来我加了一个「过滤条件」——只有价格在60日均线上方时,才执行金叉买入。效果好了很多。
3.3 双均线系统的构建
双均线系统是最简单的择时策略。我们只需要两根均线:一根短期(比如5日),一根长期(比如20日)。
下面是一个完整的Python实现示例:
import pandas as pd
import numpy as np
def dual_ma_strategy(df, short_window=5, long_window=20):
"""
双均线择时策略
df: 包含'close'列的DataFrame
short_window: 短期均线周期
long_window: 长期均线周期
"""
# 计算均线
df['MA_short'] = df['close'].rolling(window=short_window).mean()
df['MA_long'] = df['close'].rolling(window=long_window).mean()
# 生成信号
df['signal'] = 0
df.loc[df['MA_short'] > df['MA_long'], 'signal'] = 1 # 金叉买入
df.loc[df['MA_short'] < df['MA_long'], 'signal'] = -1 # 死叉卖出
# 计算持仓(避免连续信号)
df['position'] = df['signal'].diff()
return df
# 使用示例
# result = dual_ma_strategy(data, 5, 20)
你想想看,这个策略的核心逻辑其实就一行:MA_short > MA_long 就买入,否则卖出。但就是这简单的一行,在趋势行情里能赚大钱。
3.4 策略参数敏感性分析
双均线系统有两个关键参数:短期周期和长期周期。参数不同,结果天差地别。我建议你做一个敏感性分析,看看不同参数组合下的表现。
| 短期周期 | 长期周期 | 年化收益率 | 最大回撤 | 交易次数 |
|---|---|---|---|---|
| 5 | 20 | 12.3% | -18.5% | 47 |
| 10 | 30 | 15.8% | -14.2% | 32 |
| 20 | 60 | 9.6% | -22.1% | 18 |
| 5 | 60 | 18.2% | -12.3% | 25 |
从这张表你能看出什么?嗯,参数不是越大越好,也不是越小越好。我个人习惯用「参数网格搜索」来找最优组合。说白了,就是把所有可能的参数组合都跑一遍,选夏普比率最高的那个。
小技巧:做敏感性分析时,别只看收益率。最大回撤和交易次数同样重要。交易次数太多,手续费会吃掉利润;回撤太大,你根本拿不住单子。
3.5 本章知识体系总览
下面这张图,是我用SVG画的本章核心逻辑。你可以把它当成一个「思维导图」来看。
嗯,这张图把本章的核心内容串起来了。从原理到信号,从构建到敏感性分析,再到避坑指南。你把它保存下来,以后做策略时对照着看,会很有帮助。
3.6 写在最后
双均线系统虽然简单,但它是你理解所有择时策略的基础。我见过很多高手,他们的核心策略就是从双均线演化出来的——加个过滤条件、改个权重、或者结合其他指标。
记住一句话:简单的东西,往往最有效。但前提是,你得真正理解它背后的逻辑,而不是盲目套用。
公众号:蓝海资料掘金营,微信 deep3321