MACD是查拉尔·阿佩尔(Geral Appel)于1979年提出的,由一快及一慢指数移动平均(EMA)之间的差计算出来。“快”指短时期的EMA,而“慢”则指长时期的EMA,最常用的是12及26日EMA;
一般MACD的值是12日的平均值与26日平均值的差;SIGNAL是MACD9日平均值;HISTOGRAM是MACD与SIGNAL的差。

公式如下:

MACD:EMA(C,12)-EMA(C,26);

Signal:EMA(MACD,9);

Histogram:MACD-Signal;

顶背离和底背离的概念:

MACD指标的背离就是指MACD指标的图形的走势正好和K线图的走势方向正好相反。MACD指标的背离有顶背离和底背离两种。

(1)顶背离
  当股价K线图上的股票走势一峰比一峰高,股价一直在向上涨,而MACD指标图形上的由红柱构成的图形的走势是一峰比一峰低,即当股价的高点比前一次的高点高、而MACD指标的高点比指标的前一次高点低,这叫顶背离现象。顶背离现象一般是股价在高位即将反转转势的信号,表明股价短期内即将下跌,是卖出股票的信号。

(2)底背离
  底背离一般出现在股价的低位区。当股价K线图上的股票走势,股价还在下跌,而MACD指标图形上的由绿柱构成的图形的走势是一底比一底高,即当股价的低点比前一次低点底,而指标的低点却比前一次的低点高,这叫底背离现象。底背离现象一般是预示股价在低位可能反转向上的信号,表明股价短期内可能反弹向上,是短期买入股票的信号。

在这里,我们忽略MACD指标的具体计算过程,直接谈一谈本次实验,小编给出策略思想并贴出两种策略分别的回溯效果。

实验采取的两种策略:

1.快线向上突破慢线时,表明股市处于一种强势之中,股价将再次上涨,我们选择买进股票,反之,当慢线向上突破快线时,表明股市处于可能跌入弱市的状态,我们选择卖出股票;

2.底背离买进,顶背离卖出。

第一种策略

代码如下:

class MyStrategy extends Strategy {private double prevDelta = 0;String stock1 = "sha-601318";MACDFactor fMacd = new MACDFactor(12, 26, 9);public void init(BackTestContext context) {universe.add(stock1);}public void prepare(BackTestContext context) {}public void handleData(BackTestContext context, BarData data) throws Exception {double macdOut = fMacd.get(stock1, MACDFactor.RET_MACD);double macdSignal = fMacd.get(stock1, MACDFactor.RET_MACD_SIGNAL);double delta = macdOut - macdSignal;record("macd", macdOut);record("macd_signal", macdSignal);   record("macd_hist",delta);if (prevDelta > 0 && delta < 0) {log.info("Sell at "+""+context.now+delta);orderTargetPercent(stock1, 0, "Sell all.");} else if (prevDelta < 0 && delta > 0) {log.info("Buy at "+context.now+delta);orderPercent(stock1, 80, "Buy in.");}prevDelta = delta;}
}

回溯效果:

第二种策略

代码如下:

class MyStrategy extends Strategy {private double prevDelta = 0;private double prevClose = 0;private double countA = 0;private double countB = 0;String stock1 = "sha-601318";MACDFactor fMacd = new MACDFactor(12, 26, 9);public void init(BackTestContext context) {universe.add(stock1);}public void prepare(BackTestContext context) {}public void handleData(BackTestContext context, BarData data) throws Exception {log.info("time: "+context.now);double delta = fMacd.get(stock1, MACDFactor.RET_MACD_HIST);record("macd_hist", delta);if (delta < prevDelta && data.get(stock1).close > prevClose) {countB = 0;if(countA%5 == 0 && countA != 0 ){log.info("Sell at "+context.now+" "+delta);orderTargetPercent(stock1, 0, "Sell all.");}else{countA += 1;}          }else if (delta > prevDelta && data.get(stock1).close < prevClose){countA = 0;if(countB%5 == 0 && countB != 0 ){log.info("Buy at "+context.now+" "+delta);orderPercent(stock1, 80, "Buy in.");}else{countB += 1;}      }    prevDelta = delta;prevClose = data.get(stock1).close;}
}

回溯效果:

相比之下MACD底背离、顶背离,这个逻辑还是蛮狠的。回撤也挺小。

Raquant镭矿论坛

java尝试编写macd,试验顶背离底背离相关推荐

  1. java 实现macd算法_java尝试编写macd,试验顶背离底背离

    MACD是查拉尔·阿佩尔(Geral Appel)于1979年提出的,由一快及一慢指数移动平均(EMA)之间的差计算出来."快"指短时期的EMA,而"慢"则指长 ...

  2. 聚宽macd底背离_老股民技巧一招鲜:MACD顶、底背离图解及近期实战应用,字字斗金...

    macd指标参数最佳设置. 1. MACD指标参数如何设置 对于MACD指标参数,大多数分析软件会将其参数设置为12,26,9,即快速EMA参数设为12.慢速EMV指标设为26.DIF参数设为9. 从 ...

  3. 通达信通道交易系统选股公式,结合MACD绿柱缩短底背离

    亚历山大·埃尔德在<以交易为生>(原书第2版)中,将价格在通道中的波动比喻为河流在河谷中流动.当河流碰到右岸时,会向左转:碰到左岸时,会向右转.价格上涨时,常在碰到隐形天花板时停止上涨:下 ...

  4. 通达信玩转庄家追击反转指标源码,带MACD顶背离底背离,不错。

    主力持仓:EMA(100*(CLOSE-LLV(LOW,34))/(HHV(HIGH,34)-LLV(LOW,34)),3),COLORMAGENTA,LINETHICK2; 警戒线: 80,COLO ...

  5. 什么是MACD的顶背离和底背离

    MACD指标的背离就是指MACD指标的图形的走势正好和K线图的走势方向正好相反.MACD指标的背离有顶背离和底背离两种. 顶背离 当股价K线图上的股票走势一峰比一峰高,股价一直在向上涨,而MACD指标 ...

  6. 聚宽macd底背离_MACD指标图解!如何解决滞后性,规避盲目买进卖出!

    作为中小投资者,由于对基本面分析的欠缺,以致技术分析成为多数人的选择.其中道氏理论是市场技术研究的鼻祖,而 macd则是当前运用最为广泛的技术指标.MACD吸收了移动平均线的优点.移动平均线的买卖交易 ...

  7. 聚宽macd底背离_许多散户不知道:MACD月线金叉,MACD月金叉都会带来一波牛市!...

    MACD吸收了移动平均线的优点. 移动平均线的买卖交易在趋势明显时效果很好,但是一旦遇到牛皮盘整行情,移动平均线所发出的信号就过于频繁而且极其不准确,在期货市场的保证金杠杆效应下容易使投资者遭受致命损 ...

  8. 聚宽macd底背离_很多散户可能永远都不会知道:MACD月线金叉,每一次MACD月金叉都会带来一波牛市...

    MACD吸收了移动平均线的优点.移动平均线的买卖交易在趋势明显时效果很好,但是一旦遇到牛皮盘整行情,移动平均线所发出的信号就过于频繁而且极其不准确,在期货市场的保证金杠杆效应下容易使投资者遭受致命损失 ...

  9. “无顶背离不抛盘,无底背离不抢筹”,这才是MACD的精髓

    市场行情的波澜起伏,是所有参与者内心博弈与争斗结果的真实写照 在交易中,如果你不能在正确的时间和地点参与市场,你自然就要忍受市场先生的好心情或坏心情.同时,自己的情绪也会时常因市场先生的惩罚与奖励而变 ...

最新文章

  1. ORB_SLAM2代码阅读(3)——LocalMapping线程
  2. Linux内核自旋锁使用笔记
  3. 基于opencv的BackgroundSubtractorMOG2目标追踪
  4. Jmeter连接到Mysql
  5. PCB电流和线宽的关系(通俗易懂)
  6. [css] 如何使用css实现鼠标跟随?
  7. Cocos2d-x.3.0开发环境搭建
  8. 第32课 - 初探C++ 标准库
  9. 日常如何维护OA系统?
  10. 软件开发流程及类型图
  11. 图文详解,浪涌保护器(SPD)的参数解读与选用
  12. 昆明计算机学校录取分数,云南省昆明铁路机械学校2021年招生录取分数线
  13. [unity]调用手机摄像头
  14. 可以联机的计算机游戏,多人玩的游戏_可以多人联机玩的游戏 乐游网
  15. Ink脚本语言学习笔记(四)
  16. js垃圾回收机制(Gc)
  17. java:List的深拷贝
  18. HTML上标和下标原理,HTML标签:上标、下标
  19. 用户名+密码控制+php文件存储
  20. 期刊论文发表一般多久才可以EI检索

热门文章

  1. ERPLAB中文教程:创建与查看EventList
  2. Santa Cruz 上手测试,动作控制器自由度惊人
  3. 英伟达CUDA太难!OpenAI出手要取代它,新语言性能相当但编程更简单
  4. MIT造了个“小盒子”,可以无线监测新冠患者症状,斯隆奖获得者班底打造
  5. 英伟达公开课 | 手把手教你部署一辆高速目标检测Jetbot智能小车
  6. 一文看尽飞桨PaddlePaddle最新升级:5大优势,更低门槛使用深度学习
  7. 【CF671D】 Roads in Yusland(对偶问题,左偏树)
  8. 第9件事 产品定位要解决的6个问题
  9. JdbcTemplate(1)(数据连接池)
  10. Docker命令查询