java macd指标_Java 验证 MACD 底背离是否真的有效
Java 验证 MACD 底背离是否真的有效
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 指标的具体计算过程,直接谈一谈本次实验,小编给出策略思想并贴出两种策略分别的回溯效果。
实验采取的两种策略:
快线向上突破慢线时,表明股市处于一种强势之中,股价将再次上涨,我们选择买进股票,反之,当慢线向上突破快线时,表明股市处于可能跌入弱市的状态,我们选择卖出股票;
底背离买进,顶背离卖出。
第一种策略
代码如下:
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;
}
}
回溯效果:
如果你是程序员,也可以进去Raquant 镭矿自己试试哦!
java macd指标_Java 验证 MACD 底背离是否真的有效相关推荐
- java校验文件格式_java验证文件格式工具类(获取文件真实格式)
, String>();privateVerifyFileType(){} static{ getAllFileType();//初始化文件类型信息} /*** Discription:[get ...
- 聚宽macd底背离_MACD指标图解!如何解决滞后性,规避盲目买进卖出!
作为中小投资者,由于对基本面分析的欠缺,以致技术分析成为多数人的选择.其中道氏理论是市场技术研究的鼻祖,而 macd则是当前运用最为广泛的技术指标.MACD吸收了移动平均线的优点.移动平均线的买卖交易 ...
- MACD指标与成交量指标怎么配合使用?耳闻过成交量指标可以辅助MACD指标判势吗?
通过MACD指标,投资者可以了解到市场上涨或者下跌速度的变化,并且衡量推动这种涨跌变化内在能量的强弱.如果配合成交量指标,投资者则可以了解这种变化过程中投资者交易活跃度的变化方向,从而更加全面地了解当 ...
- 双线macd指标参数最佳设置_MACD指标参数设置成多少最好和使用技巧?
相信不少投资人在进入外汇市场的初期,都是使用MACD.均线.布林带这种最常见实用的指标来进行市场分析的.进行外汇交易的投资人如果没有使用过MACD指标,那只能说此人根本就不会外汇技术分析,下面本文就来 ...
- MACD指标精粹讲解
很多朋友都用了很的时间去找什么指标,实际上很的自编指标都是从这些指标演化而来的! MACD指标精粹讲解 很多朋友都用了很的时间去找什么指标,实际上很的自编指标都是从这些指标演化而来的!希望大家先学好这 ...
- [zz]MACD指标1
MACD称为指数平滑异同移动平均线(Moving Average Convergence and Divergence).是从双移动平均线发展而来的,由快的移动平均线减去慢的移动平均线, MACD的意 ...
- macd指标参数最佳设置及macd指标是如何使用的
MACD指标参数最佳设置及MACD指标是如何使用的 当我们打开交易软件时,指标名称旁边有一组数字,那是交易软件给定的指标默认参数.MACD也是如此,一般MACD的默认参数是(12,26,9).这不是固 ...
- MQL4自编指标学习6-MQL4中MACD指标的实现
目录 1 MACD指标简介 2 MACD三个变量的计算公式 2.1 计算移动平均值(EMA) 2.2 计算离差值(DIF) 2.3 计算DEA 2.4 Bars的计算 3 MACD用Excel实现 4 ...
- 选股策略之MACD指标选股
股市有风险,投资需谨慎!!!股市有风险,投资需谨慎!!!股市有风险,投资需谨慎!!! MACD的详细介绍请移步:macd百度百科 话不多说,上代码: # -*- coding: utf-8 -*- ' ...
- RSI指标顶背离趋势反转信号,文华财经期货RSI底背离自动画线指标公式源码
期货交易一定要认清市场运动的方向,并且要顺着它运动的方向进行交易,即一定要按照市场的运动变化进行顺势交易!要跟随市场的变化而行动.而绝不是什么PE.指标之类,事实上市场不一定会认同你的那个人为的交易模 ...
最新文章
- 10 个深恶痛绝的 Java 异常。。
- 利用流水线改进代码中的if处理流程
- SQL 语句快速参考
- 素数倒数的级数发散性的一个证明
- android sdk64位资源,android SDK 有32位或64位的分别吗
- 拥抱变化——从Atlas到ASP.NET AJAX(4):大大简化的了的Extender扩展器控件
- angular示例_Angular Dependency Injection用示例解释
- SpringBoot - 多Profile使用与切换
- extra增强延迟加载
- Dinic算法(研究总结,网络流)
- C#通用验证类:邮箱,电话,手机,数字,英文,日期,身份证,邮编,网址,IP
- opencv调用摄像头
- 画直线的算法之DDA算法+代码实现(法一)
- 外贸单证制作常用名称中英互译表
- WPF UI框架界面开发教程(一)
- kubernetes 网络callico和flannel两种网络
- LOAM系列——LeGO-LOAM配置、安装、问题解决及VLP16测试效果(完结版)
- 攻击者对 Exploit-DB平台的利用分析
- idea中Cannot Save Settings Module ‘Test’错误
- 美国游学英国游学推荐 选择国际游学机构五大攻略