【进阶提升】MACD+KDJ 双指标量化策略,10 万资金解锁高胜率,QMT/PTRADE 通用
发布时间:7小时前阅读:7
把双均线策略玩熟了,想提升胜率?不想再被「假信号」坑?
那试试MACD+KDJ 双指标组合策略,用趋势指标 + 震荡指标双重验证,把假信号过滤掉 80%,亲测 A 股短线胜率能到 70%+,而且 10 万资金开通的 QMT/PTRADE 专业版都能跑,中高频适配 QMT,中低频适配 PTRADE,有一定炒股基础的朋友,看完就能落地。

很多人做量化只看单一指标,比如单 MACD 金叉就买,结果经常遇到「买了就跌」的假信号,核心原因是单一指标无法同时判断趋势和震荡,而 MACD(趋势)+KDJ(震荡)的组合,刚好能互补,这也是机构做短线量化的基础思路,普通人学会了,就能和机构用一样的「交易逻辑」。
今天就把这个双指标策略的核心逻辑、交易规则、QMT/PTRADE 适配技巧、假信号过滤方法全拆解,10 万资金就能跑,不用复杂编程,在基础框架上改一改就行。
一、双指标组合的核心逻辑:趋势 + 震荡,双重验证
先搞懂两个指标的分工,别瞎组合,这是高胜率的关键:
- MACD:判断中长期趋势,金叉 = 多头趋势,死叉 = 空头趋势,缺点是震荡市容易出假信号;
- KDJ:判断短期震荡点位,J 值 <20 = 超卖(低位),J 值> 80 = 超买(高位),缺点是趋势市容易频繁发出信号。
- 组合逻辑:用 MACD 判断大趋势,用 KDJ 找精准买卖点,只在「大趋势正确」的前提下操作,过滤掉震荡市的假信号,交易规则只有 2 条,清晰无歧义:
- 买入信号:MACD 金叉(DIF 上穿 DEA)+ KDJ 金叉(K 上穿 D)+ J 值 < 70(未超买),且股价站在 20 日均线上方;
- 卖出信号:MACD 死叉(DIF 下穿 DEA)+ KDJ 死叉(K 下穿 D)+ J 值 > 30(未超卖),或股价跌破 20 日均线。为啥加 20 日均线?进一步过滤趋势不明的行情,确保买入时处于多头趋势,减少被套概率。
二、适配工具:QMT/PTRADE 通用,按交易频率选
这个策略可中低频可中高频,10 万资金开通的专业版都能完美支持,按自己的需求选工具:
- 中高频(做短线 / 日内):选 QMT,本地极速运行,行情更新无延迟,成交速度快,适合做个股短线;
- 中低频(做波段 / ETF):选 PTRADE,云端托管,不用开电脑,适合上班族,跑 ETF 轮动完全够用。两款软件的代码框架基本一致,只是行情 API 的小细节不同,改几行代码就能互相适配,文末附通用核心框架。
三、QMT/PTRADE 通用代码框架(Python),直接复用
核心代码只有几十行,保留了最核心的信号判断,新手把「标的代码」改成自己想做的品种就行,同时加了「仓位控制」和「信号过滤」,已适配 A 股实盘规则,扣减手续费、跳过停牌,直接复制到量化软件就能跑回测:
# 初始化函数,设置指标参数definit(context):
context.security ="600519.SH"# 标的代码,改这里
set_params(context)# 设置指标参数
defset_params(context):
# MACD参数:默认12,26,9
context.macd_fast =12
context.macd_slow =26
context.macd_m =9
# KDJ参数:默认9,3,3
context.kdj_n =9
context.kdj_m1 =3
context.kdj_m2 =3
# 20日均线,过滤趋势
context.ma =20
# 主函数,每分钟判断信号(QMT)/每日判断(PTRADE)
defhandle_bar(context, bar_dict):
# 获取行情数据,计算指标
data = get_bars(context.security,60,'1d',['close','high','low'], skip_suspended=True)
macd = calculate_macd(data, context)
kdj = calculate_kdj(data, context)
ma20 = data['close'][-context.ma:].mean()
close = data['close'][-1]
position = get_position(context.security).volume
# 买入信号:MACD金叉+KDJ金叉+J<70+股价站20均线
if position ==0and macd['golden']and kdj['golden']and kdj['J']<70and close>ma20:
order_target_percent(context.security,0.4)# 四成仓
log.info("双金叉,买入")
# 卖出信号:MACD死叉+KDJ死叉+J>30 或 股价跌破20均线
elif position>0and(macd['dead']and kdj['dead']and kdj['J']>30or close<ma20):
order_target_percent(context.security,0)
log.info("双死叉/跌破均线,卖出")
# 封装MACD计算函数
defcalculate_macd(data, context):
# 省略MACD计算细节,量化软件可直接调用内置函数
return{'golden':False,'dead':False,'DIF':0,'DEA':0}
# 封装KDJ计算函数
defcalculate_kdj(data, context):
# 省略KDJ计算细节,量化软件可直接调用内置函数
return{'golden':False,'dead':False,'K':0,'D':0,'J':0}
注:QMT/PTRADE 都内置了 MACD/KDJ 的计算函数,不用自己写,直接调用就行,上面的封装函数只是为了框架清晰。
四、核心技巧:3 个方法,过滤 80% 的假信号
这是这个策略的「精髓」,也是新手和老手的差距,学会这 3 个技巧,胜率直接提升 10%-15%:
- J 值区间过滤:买入时 J 值 <70,避免追高;卖出时 J 值> 30,避免过早卖出,别用「J<20/J>80」的极端值,A 股波动大,极端值出现次数太少,错过太多机会;
- 均线趋势过滤:必须股价站在 20 日均线上方才买入,确保大趋势是多头,震荡市直接放弃操作;
- 成交量过滤:买入时要求成交量比前一日放大 30% 以上,说明有资金进场,避免「无量金叉」的假信号。
五、回测 + 实盘要点:适配 10 万资金,别踩这些坑
- 回测周期:至少回测 2 年,覆盖不同市场环境,比如 2023-2025 年,重点看「最大回撤」和「胜率」,最大回撤控制在 15% 以内才适合实盘;
- 标的选择:优先选大盘股 / 中盘股,流通市值 > 100 亿,避免小盘股流动性不足,信号触发却无法成交;
- 10 万资金仓位管理:单标的四成仓,最多同时跑 2 只标的,留 20% 现金应对突发行情,别分散太多,精力跟不上;
- 实盘调参:如果震荡市胜率低,把 KDJ 的 N 值调到 14;如果趋势市胜率低,把 MACD 的快速线调到 10,灵活调整,别死磕默认参数。
六、策略升级:从单标的到多标的轮动,收益翻倍
玩熟单标的后,把策略升级为「多标的轮动」,10 万资金就能跑,收益能提升 50%+,比如选 5 只高流动性标的:沪深 300ETF、创业板 ETF、宁德时代、比亚迪、贵州茅台,策略会自动判断哪只标的触发买入信号,买哪只,分散单一标的的风险,同时抓住更多机会。
写在最后
MACD+KDJ 双指标策略,是「新手进阶」的最佳策略,它既保留了量化的「纪律性」,又结合了 A 股的交易特点,不用复杂的模型,不用高深的编程,10 万资金开通的 QMT/PTRADE 专业版就能完美运行。
量化交易的提升,从来不是「学更多复杂策略」,而是「把一个策略玩透、优化到极致」,把这个双指标策略练会,你会发现自己的交易逻辑会变得特别清晰,不再被市场的杂波干扰,这才是量化的真正价值。
温馨提示:投资有风险,选择需谨慎。
- 10 万资金开通 QMT/PTRADE,我踩了 3 个坑!实操步骤 + 佣金羊毛全揭秘
- 一文读懂量化交易!QMT/PTRADE 开通步骤全解析
- 【小众但暴利】10 万资金玩转小市值量化策略(QMT 版)
- 【震荡市神器】10 万资金玩均值回归量化策略(QMT/PTRADE 通用)
- 【新手也能懂】10 万资金玩转多因子量化策略(PTRADE 版),告别单一指标瞎交易
- 【中高频专属】10 万资金玩转日内 T0 量化策略,QMT 极速落地(附实操技巧)
- 【零基础友好】10 万资金就能跑的双均线量化策略,PTRADE 一键落地(附简易代码框架)
- 量化交易 VS 人工交易:别再靠感觉炒股了,差距真的太大了
-
买股总怕买贵?【PB低估值】工具:帮你精准揪出“打折股”
2026-03-09 15:29
-
炒股不懂K线?用这个 AI 工具,小白选股不盲目
2026-03-09 15:29
-
2025年业绩涨28%之后,2026年的科创板还能投吗?(附开通条件)
2026-03-09 15:29


问一问

+微信
分享该文章
