圣杯/双均线策略

我大概在今年 4 月底开始尝试使用一种最简单的量化交易策略: 双均线策略. 这是一种趋势跟踪策略, 该策略需要两条移动平均线, 分为快线和慢线. 当快线从下往上穿过慢线, 为黄金交叉, 开仓做多; 当快线从上往下穿过慢线, 为死亡交叉, 开仓做空.

均线理论的底层逻辑是资产的长期价格呈现均值回复的特征, 即从长期来看, 资产的价格会回归均值.

双均线策略的实现十分简单, 几乎是所有量化选手的入门课程. 例如在 TradingView 上实现双均线策略只需要短短几行代码:

//@version=5
strategy("MA", overlay=true, initial_capital=10000, default_qty_value=10, default_qty_type=strategy.percent_of_equity)

fastPeriod = input(3, 'fast')
slowPeriod = input(8, 'slow')

fast = ta.sma(close, fastPeriod)
slow = ta.sma(close, slowPeriod)
plot(fast)
plot(slow)
if (ta.crossover(fast, slow))
    strategy.entry("L", strategy.long)
if (ta.crossunder(fast, slow))
    strategy.entry("S", strategy.short)

双均线策略的缺陷

均线归根到底是一种平均值, 平均值在应用过程中存在最大的问题就是其滞后性. 当出现买入卖出信号时, 最佳时机早已过去. 举例来说, 如果 A 股票最新价格出现了较大的涨幅, 股价和均线都上涨, 但均线的速度慢于股价上涨速度. 此时, 从形态上来看, 金叉出现, 为买入信号. 次日, 股价回调, 股价下降的速度快于均线下降的速度, 形成死叉, 为卖点. 这样一买一卖不仅没有盈利, 反而出现亏损.

双均线策略可以在大趋势行情中获得丰厚的利润, 但会在震荡行情中不断亏损. 通常情况下, 无论如何调整快线和慢线的参数, 策略胜率最高也只在 30% 左右.

均线选择

常见的均线指标有 sma, ema, rma, dema 等, 根据需要可自行选择, 但我实盘测试下来发现最简单的 sma 在双均线策略上效果往往比那些改进的均线指标效果更好, 这是一个很反常识的一个事情.

双均线策略的改进

双均线策略只有两个参数: 短线周期和长线周期. 是否能盈利几乎完全取自这两个参数的选择. 如果短线周期和长线周期过于接近, 那么短线和长线将会频繁交叉, 不停触发止损, 导致损失; 过于远离, 又会导致入场点和出场点严重滞后, 很可能你入场的时候趋势就已经结束了.

为了尝试解决这个问题, 我选择了最笨拙的方法: 遍历. 量化策略每固定时间便下载历史 K 线图数据, 然后遍历一定范围内全部的的短线周期和长线周期取值, 选取其中获益最大的参数组合, 作为未来一段时间的参数执行. 不过历史证明这并没有什么卵用, 长达几个月的时间实盘运行后, 账户仍然是亏损状态, 因此我放弃了这个量化策略.