写在前面的话

本人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)相关推荐

  1. 股市K线图指标算法的代码实现(二)

    本章上接 股市K线图指标算法的代码实现(一) 6.KDJ 以KDJ(9,3,3)为例,括号内为传入的参数 (1)计算周期的RSV值 RSV = (C(9)-L(9))/(H(9)-L(9))×100 ...

  2. 股市K线图指标算法的代码实现(一)

    这几个月在做一个关于证券的项目,项目里一些图表的绘制,包括K线图以及相关指标算法的绘制让我有点为难,毕竟我也不炒股,没接触过过这些东西.原先是使用的ta-lib这个金融库来进行相关的计算.不过有些算法 ...

  3. 【算法学习】图相关算法编程实现-深度优先遍历和广度优先遍历

    一.图的表示 图G=(V,E).要表示一个图,通常有两种方法:邻接表和邻接矩阵.两种方法都既可以表示有向图,也可以表示无向图. 邻接表表示由一个包含|V|个列表的数组组成,其中每个列表对应V中的一个顶 ...

  4. 上证指数30年k线图_上证指数历史k线图_k线图24种经典图解

    上证指数季度k线图 400x296 - 90KB - JPEG 戴若顾比:上证指数寻找新的支撑_股市及时雨 550x341 - 25KB - JPEG 上证综指周K线图 300x232 - 16KB ...

  5. python 股票图表_k线图分析法_【趣味案例】用Python绘制K线图,一眼看清股市状况...

    本文介绍关于[趣味案例]用Python绘制K线图,一眼看清股市状况及神一般的裸k交易法,精髓就这三步,一目了然!精髓就这三步,一目了然!(附图解析)的相关内容. [趣味案例]用Python绘制K线图, ...

  6. 一分钟学会看k线图_K线图怎么看?一分钟学会看K线图

    K线是最真实的盘面语言,不同的形态有不同的含义,是广大操盘手必备的交易决策工具,也是广大新手投资者必学的入门技术. 一分钟学会看K线图: 开盘价=最低价,收盘价=最高价,表示强烈涨势,气势如虹.市场开 ...

  7. C什么k什么_K线图基础知识丨什么是K线散兵坑形态?K线散兵坑形态的操作与案例详解...

    本文总共999字,预计阅读需要3分钟 今天我们给大家带来的是K线散兵坑形态,那么K线散兵坑形态应该怎么来操作呢?今天我们就结合相应的实战案例来为大家讲解一下吧. K线散兵坑形态的简介 散兵坑是指在股价 ...

  8. python能画k线图吗_k线图怎么画?_Python绘制K线图

    本文介绍关于Python绘制K线图与股票中怎样才能画出有效的趋势线.压力和支撑位?与手工绘制股票K线图有什么技巧,要先从哪学起?与外汇怎样绘制蜡烛图?与k线图怎么变宽了,怎么复原?与怎样判断K线点位高 ...

  9. 上面两点下面一个三角形_K线图中走出三角形收敛形态必有大波动?一招判断后期走势方向...

    三角形整理在股票市场.期货市场以及外汇等其他金融市场的技术分析图形中,三角形整理形态是比较常见的技术形态,可见掌握三角形整理形态是非常重要的.这一节课我们就来学习三角形整理形态,下图为经典的三角形整理 ...

最新文章

  1. 程序员上班啥也不干年入140万,网友:这操作绝了!
  2. centos安装nginx小记
  3. keepalived介绍和配置
  4. java注解,通过反射解析注解,模仿hibernate,获取sql语句。
  5. Exception在方法继承中的限制
  6. 2019 GDUT Rating Contest II : A. Taming the Herd
  7. 训练日志 2018.12.9
  8. ★LeetCode(538)——把二叉搜索树转换为累加树(JavaScript)
  9. HDU 1251 - 统计难题(字典树模板题)
  10. 小学计算机集体备课活动记录,信息技术学科组集体备课活动记录.doc
  11. android 息屏锁频录音、录视频、电话自动录音
  12. element-ui表单中的文本域 调整高度
  13. 用摄动法证明fibs的一个公式(变形)
  14. php集成paypal付款流程,PHP整合PayPal支付_PHP教程
  15. tortoise-orm 分页码(python)
  16. Linux7 下Hadoop集群用户管理方案之五 安装Hadoop集群遇到的坑
  17. iOS开发中配置开发者中心证书
  18. HTML打开eml文件,eml文件怎么打开?.eml是什么格式文件?
  19. 上瘾读书笔记:让用户养成使用习惯的四大产品逻辑
  20. 万象:庸人容易因欠缺自知之明而自我膨胀

热门文章

  1. nginx 配置 https双向认证
  2. 单应性矩阵 matlab,单应性矩阵MATLAB程序
  3. 黑马程序员——UI基础纪要
  4. 短线黑马选股绝技 一
  5. 第十届蓝桥杯大赛PythonB组
  6. linux 客户端ftp 登陆成功之后ls 卡死
  7. 关于vue2停止维护,vue3迭代更新的思考:
  8. 为什么“千寻CORS”更优秀? ——浅析潜龙时空服务器8大优势
  9. springBoot项目中WebFilter不生效 @ServletComponentScan
  10. lv双肩包尺寸对照表_LV型号与对应的尺寸表