首页 > 编程知识 正文

macd选股公式成功率排行,macd红二波选股公式

时间:2023-05-03 13:33:18 阅读:112979 作者:1313

最近进行的项目需要实现EMA和MACD,但苦于互联网上没有具体的实现算法。 所以我自己试着做了一套。

对照直通等主要股票分析软件和结果,将其开源放在GitHub上,包括Junit测试用例。

GitHub地址: https://github.com/wizard Byron/finance-indicators

//*

*计算Ema,

*

* @param list

* :Price list to calculate,the first at head,the last at tail。

* @return

*/

publicstaticfinaldoublegetexpma (finallistlist,final int number ) {

开始计算//EMA值,

双精度=2.0/(编号1.0 ); 计算//序号

双精度EMA=list.get (0; //第一天的ema等于当天的收盘价

for(intI=1; i list.size (; I ) {

//第二天以后,当天收盘价乘以系数,进而昨天的EMA乘以系数-1

EMA=list.get(I ) *kEMA ) (1-k );

}

返回Ema;

}

//*

*计算标记值

*

* @param list

* :Price list to calculate,the first at head,the last at tail。

* @param shortPeriod

* : the短周期值。

* @param longPeriod

* : the长周期值。

* @param midPeriod

* :the mid period value。

* @return

*/

publicstaticfinalhashmapgetmacd (finallistlist,final int shortPeriod,final int longPeriod,int midPeriod ) {

HashMap macdData=new HashMap (;

列表差异列表=new ArrayList (;

双短整型EMA=0.0;

双长行程=0.0;

双精度dif=0.0;

双缉毒=0.0;

for(intI=list.size ) (- 1; i=0; I---- ) {

listsublist=list.sublist(0,list.size ) (- i );

short EMA=indicators.getexpma (sublist,shortPeriod );

longema=indicators.getexpma (sublist,longPeriod );

dif=短EMA-longema;

difflist.add(dif );

}

DEA=indicators.getexpma (diff list,midPeriod );

MACDdata.put(dif )、dif );

MACDdata.put(dea )、DEA );

MACDdata.put(MACD ),(dif - dea ) ) 2;

返回制造数据;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。