MACD趋势预测指标公式-副图

Viewed 29

MACD预判趋势指标公式(N次的小损失可能带来的是大趋势,多回测 理性对待):

{=== MACD副图指标 ===}
 {版本:1.0 | 日期:2025-12-28 来源:Hupixia}
 
 {MACD计算}
 DIF := EMA(CLOSE, 12) - EMA(CLOSE, 26);
 DEA := EMA(DIF, 9);
 MACD := (DIF - DEA) * 2;
 
 {绘制MACD}
 DIF线: DIF, COLORWHITE, LINETHICK1;
 DEA线: DEA, COLORYELLOW, LINETHICK1;
 MACD柱: MACD, STICK, LINETHICK2;
 MACD柱正: IF(MACD >= 0, MACD, 0), STICK, COLORRED;
 MACD柱负: IF(MACD < 0, MACD, 0), STICK, COLORGREEN;
 
 {零轴}
 零轴: 0, COLORWHITE, LINETHICK1;
 
 {自定义买入卖出信号}
 {买入条件:DEA由负变正,随后MACD连续三根柱递增(无论正负)}
 DEA金叉零轴 := CROSS(DEA, 0);
 距离DEA金叉天数 := BARSLAST(DEA金叉零轴);
 
 {买入条件:DEA金叉后,MACD连续三根柱一次比一次值大(无论正负)}
 买入条件 := 
     距离DEA金叉天数 <= 3 AND 距离DEA金叉天数 > 0 AND  {DEA金叉发生在1-3天前,确保是金叉后}
     MACD > REF(MACD, 1) AND REF(MACD, 1) > REF(MACD, 2);  {连续三根MACD柱递增}
 
 {卖出条件:DEA由正变负,随后MACD连续三根柱递减(无论正负)}
 DEA死叉零轴 := CROSS(0, DEA);
 距离DEA死叉天数 := BARSLAST(DEA死叉零轴);
 
 {卖出条件:DEA死叉后,MACD连续三根柱一次比一次值小(无论正负)}
 卖出条件 := 
     距离DEA死叉天数 <= 3 AND 距离DEA死叉天数 > 0 AND  {DEA死叉发生在1-3天前,确保是死叉后}
     MACD < REF(MACD, 1) AND REF(MACD, 1) < REF(MACD, 2);  {连续三根MACD柱递减}
 
 {绘制信号:只显示自定义买卖信号}
 DRAWICON(买入条件, DIF, 1);  {笑脸-自定义买入}
 DRAWICON(卖出条件, DIF, 2);  {哭脸-自定义卖出}
 
 {超买超卖线}
 超买线: 0.5, COLORRED, LINETHICK1;
 超卖线: -0.5, COLORGREEN, LINETHICK1;

很不错的指标

厉害了,这个可以测试以下

1 Answers

买卖信号 :

  • 买入信号:DEA > 0,MACD连续正数且递增 → 笑脸图标
    买入信号逻辑详解:DEA由负变正且大于0,MACD值由负变正
    (假设DEA由负变正且大于0,MACD值由负变正 示例1:0.0120、0.0118、0.0245、0.0294,这四组值就不符合给出买入信号,因为第1组值虽然上涨,但第2组值下跌了,第3、4组值虽然上涨但不符合买入信号,MACD值由负变正 示例2:0.0120、0.0128、0.0245、0.0294,这四组值就符合买入信号,因为第1组值上涨,但第2组值上涨了,第3、4组值上涨,第3组值的时候就可以给出买入信号了 )

  • 卖出信号:DEA < 0,MACD连续负数且递减 → 哭脸图标
    卖出信号逻辑详解:DEA由正变负且小于0,MACD值由正变负
    (假设DEA由正变负且小于0,MACD值由正变负 示例1:-0.0120、-0.0118、-0.0245、-0.0294,这四组值就不符合给出卖出信号,因为第1组值虽然下涨,但第2组值上涨了,第3、4组值虽然下涨但不符合卖出信号,MACD值由正变负 示例2:-0.0120、-0.0128、-0.0245、-0.0294,这四组值就符合卖出信号,因为第1组值下涨,但第2组值下涨了,第3、4组值下涨,第3组值的时候就可以给出卖出信号了 )

买入信号逻辑

  • DEA > 0(DEA必须是正数)
  • 当前和前两根MACD都是正数
  • 连续三根严格递增:当前 > 前1 > 前2
  • 完全符合您的示例2:0.0120 > 0.0128 > 0.0245 → 连续三根严格递增

卖出信号逻辑

  • DEA < 0(DEA必须是负数)
  • 当前和前两根MACD都是负数
  • 连续三根严格递减:当前 < 前1 < 前2
  • 完全符合您的示例2:-0.0120 < -0.0128 < -0.0245 → 连续三根严格递减
{=== MACD趋势副图指标 ===}
 {版本:1.0 | 版权:Hupixia | 日期:2025-12-28}
 
 {MACD计算}
DIF := EMA(CLOSE, SHORT) - EMA(CLOSE, LONG);
DEA := EMA(DIF, M);
MACD := (DIF - DEA) * 2;

{背离计算}
N := 5;  {背离判断周期}

{价格新高/新低}
价格新高 := CLOSE > REF(HHV(CLOSE, N), 1);
价格新低 := CLOSE < REF(LLV(CLOSE, N), 1);

{MACD新高/新低}
MACD新高 := MACD > REF(HHV(MACD, N), 1);
MACD新低 := MACD < REF(LLV(MACD, N), 1);

{顶背离:价格创新高,MACD未创新高}
顶背离 := 价格新高 AND NOT(MACD新高);

{底背离:价格创新低,MACD未创新低}
底背离 := 价格新低 AND NOT(MACD新低);
 
 {绘制MACD}
 DIF: DIF, COLORWHITE, LINETHICK1;
 DEA: DEA, COLORYELLOW, LINETHICK1;
 MACD柱: MACD, STICK, LINETHICK2;
 MACD柱正: IF(MACD >= 0, MACD, 0), STICK, COLORRED;
 MACD柱负: IF(MACD < 0, MACD, 0), STICK, COLORGREEN;
 
 {零轴}
 零轴: 0, COLORWHITE, LINETHICK1;
 
 {自定义买入卖出信号}
{买入条件:DEA>0,MACD连续三根正数且严格递增 → 笑脸图标}
{逻辑详解:DEA由负变正且大于0,MACD值由负变正后,连续三根严格递增}
{示例1:0.0120、0.0118、0.0245 → 不符合,因为0.0118 < 0.0120,中间出现下跌}
{示例2:0.0120、0.0128、0.0245 → 符合,因为0.0120 < 0.0128 < 0.0245,连续三根严格递增}
买入条件 := 
    DEA > 0 AND  {DEA必须是正数}
    (MACD > 0) AND (REF(MACD, 1) > 0) AND (REF(MACD, 2) > 0) AND  {当前和前两根MACD都是正数}
    (MACD > REF(MACD, 1)) AND (REF(MACD, 1) > REF(MACD, 2));  {连续三根严格递增:当前>前1>前2}

 {卖出条件:DEA<0,MACD连续三根负数且严格递减 → 哭脸图标}
{逻辑详解:DEA由正变负且小于0,MACD值由正变负后,连续三根严格递减}
{示例1:-0.0120、-0.0118、-0.0245 → 不符合,因为-0.0118 > -0.0120,中间出现上涨}
{示例2:-0.0120、-0.0128、-0.0245 → 符合,因为-0.0120 > -0.0128 > -0.0245,连续三根严格递减}
卖出条件 := 
    DEA < 0 AND  {DEA必须是负数}
    (MACD < 0) AND (REF(MACD, 1) < 0) AND (REF(MACD, 2) < 0) AND  {当前和前两根MACD都是负数}
    (MACD < REF(MACD, 1)) AND (REF(MACD, 1) < REF(MACD, 2));  {连续三根严格递减:当前<前1<前2}
 
 {绘制信号:显示自定义买卖信号和背离信号}
DRAWICON(买入条件, DIF, 1);  {笑脸-自定义买入}
DRAWICON(卖出条件, DIF, 2);  {哭脸-自定义卖出}
DRAWICON(顶背离, DIF, 15);  {顶背离信号}
DRAWICON(底背离, DIF, 4);  {底背离信号}

{声音提醒:信号出现时播放声音}
{倚天软件PLAYSOUND函数用法:PLAYSOUND(COND,ONLYLAST,SOUNDFILE)}
{当COND条件满足时,播放SOUNDFILE文件名指定的声音文件(缺省路径为倚天目录/USERS/WAV)}
PLAYSOUND(买入条件, 1, 'zhang.wav');  {买入信号声音提醒}
PLAYSOUND(卖出条件, 1, 'die.wav');  {卖出信号声音提醒}
 
 {超买超卖线}
 超买线: 0.5, COLORRED, LINETHICK1;
 超卖线: -0.5, COLORGREEN, LINETHICK1;

很好的优化,这种指标可能N次小亏损,但是抓住大趋势,使用前需要多回测。理性判断。

好东西值得收藏