股票K线图指标之MA均线-java源码android源码示例

/**
 * 算出ma的值 需要确保和传入的list size一致
 * @param list 数据集合
 * @param days 周期
 * @return   集合数据 
MA=N日内的收盘价之和÷N
 */
public static List<KCandleObj> countMA(List<KCandleObj> list, int days) {
    if (days < 1) {
        return null;
    }
    if (list == null || list.size() == 0)
        return null;
    int cycle = days;

    if (cycle > list.size()) {
        //设置的指标参数大于数据集合 不用计算
        return null;
    }

    double sum = 0;

    List<KCandleObj> ma5Values = new ArrayList<KCandleObj>();

    for (int i = cycle - 1; i < list.size(); i++) {
        if (i == cycle - 1) {
            for (int j = i - days + 1; j <= i; j++) {
                sum += list.get(j).getClose();
            }
        } else {
            sum = sum + list.get(i).getClose()
                    - list.get(i - days).getClose();
        }
        ma5Values.add(new KCandleObj(sum / days));
    }
    return ma5Values;
}
分享到:

评论已关闭