本文承接上篇《揭秘成交量的核心秘密:从传统指标缺陷到 AMA 自适应均线的量化突破》,基于《成交量的奥秘:另类价量共振指标的择时》专业研究报告,完整拆解价量共振策略的构建步骤、回测数据与 QMT 量化落地方法,所有公式与参数均经过 15 年全市场数据验证。
前言
在上篇中我们已经验证:传统 OBV、成交量均线因灵敏度固定,实战中频繁发出虚假信号;而AMA 自适应均线通过动态调节灵敏度,完美解决了 "震荡期乱信号、趋势期跟不上" 的痛点。
但单一的量能指标仍不足以判断趋势真伪,只有当价格动能与成交量能形成共振时,交易信号的可靠性才会大幅提升。本文将手把手教你构建这套经过 15 年市场验证的价量共振量化策略,彻底摆脱散户交易魔咒。
一、价量共振策略的完整构建步骤
本策略核心逻辑:通过价格趋势强度 与成交量活跃度的乘积,量化市场真实热度,只有当二者同时向上加速时,才发出做多信号。
1.1 计算成交量的双周期 AMA 均线
采用长短双周期 AMA 均线衡量量能变化,替代传统固定参数均线:
- 短期量能均线:
AMA5 = 成交量的5日自适应移动平均线(捕捉短期资金异动) - 长期量能均线:
AMA100 = 成交量的100日自适应移动平均线(衡量长期量能基准)
1.2 计算价格的 BMA 趋势均线
采用 50 日简单移动平均线作为价格趋势基准,过滤短期价格噪音:
- 价格趋势均线:
BMA = 收盘价的50日移动平均线(报告最优参数)
1.3 计算 "价能"(价格趋势强度)
价能反映当前价格趋势相比近期的加速程度:
\(价能 = \frac{今日BMA}{N日前的BMA}\)
- 报告最优参数:
N=3(观察 3 天内的趋势变化) - 价能 > 1:价格趋势向上加速
- 价能 < 1:价格趋势向下减速或走平
1.4 计算 "量能"(成交量活跃度)
量能反映当前成交量相比长期基准的放大程度:
\(量能 = \frac{短期量能均线(AMA5)}{长期量能均线(AMA100)}\)
- 量能 > 1:近期成交活跃,资金持续涌入
- 量能 < 1:近期成交清淡,资金观望情绪浓厚
1.5 计算核心 "价量共振指标"
将价能与量能相乘,得到最终的共振指标,实现价格与成交量的双重验证:
\(价量共振指标 = 价能 \times 量能\)
二、策略交易信号规则与实战案例
2.1 标准交易信号
- 做多信号 :当价量共振指标 > 阈值(报告最优值
1.15)时,全仓或分批买入 - 平仓信号:当价量共振指标 ≤ 阈值时,全部平仓观望
- 本策略默认只做多,不做空,适合 A 股市场单边交易特性
2.2 实战案例解析
案例 1:标准做多信号
假设某只 ETF:
- 3 天前 50 日 BMA = 10 元,今日 BMA = 10.5 元 → 价能 = 10.5/10 = 1.05
- 100 日 AMA 成交量 = 1000 万股,5 日 AMA 成交量 = 1300 万股 → 量能 = 1300/1000 = 1.3
- 价量共振指标 = 1.05 × 1.3 = 1.365 > 1.15 → 发出做多信号
解读:价格趋势加速上涨 5%,同时成交量放大 30%,量价完美配合,趋势可信度极高。
案例 2:诱多陷阱信号
假设同一只 ETF:
- 3 天前 50 日 BMA = 10 元,今日 BMA = 10.5 元 → 价能 = 1.05
- 100 日 AMA 成交量 = 1000 万股,5 日 AMA 成交量 = 800 万股 → 量能 = 0.8
- 价量共振指标 = 1.05 × 0.8 = 0.84 < 1.15 → 不操作
解读:典型的 "无量上涨",没有资金跟风,上涨缺乏持续性,大概率是诱多陷阱。
三、15 年全市场回测数据验证
研究团队采用 2004-2019 年长达 15 年的历史数据,对上证综指、沪深 300、创业板指等 18 个主流宽基指数进行回测,参数设置如下:
- AMA 短期:5 日,AMA 长期:100 日
- BMA 价格均线:50 日
- 价能计算周期 N:3 日
- 共振阈值:1.15
3.1 核心回测指标
表格
| 指标 | 策略表现 | 市场基准平均 | 提升幅度 |
|---|---|---|---|
| 年化收益 | 13.71% | 6.82% | +101% |
| 交易胜率 | 56.35% | 50% | +6.35% |
| 盈亏比 | 1.828 | 1.0 | +82.8% |
| 最大回撤 | 20.34% | 55.67% | -63.5% |
| 夏普比率 | 0.761 | 0.21 | +262% |
| 卡玛比率 | 0.743 | 0.12 | +519% |

图 1:价量共振策略在各宽基指数的收益表现(红线为策略收益,蓝线为基准指数)
3.2 回测结论
从回测结果可以清晰看到:
- 策略在所有 18 个宽基指数上均跑赢大盘,年化收益是基准的 2 倍以上
- 最大回撤仅 20.34%,远低于市场平均 55.67% 的回撤,风险控制能力优秀
- 在 2007、2015 年牛市中精准捕捉主升浪,在 2008、2018 年熊市中及时空仓避险
- 盈亏比达到 1.828,意味着每赚 1 元仅需承担 0.55 元的亏损,长期盈利确定性高
四、QMT 量化平台完整落地实现
这套价量共振策略逻辑清晰、参数固定,非常适合通过 QMT 量化终端实现自动化交易,以下是核心实现步骤:
4.1 核心代码片段(Python)
# 导入QMT内置库
import pandas as pd
import numpy as np
from xtquant import xtconstant
from xtquant.xttrader import XtQuantTrader
# 计算AMA自适应均线
def calculate_ama(series, fast_period=2, slow_period=30):
er = abs(series.diff(periods=fast_period)) / abs(series.diff()).rolling(window=fast_period).sum()
sc = (er * (2/(fast_period+1) - 2/(slow_period+1)) + 2/(slow_period+1)) ** 2
ama = pd.Series(index=series.index)
ama.iloc[0] = series.iloc[0]
for i in range(1, len(series)):
ama.iloc[i] = ama.iloc[i-1] + sc.iloc[i] * (series.iloc[i] - ama.iloc[i-1])
return ama
# 计算价量共振指标
def calculate_price_volume_resonance(df):
# 计算成交量AMA
df['ama5'] = calculate_ama(df['volume'], fast_period=5)
df['ama100'] = calculate_ama(df['volume'], fast_period=100)
# 计算价格BMA
df['bma50'] = df['close'].rolling(window=50).mean()
# 计算价能和量能
df['price_energy'] = df['bma50'] / df['bma50'].shift(3)
df['volume_energy'] = df['ama5'] / df['ama100']
# 计算共振指标
df['resonance'] = df['price_energy'] * df['volume_energy']
return df
4.2 策略部署流程
- 在 QMT 中导入上述代码,编写策略回测函数
- 导入全市场 ETF、个股历史数据,进行参数优化与回测验证
- 设置风控规则:单票仓位上限 10%、单日最大亏损 5%、总仓位上限 80%
- 部署到云服务器,实现 7×24 小时自动扫描信号与交易执行
五、策略核心启示与优化方向
5.1 核心启示
- 成交量是核心指标而非辅助:它反映了市场参与者的真金白银态度,比价格更真实
- 单一维度永远不够:价格 × 成交量的乘积,才是市场真实的 "温度"
- 量化是科学而非玄学:所有参数都经过 15 年数据、18 个指数验证,公式透明可复现
- 风控是长期盈利的前提:本策略通过空仓机制大幅降低熊市回撤,这是跑赢大盘的关键
5.2 进阶优化方向
- 加入市场状态识别:牛市提高阈值,熊市降低阈值,动态调整参数
- 叠加基本面因子:筛选低估值、高 ROE 的标的,进一步提升胜率
- 加入止损机制:当单只标的亏损超过 8% 时强制止损,控制单笔亏损
结语
"一买就跌一卖就涨" 的本质,是散户只看价格表象,忽略了资金博弈的本质 ------ 成交量。这套价量共振策略通过量化的方式,将价格与成交量的逻辑标准化、规则化,用 15 年的市场数据证明了其有效性。
当然,没有任何策略可以稳赚不赔,市场风格突变、黑天鹅事件仍会造成阶段性亏损。但通过严格的量化执行与风控管理,我们可以大幅提高长期盈利的概率,摆脱情绪化交易的魔咒。
风险提示:本文仅为技术分析与量化策略分享,不构成任何投资建议。量化策略过往回测收益不代表未来实盘盈利,投资有风险,入市需谨慎。
原创不易,如果觉得文章对你有帮助,欢迎点赞、收藏、关注!后续将分享该策略的完整 QMT 可运行代码,以及针对 ETF、可转债的专属优化版本。
需要我补充完整可直接运行的 QMT 策略代码 ,或是帮你生成一份回测报告模板吗?