java ema算法_K线图指标算法(MA EMA)
写在前面的话
本人android开发股线图时基于MpAndroidChart开发的,所以后面用到的算法中CandleEntry, Entry等都是MpAndroidChart的API,均使用java实现,算法经过对比验证,和其他证券平台的指标结果一致。
目前只研究了MA、EMA、BOLL、MACD、KDJ、RSI几种指标。
一、MA:
英文(Moving average)的简写,叫移动平均线指标,算法最简单的一个指标。
计算方式:
1.N日MA=N日收市价的总和/N(即算术平均数)
2.要设置多条移动平均线,一般参数设置为N1=5,N2=10,N3=20,N4=60,N5=120,N6=250
// n日均线MA,
public static List getMA(List entries, int n) {
List result = new ArrayList<>();
for (int i = 0, len = entries.size(); i < len; i++) {
if (i < n - 1) {
continue;
}
float sum = 0;
for (int j = 0; j < n; j++) {
sum += entries.get(i - j).getClose();
}
result.add(new Entry(entries.get(i).getX(), sum / n));
}
return result;
}
二、EMA:
指数移动平均值。也叫EXPMA指标,它也是一种趋向类指标,指数移动平均值是以指数式递减加权的移动平均
计算方式:
EMAtoday=α * Pricetoday + ( 1 - α ) * EMAyesterday;
其中,α为平滑指数,一般取作2/(N+1)。在计算MACD指标时,EMA计算中的N一般选取12和26天,因此α相应为2/13和2/27
/**
* EMA算法
* EMA(N) = 2/(N+1)*C + (N-1)/(N+1)*EMA', EMA'为前一天的ema; 通常N取12和26
*
* @param entries
* @param n
* @return
*/
public static List getEMA(List entries, int n) {
List result = new ArrayList<>();
float lastEma = entries.get(0).getClose();// 第一个EMA为第一个数据的价格
result.add(new Entry(0, lastEma));
float[] emaFactor = getEMAFactor(n);
for (int i = 1; i < entries.size(); i++) {
float ema = emaFactor[0] * entries.get(i).getClose() + emaFactor[1] * lastEma;
result.add(new Entry(entries.get(i).getX(), ema));
lastEma = ema;
}
return result;
}
/**
* 获取EMA计算时的相关系数 (后续多个地方需要这个系数 抽取出来用)
* @param n
* @return
*/
private static float[] getEMAFactor(int n) {
return new float[]{2f / (n + 1), (n - 1) * 1.0f / (n + 1)};
}
java ema算法_K线图指标算法(MA EMA)相关推荐
- 股市K线图指标算法的代码实现(二)
本章上接 股市K线图指标算法的代码实现(一) 6.KDJ 以KDJ(9,3,3)为例,括号内为传入的参数 (1)计算周期的RSV值 RSV = (C(9)-L(9))/(H(9)-L(9))×100 ...
- 股市K线图指标算法的代码实现(一)
这几个月在做一个关于证券的项目,项目里一些图表的绘制,包括K线图以及相关指标算法的绘制让我有点为难,毕竟我也不炒股,没接触过过这些东西.原先是使用的ta-lib这个金融库来进行相关的计算.不过有些算法 ...
- 【算法学习】图相关算法编程实现-深度优先遍历和广度优先遍历
一.图的表示 图G=(V,E).要表示一个图,通常有两种方法:邻接表和邻接矩阵.两种方法都既可以表示有向图,也可以表示无向图. 邻接表表示由一个包含|V|个列表的数组组成,其中每个列表对应V中的一个顶 ...
- 上证指数30年k线图_上证指数历史k线图_k线图24种经典图解
上证指数季度k线图 400x296 - 90KB - JPEG 戴若顾比:上证指数寻找新的支撑_股市及时雨 550x341 - 25KB - JPEG 上证综指周K线图 300x232 - 16KB ...
- python 股票图表_k线图分析法_【趣味案例】用Python绘制K线图,一眼看清股市状况...
本文介绍关于[趣味案例]用Python绘制K线图,一眼看清股市状况及神一般的裸k交易法,精髓就这三步,一目了然!精髓就这三步,一目了然!(附图解析)的相关内容. [趣味案例]用Python绘制K线图, ...
- 一分钟学会看k线图_K线图怎么看?一分钟学会看K线图
K线是最真实的盘面语言,不同的形态有不同的含义,是广大操盘手必备的交易决策工具,也是广大新手投资者必学的入门技术. 一分钟学会看K线图: 开盘价=最低价,收盘价=最高价,表示强烈涨势,气势如虹.市场开 ...
- C什么k什么_K线图基础知识丨什么是K线散兵坑形态?K线散兵坑形态的操作与案例详解...
本文总共999字,预计阅读需要3分钟 今天我们给大家带来的是K线散兵坑形态,那么K线散兵坑形态应该怎么来操作呢?今天我们就结合相应的实战案例来为大家讲解一下吧. K线散兵坑形态的简介 散兵坑是指在股价 ...
- python能画k线图吗_k线图怎么画?_Python绘制K线图
本文介绍关于Python绘制K线图与股票中怎样才能画出有效的趋势线.压力和支撑位?与手工绘制股票K线图有什么技巧,要先从哪学起?与外汇怎样绘制蜡烛图?与k线图怎么变宽了,怎么复原?与怎样判断K线点位高 ...
- 上面两点下面一个三角形_K线图中走出三角形收敛形态必有大波动?一招判断后期走势方向...
三角形整理在股票市场.期货市场以及外汇等其他金融市场的技术分析图形中,三角形整理形态是比较常见的技术形态,可见掌握三角形整理形态是非常重要的.这一节课我们就来学习三角形整理形态,下图为经典的三角形整理 ...
最新文章
- 程序员上班啥也不干年入140万,网友:这操作绝了!
- centos安装nginx小记
- keepalived介绍和配置
- java注解,通过反射解析注解,模仿hibernate,获取sql语句。
- Exception在方法继承中的限制
- 2019 GDUT Rating Contest II : A. Taming the Herd
- 训练日志 2018.12.9
- ★LeetCode(538)——把二叉搜索树转换为累加树(JavaScript)
- HDU 1251 - 统计难题(字典树模板题)
- 小学计算机集体备课活动记录,信息技术学科组集体备课活动记录.doc
- android 息屏锁频录音、录视频、电话自动录音
- element-ui表单中的文本域 调整高度
- 用摄动法证明fibs的一个公式(变形)
- php集成paypal付款流程,PHP整合PayPal支付_PHP教程
- tortoise-orm 分页码(python)
- Linux7 下Hadoop集群用户管理方案之五 安装Hadoop集群遇到的坑
- iOS开发中配置开发者中心证书
- HTML打开eml文件,eml文件怎么打开?.eml是什么格式文件?
- 上瘾读书笔记:让用户养成使用习惯的四大产品逻辑
- 万象:庸人容易因欠缺自知之明而自我膨胀