Example usage for org.json JSONArray getDouble

List of usage examples for org.json JSONArray getDouble

Introduction

In this page you can find the example usage for org.json JSONArray getDouble.

Prototype

public double getDouble(int index) throws JSONException 

Source Link

Document

Get the double value associated with an index.

Usage

From source file:com.cssweb.android.view.KlineView.java

/**
 * ??/*from w w  w.  j  av  a2  s  . c  o  m*/
 * @throws JSONException 
 */
private void makeTodayData() throws JSONException {
    int l = quoteData.getJSONArray("K").length();
    if (quoteData.isNull("joTMP")) {//temp??
        newStockhandler();
        return;
    }
    if (!quoteData.getBoolean("tradeFlag")) {
        //??????
        //???0??
        return;
    }
    JSONObject tempvalue = quoteData.getJSONObject("joTMP");
    double zrsp = quoteData.getDouble("zrsp");
    period = quoteData.getString("period");
    if (period.equals("week") || period.equals("month") || period.equals("year")) {
        if (tempvalue.getString(period) != null) {
            if (tempvalue.isNull("ma") || quoteData.isNull("MA") || quoteData.isNull("K")) {
                makeTmpData();
                return;
            }
            int tp = quoteData.getInt("tp");
            if (tp == 1) {
                String date = tempvalue.getJSONObject(period).getString("date");
                if (DateTool.isSameWeekMonthYear(date, period)) {
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(1,
                            tempvalue.getJSONObject(period).getDouble("open"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(2,
                            tempvalue.getJSONObject(period).getDouble("high"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(3,
                            tempvalue.getJSONObject(period).getDouble("low"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(4, zrsp);
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(5,
                            tempvalue.getJSONObject(period).getDouble("cjsl"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(6,
                            tempvalue.getJSONObject(period).getDouble("cjje"));
                    //quoteData.getJSONArray("K").getJSONArray(l-1).put(0, ) ;
                    zrsp = tempvalue.getJSONObject(period).getDouble("close");
                    Log.i("#####period->zrsp####",
                            quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(4) + ">>>>>>>>" + zrsp);
                }
            } else {
                int spayday = quoteData.getInt("spday");
                double cjsl = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(5);
                double cjje = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(6);
                if (spayday == 0) {//0??temp?????
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(2,
                            Math.max(quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(2),
                                    tempvalue.getJSONObject(period).getDouble("high")));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(3,
                            Math.min(quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(3),
                                    tempvalue.getJSONObject(period).getDouble("low")));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(5,
                            cjsl + tempvalue.getJSONObject(period).getDouble("cjsl"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(6,
                            cjje + tempvalue.getJSONObject(period).getDouble("cjje"));
                } else {
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(2,
                            Math.max(quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(2),
                                    tempvalue.getJSONObject(period).getDouble("high")));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(3,
                            Math.min(quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(3),
                                    tempvalue.getJSONObject(period).getDouble("low")));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(5,
                            tempvalue.getJSONObject(period).getDouble("cjsl"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(6,
                            tempvalue.getJSONObject(period).getDouble("cjje"));
                }
                double jrkp = tempvalue.getJSONObject(period).getDouble("open");
                if (jrkp != 0) {
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(1, jrkp);
                }
                zrsp = tempvalue.getJSONObject(period).getDouble("close");
            }
        }
    }

    String qt = quoteData.getJSONArray("K").getJSONArray(l - 1).getString(0);
    double high = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(2);
    double low = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(3);
    double zjcj = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(4);
    double cjsl = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(5);

    double summa4 = tempvalue.getJSONObject("ma").getDouble("sumMa4");
    double summa9 = tempvalue.getJSONObject("ma").getDouble("sumMa9");
    double summa19 = tempvalue.getJSONObject("ma").getDouble("sumMa19");
    double summa59 = tempvalue.getJSONObject("ma").getDouble("sumMa59");
    double sumvolma4 = tempvalue.getJSONObject("ma").getDouble("sumMavol4");
    double sumvolma9 = tempvalue.getJSONObject("ma").getDouble("sumMavol9");

    if (mainIndicatorType.toUpperCase().equals("MA") || mainIndicatorType.toUpperCase().equals("BOLL")) {
        quoteData.getJSONArray("MA").put(new JSONArray());
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(0, qt);
        double ma5 = 0;
        if (l > 4)
            ma5 = (summa4 + zjcj) / 5;
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(1, ma5);
        double ma10 = 0;
        if (l > 9)
            ma10 = (summa9 + zjcj) / 10;
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(2, ma10);
        double ma20 = 0;
        if (l > 19)
            ma20 = (summa19 + zjcj) / 20;
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(3, ma20);
        double ma60 = 0;
        if (l > 59)
            ma60 = (summa59 + zjcj) / 60;
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(4, ma60);
    }
    double mavol5 = (sumvolma4 + cjsl) / 5;
    quoteData.getJSONArray("MA").getJSONArray(l - 1).put(5, mavol5);

    double mavol10 = (sumvolma9 + cjsl) / 10;
    quoteData.getJSONArray("MA").getJSONArray(l - 1).put(6, mavol10);

    if (mainIndicatorType.equals("BOLL")) {
        quoteData.getJSONArray("BOLL").put(new JSONArray());
        double mid = 0;
        double upper = 0;
        double lower = 0;
        if (l > 25) {
            double sumClose = tempvalue.getJSONObject("boll").getDouble("sumClose");
            double sumPowClose = tempvalue.getJSONObject("boll").getDouble("sumPowClose");
            double maPow = 0;
            double temp;
            if (l > 25) {
                mid = (sumClose + zjcj) / 26;
                maPow = (sumPowClose + zjcj * zjcj) / 26;
                temp = (maPow - mid * mid);
                if (temp < 0)
                    temp = 0;
                upper = mid + 2 * Math.sqrt((temp * 26) / (26 - 1));
                lower = mid - 2 * Math.sqrt((temp * 26) / (26 - 1));
            }
        }

        quoteData.getJSONArray("BOLL").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("BOLL").getJSONArray(l - 1).put(1, mid);
        quoteData.getJSONArray("BOLL").getJSONArray(l - 1).put(2, upper);
        quoteData.getJSONArray("BOLL").getJSONArray(l - 1).put(3, lower);
    }

    if (indicatorType.equals("MACD")) {
        quoteData.getJSONArray("MACD").put(new JSONArray());
        double prevemashort = 0;
        double prevemalong = 0;
        double prevdea = 0;
        double dif = 0;
        double dea = 0;
        double macd = 0;
        double emashort = 0;
        double emalong = 0;

        prevemashort = tempvalue.getJSONObject("macd").getDouble("emaShort");
        prevemalong = tempvalue.getJSONObject("macd").getDouble("emaLong");
        prevdea = tempvalue.getJSONObject("macd").getDouble("dea");

        if (l > 1) {
            emashort = (2 * zjcj + (12 - 1) * prevemashort) / (12 + 1);
            emalong = (2 * zjcj + (26 - 1) * prevemalong) / (26 + 1);
            dif = emashort - emalong;
            dea = (2 * dif + (9 - 1) * prevdea) / (9 + 1);
            macd = (dif - dea) * 2;
        }

        quoteData.getJSONArray("MACD").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("MACD").getJSONArray(l - 1).put(1, dif);
        quoteData.getJSONArray("MACD").getJSONArray(l - 1).put(2, dea);
        quoteData.getJSONArray("MACD").getJSONArray(l - 1).put(3, macd);
    }
    if (indicatorType.equals("BIAS")) {
        quoteData.getJSONArray("BIAS").put(new JSONArray());
        double sum5 = tempvalue.getJSONObject("bias").getDouble("sum5");
        double sum11 = tempvalue.getJSONObject("bias").getDouble("sum11");
        double sum23 = tempvalue.getJSONObject("bias").getDouble("sum23");

        double bias1 = l >= 6 ? (zjcj - (sum5 + zjcj) / 6) / ((sum5 + zjcj) / 6) * 100 : 0;
        double bias2 = l >= 12 ? (zjcj - (sum11 + zjcj) / 12) / ((sum11 + zjcj) / 12) * 100 : 0;
        double bias3 = l >= 24 ? (zjcj - (sum23 + zjcj) / 24) / ((sum23 + zjcj) / 24) * 100 : 0;
        quoteData.getJSONArray("BIAS").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("BIAS").getJSONArray(l - 1).put(1, bias1);
        quoteData.getJSONArray("BIAS").getJSONArray(l - 1).put(2, bias2);
        quoteData.getJSONArray("BIAS").getJSONArray(l - 1).put(3, bias3);
    }
    if (indicatorType.equals("RSI")) {
        quoteData.getJSONArray("RSI").put(new JSONArray());

        double rsi1 = 0;
        double rsi2 = 0;
        double rsi3 = 0;

        if (l > 1 && tempvalue.has("rsi")) {
            double smaMax1 = tempvalue.getJSONObject("rsi").getDouble("smaMax1");
            double smaMax2 = tempvalue.getJSONObject("rsi").getDouble("smaMax2");
            double smaMax3 = tempvalue.getJSONObject("rsi").getDouble("smaMax3");
            double smaAbs1 = tempvalue.getJSONObject("rsi").getDouble("smaAbs1");
            double smaAbs2 = tempvalue.getJSONObject("rsi").getDouble("smaAbs2");
            double smaAbs3 = tempvalue.getJSONObject("rsi").getDouble("smaAbs3");

            double rsiMax1 = (Math.max(zjcj - zrsp, 0.0) * 1 + smaMax1 * (6 - 1)) / 6;
            double rsiAbs1 = (Math.abs(zjcj - zrsp) * 1 + smaAbs1 * (6 - 1)) / 6;
            if (rsiAbs1 == 0)
                rsi1 = 0;
            else
                rsi1 = rsiMax1 / rsiAbs1 * 100;

            double rsiMax2 = (Math.max(zjcj - zrsp, 0.0) * 1 + smaMax2 * (12 - 1)) / 12;
            double rsiAbs2 = (Math.abs(zjcj - zrsp) * 1 + smaAbs2 * (12 - 1)) / 12;
            if (rsiAbs2 == 0)
                rsi2 = 0;
            else
                rsi2 = rsiMax2 / rsiAbs2 * 100;

            double rsiMax3 = (Math.max(zjcj - zrsp, 0.0) * 1 + smaMax3 * (24 - 1)) / 24;
            double rsiAbs3 = (Math.abs(zjcj - zrsp) * 1 + smaAbs3 * (24 - 1)) / 24;
            if (rsiAbs3 == 0)
                rsi3 = 0;
            else
                rsi3 = rsiMax3 / rsiAbs3 * 100;
        }
        quoteData.getJSONArray("RSI").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("RSI").getJSONArray(l - 1).put(1, rsi1);
        quoteData.getJSONArray("RSI").getJSONArray(l - 1).put(2, rsi2);
        quoteData.getJSONArray("RSI").getJSONArray(l - 1).put(3, rsi3);
    }
    if (indicatorType.equals("KDJ")) {
        quoteData.getJSONArray("KDJ").put(new JSONArray());
        double newk = 0;
        double newd = 0;
        double newj = 0;

        if (l > 1 && tempvalue.has("kdj")) {
            double K = quoteData.getJSONArray("KDJ").getJSONArray(l - 2).getDouble(1);
            double D = quoteData.getJSONArray("KDJ").getJSONArray(l - 2).getDouble(2);
            double HHV = tempvalue.getJSONObject("kdj").getDouble("hhv");
            double LLV = tempvalue.getJSONObject("kdj").getDouble("llv");
            double nowllv = 0.0;

            if (LLV < low) // l?
                nowllv = LLV;
            else
                nowllv = low;

            double nowhhv = 0.0;
            if (HHV > high)
                nowhhv = HHV;
            else
                nowhhv = high;
            double rsv;
            if (Math.abs(nowhhv - nowllv) < 0.0001) {
                rsv = 0;
            } else {
                rsv = (zjcj - nowllv) / (nowhhv - nowllv) * 100;
            }
            newk = (rsv * 1 + K * (3 - 1)) / 3;
            newd = (newk * 1 + D * (3 - 1)) / 3;
            newj = 3 * newk - 2 * newd;
        }
        quoteData.getJSONArray("KDJ").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("KDJ").getJSONArray(l - 1).put(1, newk);
        quoteData.getJSONArray("KDJ").getJSONArray(l - 1).put(2, newd);
        quoteData.getJSONArray("KDJ").getJSONArray(l - 1).put(3, newj);
    }
    if (indicatorType.equals("CCI")) {
        double CCI = 0;
        quoteData.getJSONArray("CCI").put(new JSONArray());
        if (l > 13 && tempvalue.has("cci")) {
            JSONArray typlist = tempvalue.getJSONObject("cci").getJSONArray("typ");
            double sumTyp = 0;
            double TYP = (zjcj + high + low) / 3;
            double rit = 0;
            for (int i = 0; i < typlist.length(); i++) {
                rit = typlist.getDouble(i);
                if (i == 13)
                    break;
                sumTyp += rit;
            }
            sumTyp += TYP;
            double ma = sumTyp / 14;

            sumTyp = 0;
            for (int i = 0; i < typlist.length(); i++) {
                rit = typlist.getDouble(i);
                if (i == 13)
                    break;
                sumTyp += Math.abs(rit - ma);
            }
            sumTyp += Math.abs(TYP - ma);
            double avedev = sumTyp / 14;

            if (avedev == 0)
                CCI = 0;
            else
                CCI = (TYP - ma) / (0.015 * avedev);
        }
        quoteData.getJSONArray("CCI").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("CCI").getJSONArray(l - 1).put(1, CCI);
    }
    if (indicatorType.equals("OBV")) {
        quoteData.getJSONArray("OBV").put(new JSONArray());
        double obv = 0, maobv = 0;
        if (tempvalue.has("obv")) {
            if (zjcj > zrsp) {
                obv = tempvalue.getJSONObject("obv").getDouble("obv") + cjsl;
            }
            if (zjcj == zrsp) {
                obv = 0;
            }
            if (zjcj < zrsp) {
                obv = tempvalue.getJSONObject("obv").getDouble("obv") - cjsl;
            }
            if (l >= 29) {
                maobv = (tempvalue.getJSONObject("obv").getDouble("sumObv29") + obv) / 30;
            } else {
                maobv = 0;
            }
        }
        quoteData.getJSONArray("OBV").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("OBV").getJSONArray(l - 1).put(1, obv);
        quoteData.getJSONArray("OBV").getJSONArray(l - 1).put(2, maobv);
    }
    if (indicatorType.equals("PSY")) {
        quoteData.getJSONArray("PSY").put(new JSONArray());
        double countPsy = 0, psy = 0, psyma = 0;
        if (zjcj > zrsp) {
            countPsy = 1;
        } else {
            countPsy = 0;
        }
        if (l >= 11 && tempvalue.has("psy")) {
            countPsy += tempvalue.getJSONObject("psy").getDouble("psyCount11");
            psy = countPsy / 12 * 100;
            psyma = (tempvalue.getJSONObject("psy").getDouble("sumPsy") + psy) / 6;
        } else {
            psy = 0;
        }
        quoteData.getJSONArray("PSY").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("PSY").getJSONArray(l - 1).put(1, psy);
        quoteData.getJSONArray("PSY").getJSONArray(l - 1).put(2, psyma);
    }
    if (indicatorType.equals("ROC")) {
        quoteData.getJSONArray("ROC").put(new JSONArray());
        double roc = 0, rocma = 0;
        if (l > 12 && tempvalue.has("roc")) {
            double refClose12 = tempvalue.getJSONObject("roc").getDouble("refClose12");
            if (refClose12 == 0) {
                roc = 0;
            } else {
                roc = 100 * (zjcj - refClose12) / refClose12;
            }
            rocma = (tempvalue.getJSONObject("roc").getDouble("sumRoc") + roc) / 6;
        } else {
            roc = 0;
        }
        quoteData.getJSONArray("ROC").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("ROC").getJSONArray(l - 1).put(1, roc);
        quoteData.getJSONArray("ROC").getJSONArray(l - 1).put(2, rocma);
    }
    if (indicatorType.equals("WR")) {
        quoteData.getJSONArray("WR").put(new JSONArray());
        double wr = 0, wr2 = 0;
        if (l > 9 && tempvalue.has("wr")) {
            double llv = tempvalue.getJSONObject("wr").getDouble("llv");
            double hhv = tempvalue.getJSONObject("wr").getDouble("hhv");
            hhv = Math.max(hhv, high);
            llv = Math.min(llv, low);
            if (hhv == llv) {
                wr = 0;
            } else {
                wr = 100 * (hhv - zjcj) / (hhv - llv);
            }
        } else {
            wr = 0;
        }
        if (l > 5 && tempvalue.has("wr")) {
            double llv2 = tempvalue.getJSONObject("wr").getDouble("llv2");
            double hhv2 = tempvalue.getJSONObject("wr").getDouble("hhv2");

            hhv2 = Math.max(hhv2, high);
            llv2 = Math.min(llv2, low);
            if (hhv2 == llv2) {
                wr2 = 0;
            } else {
                wr2 = 100 * (hhv2 - zjcj) / (hhv2 - llv2);
            }
        } else {
            wr2 = 0;
        }
        quoteData.getJSONArray("WR").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("WR").getJSONArray(l - 1).put(1, wr);
        quoteData.getJSONArray("WR").getJSONArray(l - 1).put(2, wr2);
    }
    if (indicatorType.equals("VR")) {
        quoteData.getJSONArray("VR").put(new JSONArray());
        double vr = 0, vrma = 0;
        if (l >= 24 && tempvalue.has("vr")) {
            double sum1 = tempvalue.getJSONObject("vr").getDouble("sum1");
            double sum2 = tempvalue.getJSONObject("vr").getDouble("sum2");
            if (zjcj > zrsp) {
                sum1 += cjsl;
            } else {
                sum2 += cjsl;
            }
            if (sum2 == 0) {
                vr = 0;
            } else {
                vr = 100 * sum1 / sum2;
            }
        } else {
            vr = 0;
        }
        if (l >= 6)
            vrma = (tempvalue.getJSONObject("vr").getDouble("sumVr") + vr) / 6;
        quoteData.getJSONArray("VR").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("VR").getJSONArray(l - 1).put(1, vr);
        quoteData.getJSONArray("VR").getJSONArray(l - 1).put(2, vrma);
    }
}

From source file:org.obiba.magma.Coordinate.java

public static Coordinate getCoordinateFrom(String string) {
    // GeoJSON coordinate
    if (string.trim().startsWith("[")) {
        JSONArray array = null;
        try {/*from   www  . jav a2 s.c o m*/
            array = new JSONArray(string);
            return getCoordinateFrom(array);
        } catch (JSONException e) {
            throw new MagmaRuntimeException("Not a valid GeoJSON coordinate", e);
        }
    }
    // JSON coordinate
    if (string.trim().startsWith("{")) {
        JSONObject object = null;
        try {
            object = new JSONObject(string);
            return getCoordinateFrom(object);
        } catch (JSONException e) {
            throw new MagmaRuntimeException("Not a valid JSON coordinate", e);
        }
    }
    // Google coordinate  lat,long
    else {
        String stringToParse = "[" + string.trim() + "]";
        JSONArray array = null;
        try {
            array = new JSONArray(stringToParse);
            return new Coordinate(array.getDouble(1), array.getDouble(0));
        } catch (JSONException e) {
            throw new MagmaRuntimeException("Not a valid coordinate", e);
        }
    }
}

From source file:org.obiba.magma.Coordinate.java

public static Coordinate getCoordinateFrom(JSONArray array) {
    try {/*  w  ww  .ja va  2  s . c o  m*/
        return new Coordinate(array.getDouble(0), array.getDouble(1));
    } catch (JSONException e) {
        throw new MagmaRuntimeException("Not a valid GeoJSON coordinate", e);
    }
}

From source file:mr.robotto.engine.loader.components.MrTransformLoader.java

private void loadLocation(MrVector3f v, JSONArray loc) throws JSONException {
    int index = 0;
    v.x = (float) loc.getDouble(index);
    index++;//  w  w w  .j av a 2 s  . c  o m
    v.y = (float) loc.getDouble(index);
    index++;
    v.z = (float) loc.getDouble(index);
}

From source file:mr.robotto.engine.loader.components.MrTransformLoader.java

private void loadRotation(MrQuaternion q, JSONArray rot) throws JSONException {
    int index = 0;
    q.w = (float) rot.getDouble(index);
    index++;//from w ww. j a  v a2 s. c  om
    q.x = (float) rot.getDouble(index);
    index++;
    q.y = (float) rot.getDouble(index);
    index++;
    q.z = (float) rot.getDouble(index);
}

From source file:mr.robotto.engine.loader.components.MrTransformLoader.java

private void loadScale(MrVector3f s, JSONArray sca) throws JSONException {
    int index = 0;
    s.x = (float) sca.getDouble(index);
    index++;/*from  ww  w . ja v  a2  s  .com*/
    s.y = (float) sca.getDouble(index);
    index++;
    s.z = (float) sca.getDouble(index);
}

From source file:com.cssweb.android.view.KlineViewSingle.java

/**
 * ??/*  w w w  .  ja  v  a  2s .c o  m*/
 * @throws JSONException 
 */
private void makeTodayData() throws JSONException {
    int l = quoteData.getJSONArray("K").length();
    if (quoteData.isNull("joTMP")) {//temp??
        newStockhandler();
        return;
    }
    if (!quoteData.getBoolean("tradeFlag")) {
        //??????
        //???0??
        return;
    }
    JSONObject tempvalue = quoteData.getJSONObject("joTMP");
    double zrsp = quoteData.getDouble("zrsp");
    period = quoteData.getString("period");
    if (period.equals("week") || period.equals("month") || period.equals("year")) {
        if (tempvalue.getString(period) != null) {
            if (tempvalue.isNull("ma") || quoteData.isNull("MA") || quoteData.isNull("K")) {
                makeTmpData();
                return;
            }
            int tp = quoteData.getInt("tp");
            if (tp == 1) {
                String date = tempvalue.getJSONObject(period).getString("date");
                if (DateTool.isSameWeekMonthYear(date, period)) {
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(1,
                            tempvalue.getJSONObject(period).getDouble("open"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(2,
                            tempvalue.getJSONObject(period).getDouble("high"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(3,
                            tempvalue.getJSONObject(period).getDouble("low"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(4, zrsp);
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(5,
                            tempvalue.getJSONObject(period).getDouble("cjsl"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(6,
                            tempvalue.getJSONObject(period).getDouble("cjje"));
                    //quoteData.getJSONArray("K").getJSONArray(l-1).put(0, ) ;
                    zrsp = tempvalue.getJSONObject(period).getDouble("close");
                }
            } else {
                int spayday = quoteData.getInt("spday");
                double cjsl = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(5);
                double cjje = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(6);
                if (spayday == 0) {//0??temp?????
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(2,
                            Math.max(quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(2),
                                    tempvalue.getJSONObject(period).getDouble("high")));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(3,
                            Math.min(quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(3),
                                    tempvalue.getJSONObject(period).getDouble("low")));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(5,
                            cjsl + tempvalue.getJSONObject(period).getDouble("cjsl"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(6,
                            cjje + tempvalue.getJSONObject(period).getDouble("cjje"));
                } else {
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(2,
                            Math.max(quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(2),
                                    tempvalue.getJSONObject(period).getDouble("high")));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(3,
                            Math.min(quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(3),
                                    tempvalue.getJSONObject(period).getDouble("low")));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(5,
                            tempvalue.getJSONObject(period).getDouble("cjsl"));
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(6,
                            tempvalue.getJSONObject(period).getDouble("cjje"));
                }
                double jrkp = tempvalue.getJSONObject(period).getDouble("open");
                if (jrkp != 0) {
                    quoteData.getJSONArray("K").getJSONArray(l - 1).put(1, jrkp);
                }
                zrsp = tempvalue.getJSONObject(period).getDouble("close");
            }
        }
    }

    String qt = quoteData.getJSONArray("K").getJSONArray(l - 1).getString(0);
    double high = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(2);
    double low = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(3);
    double zjcj = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(4);
    double cjsl = quoteData.getJSONArray("K").getJSONArray(l - 1).getDouble(5);

    double summa4 = tempvalue.getJSONObject("ma").getDouble("sumMa4");
    double summa9 = tempvalue.getJSONObject("ma").getDouble("sumMa9");
    double summa19 = tempvalue.getJSONObject("ma").getDouble("sumMa19");
    double summa59 = tempvalue.getJSONObject("ma").getDouble("sumMa59");
    double sumvolma4 = tempvalue.getJSONObject("ma").getDouble("sumMavol4");
    double sumvolma9 = tempvalue.getJSONObject("ma").getDouble("sumMavol9");

    if (mainIndicatorType.toUpperCase().equals("MA") || mainIndicatorType.toUpperCase().equals("BOLL")) {
        quoteData.getJSONArray("MA").put(new JSONArray());
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(0, qt);
        double ma5 = 0;
        if (l > 4)
            ma5 = (summa4 + zjcj) / 5;
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(1, ma5);
        double ma10 = 0;
        if (l > 9)
            ma10 = (summa9 + zjcj) / 10;
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(2, ma10);
        double ma20 = 0;
        if (l > 19)
            ma20 = (summa19 + zjcj) / 20;
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(3, ma20);
        double ma60 = 0;
        if (l > 59)
            ma60 = (summa59 + zjcj) / 60;
        quoteData.getJSONArray("MA").getJSONArray(l - 1).put(4, ma60);
    }
    double mavol5 = (sumvolma4 + cjsl) / 5;
    quoteData.getJSONArray("MA").getJSONArray(l - 1).put(5, mavol5);

    double mavol10 = (sumvolma9 + cjsl) / 10;
    quoteData.getJSONArray("MA").getJSONArray(l - 1).put(6, mavol10);

    if (mainIndicatorType.equals("BOLL")) {
        quoteData.getJSONArray("BOLL").put(new JSONArray());
        double mid = 0;
        double upper = 0;
        double lower = 0;
        if (l > 25) {
            double sumClose = tempvalue.getJSONObject("boll").getDouble("sumClose");
            double sumPowClose = tempvalue.getJSONObject("boll").getDouble("sumPowClose");
            double maPow = 0;
            double temp;
            if (l > 25) {
                mid = (sumClose + zjcj) / 26;
                maPow = (sumPowClose + zjcj * zjcj) / 26;
                temp = (maPow - mid * mid);
                if (temp < 0)
                    temp = 0;
                upper = mid + 2 * Math.sqrt((temp * 26) / (26 - 1));
                lower = mid - 2 * Math.sqrt((temp * 26) / (26 - 1));
            }
        }

        quoteData.getJSONArray("BOLL").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("BOLL").getJSONArray(l - 1).put(1, mid);
        quoteData.getJSONArray("BOLL").getJSONArray(l - 1).put(2, upper);
        quoteData.getJSONArray("BOLL").getJSONArray(l - 1).put(3, lower);
    }

    if (indicatorType.equals("MACD")) {
        quoteData.getJSONArray("MACD").put(new JSONArray());
        double prevemashort = 0;
        double prevemalong = 0;
        double prevdea = 0;
        double dif = 0;
        double dea = 0;
        double macd = 0;
        double emashort = 0;
        double emalong = 0;

        prevemashort = tempvalue.getJSONObject("macd").getDouble("emaShort");
        prevemalong = tempvalue.getJSONObject("macd").getDouble("emaLong");
        prevdea = tempvalue.getJSONObject("macd").getDouble("dea");

        if (l > 1) {
            emashort = (2 * zjcj + (12 - 1) * prevemashort) / (12 + 1);
            emalong = (2 * zjcj + (26 - 1) * prevemalong) / (26 + 1);
            dif = emashort - emalong;
            dea = (2 * dif + (9 - 1) * prevdea) / (9 + 1);
            macd = (dif - dea) * 2;
        }

        quoteData.getJSONArray("MACD").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("MACD").getJSONArray(l - 1).put(1, dif);
        quoteData.getJSONArray("MACD").getJSONArray(l - 1).put(2, dea);
        quoteData.getJSONArray("MACD").getJSONArray(l - 1).put(3, macd);
    }
    if (indicatorType.equals("BIAS")) {
        quoteData.getJSONArray("BIAS").put(new JSONArray());
        double sum5 = tempvalue.getJSONObject("bias").getDouble("sum5");
        double sum11 = tempvalue.getJSONObject("bias").getDouble("sum11");
        double sum23 = tempvalue.getJSONObject("bias").getDouble("sum23");

        double bias1 = l >= 6 ? (zjcj - (sum5 + zjcj) / 6) / ((sum5 + zjcj) / 6) * 100 : 0;
        double bias2 = l >= 12 ? (zjcj - (sum11 + zjcj) / 12) / ((sum11 + zjcj) / 12) * 100 : 0;
        double bias3 = l >= 24 ? (zjcj - (sum23 + zjcj) / 24) / ((sum23 + zjcj) / 24) * 100 : 0;
        quoteData.getJSONArray("BIAS").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("BIAS").getJSONArray(l - 1).put(1, bias1);
        quoteData.getJSONArray("BIAS").getJSONArray(l - 1).put(2, bias2);
        quoteData.getJSONArray("BIAS").getJSONArray(l - 1).put(3, bias3);
    }
    if (indicatorType.equals("RSI")) {
        quoteData.getJSONArray("RSI").put(new JSONArray());

        double rsi1 = 0;
        double rsi2 = 0;
        double rsi3 = 0;

        if (l > 1 && tempvalue.has("rsi")) {
            double smaMax1 = tempvalue.getJSONObject("rsi").getDouble("smaMax1");
            double smaMax2 = tempvalue.getJSONObject("rsi").getDouble("smaMax2");
            double smaMax3 = tempvalue.getJSONObject("rsi").getDouble("smaMax3");
            double smaAbs1 = tempvalue.getJSONObject("rsi").getDouble("smaAbs1");
            double smaAbs2 = tempvalue.getJSONObject("rsi").getDouble("smaAbs2");
            double smaAbs3 = tempvalue.getJSONObject("rsi").getDouble("smaAbs3");

            double rsiMax1 = (Math.max(zjcj - zrsp, 0.0) * 1 + smaMax1 * (6 - 1)) / 6;
            double rsiAbs1 = (Math.abs(zjcj - zrsp) * 1 + smaAbs1 * (6 - 1)) / 6;
            if (rsiAbs1 == 0)
                rsi1 = 0;
            else
                rsi1 = rsiMax1 / rsiAbs1 * 100;

            double rsiMax2 = (Math.max(zjcj - zrsp, 0.0) * 1 + smaMax2 * (12 - 1)) / 12;
            double rsiAbs2 = (Math.abs(zjcj - zrsp) * 1 + smaAbs2 * (12 - 1)) / 12;
            if (rsiAbs2 == 0)
                rsi2 = 0;
            else
                rsi2 = rsiMax2 / rsiAbs2 * 100;

            double rsiMax3 = (Math.max(zjcj - zrsp, 0.0) * 1 + smaMax3 * (24 - 1)) / 24;
            double rsiAbs3 = (Math.abs(zjcj - zrsp) * 1 + smaAbs3 * (24 - 1)) / 24;
            if (rsiAbs3 == 0)
                rsi3 = 0;
            else
                rsi3 = rsiMax3 / rsiAbs3 * 100;
        }
        quoteData.getJSONArray("RSI").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("RSI").getJSONArray(l - 1).put(1, rsi1);
        quoteData.getJSONArray("RSI").getJSONArray(l - 1).put(2, rsi2);
        quoteData.getJSONArray("RSI").getJSONArray(l - 1).put(3, rsi3);
    }
    if (indicatorType.equals("KDJ")) {
        quoteData.getJSONArray("KDJ").put(new JSONArray());
        double newk = 0;
        double newd = 0;
        double newj = 0;

        if (l > 1 && tempvalue.has("kdj")) {
            double K = quoteData.getJSONArray("KDJ").getJSONArray(l - 2).getDouble(1);
            double D = quoteData.getJSONArray("KDJ").getJSONArray(l - 2).getDouble(2);
            double HHV = tempvalue.getJSONObject("kdj").getDouble("hhv");
            double LLV = tempvalue.getJSONObject("kdj").getDouble("llv");
            double nowllv = 0.0;

            if (LLV < low) // l?
                nowllv = LLV;
            else
                nowllv = low;

            double nowhhv = 0.0;
            if (HHV > high)
                nowhhv = HHV;
            else
                nowhhv = high;
            double rsv;
            if (Math.abs(nowhhv - nowllv) < 0.0001) {
                rsv = 0;
            } else {
                rsv = (zjcj - nowllv) / (nowhhv - nowllv) * 100;
            }
            newk = (rsv * 1 + K * (3 - 1)) / 3;
            newd = (newk * 1 + D * (3 - 1)) / 3;
            newj = 3 * newk - 2 * newd;
        }
        quoteData.getJSONArray("KDJ").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("KDJ").getJSONArray(l - 1).put(1, newk);
        quoteData.getJSONArray("KDJ").getJSONArray(l - 1).put(2, newd);
        quoteData.getJSONArray("KDJ").getJSONArray(l - 1).put(3, newj);
    }
    if (indicatorType.equals("CCI")) {
        quoteData.getJSONArray("CCI").put(new JSONArray());
        double CCI = 0;
        if (l > 13 && tempvalue.has("cci")) {
            JSONArray typlist = tempvalue.getJSONObject("cci").getJSONArray("typ");
            double sumTyp = 0;
            double TYP = (zjcj + high + low) / 3;
            double rit = 0;
            for (int i = 0; i < typlist.length(); i++) {
                rit = typlist.getDouble(i);
                if (i == 13)
                    break;
                sumTyp += rit;
            }
            sumTyp += TYP;
            double ma = sumTyp / 14;

            sumTyp = 0;
            for (int i = 0; i < typlist.length(); i++) {
                rit = typlist.getDouble(i);
                if (i == 13)
                    break;
                sumTyp += Math.abs(rit - ma);
            }
            sumTyp += Math.abs(TYP - ma);
            double avedev = sumTyp / 14;

            if (avedev == 0)
                CCI = 0;
            else
                CCI = (TYP - ma) / (0.015 * avedev);
        }
        quoteData.getJSONArray("CCI").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("CCI").getJSONArray(l - 1).put(1, CCI);
    }
    if (indicatorType.equals("OBV")) {
        quoteData.getJSONArray("OBV").put(new JSONArray());
        double obv = 0, maobv = 0;
        if (tempvalue.has("obv")) {
            if (zjcj > zrsp) {
                obv = tempvalue.getJSONObject("obv").getDouble("obv") + cjsl;
            }
            if (zjcj == zrsp) {
                obv = 0;
            }
            if (zjcj < zrsp) {
                obv = tempvalue.getJSONObject("obv").getDouble("obv") - cjsl;
            }
            if (l >= 29) {
                maobv = (tempvalue.getJSONObject("obv").getDouble("sumObv29") + obv) / 30;
            } else {
                maobv = 0;
            }
        }
        quoteData.getJSONArray("OBV").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("OBV").getJSONArray(l - 1).put(1, obv);
        quoteData.getJSONArray("OBV").getJSONArray(l - 1).put(2, maobv);
    }
    if (indicatorType.equals("PSY")) {
        quoteData.getJSONArray("PSY").put(new JSONArray());
        double countPsy = 0, psy = 0, psyma = 0;
        if (zjcj > zrsp) {
            countPsy = 1;
        } else {
            countPsy = 0;
        }
        if (l >= 11 && tempvalue.has("psy")) {
            countPsy += tempvalue.getJSONObject("psy").getDouble("psyCount11");
            psy = countPsy / 12 * 100;
            psyma = (tempvalue.getJSONObject("psy").getDouble("sumPsy") + psy) / 6;
        } else {
            psy = 0;
        }
        quoteData.getJSONArray("PSY").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("PSY").getJSONArray(l - 1).put(1, psy);
        quoteData.getJSONArray("PSY").getJSONArray(l - 1).put(2, psyma);
    }
    if (indicatorType.equals("ROC")) {
        quoteData.getJSONArray("ROC").put(new JSONArray());
        double roc = 0, rocma = 0;
        if (l > 12 && tempvalue.has("roc")) {
            double refClose12 = tempvalue.getJSONObject("roc").getDouble("refClose12");
            if (refClose12 == 0) {
                roc = 0;
            } else {
                roc = 100 * (zjcj - refClose12) / refClose12;
            }
            rocma = (tempvalue.getJSONObject("roc").getDouble("sumRoc") + roc) / 6;
        } else {
            roc = 0;
        }
        quoteData.getJSONArray("ROC").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("ROC").getJSONArray(l - 1).put(1, roc);
        quoteData.getJSONArray("ROC").getJSONArray(l - 1).put(2, rocma);
    }
    if (indicatorType.equals("WR")) {
        quoteData.getJSONArray("WR").put(new JSONArray());
        double wr = 0, wr2 = 0;
        if (l > 9 && tempvalue.has("wr")) {
            double llv = tempvalue.getJSONObject("wr").getDouble("llv");
            double hhv = tempvalue.getJSONObject("wr").getDouble("hhv");
            hhv = Math.max(hhv, high);
            llv = Math.min(llv, low);
            if (hhv == llv) {
                wr = 0;
            } else {
                wr = 100 * (hhv - zjcj) / (hhv - llv);
            }
        } else {
            wr = 0;
        }
        if (l > 5 && tempvalue.has("wr")) {
            double llv2 = tempvalue.getJSONObject("wr").getDouble("llv2");
            double hhv2 = tempvalue.getJSONObject("wr").getDouble("hhv2");

            hhv2 = Math.max(hhv2, high);
            llv2 = Math.min(llv2, low);
            if (hhv2 == llv2) {
                wr2 = 0;
            } else {
                wr2 = 100 * (hhv2 - zjcj) / (hhv2 - llv2);
            }
        } else {
            wr2 = 0;
        }
        quoteData.getJSONArray("WR").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("WR").getJSONArray(l - 1).put(1, wr);
        quoteData.getJSONArray("WR").getJSONArray(l - 1).put(2, wr2);
    }
    if (indicatorType.equals("VR")) {
        quoteData.getJSONArray("VR").put(new JSONArray());
        double vr = 0, vrma = 0;
        if (l >= 24 && tempvalue.has("vr")) {
            double sum1 = tempvalue.getJSONObject("vr").getDouble("sum1");
            double sum2 = tempvalue.getJSONObject("vr").getDouble("sum2");
            if (zjcj > zrsp) {
                sum1 += cjsl;
            } else {
                sum2 += cjsl;
            }
            if (sum2 == 0) {
                vr = 0;
            } else {
                vr = 100 * sum1 / sum2;
            }
        } else {
            vr = 0;
        }
        if (l >= 6)
            vrma = (tempvalue.getJSONObject("vr").getDouble("sumVr") + vr) / 6;
        quoteData.getJSONArray("VR").getJSONArray(l - 1).put(0, qt);
        quoteData.getJSONArray("VR").getJSONArray(l - 1).put(1, vr);
        quoteData.getJSONArray("VR").getJSONArray(l - 1).put(2, vrma);
    }
}

From source file:mr.robotto.engine.loader.components.mesh.MrMeshLoader.java

private void loadVertexData(MrBuffer buffer, JSONArray array) throws JSONException {
    for (int i = 0; i < array.length(); i++) {
        buffer.putFloat((float) array.getDouble(i));
    }//  w w w.j  a  va 2s . com
}

From source file:com.jennifer.ui.util.scale.LinearScale.java

public double get(double x) {
    int index = -1;
    int target;/*from w ww.  j a v a2s.  c om*/

    JSONArray domain = domain();

    for (int i = 0, len = domain.length(); i < len; i++) {

        if (i == len - 1) {
            if (x == domain.getDouble(i)) {
                index = i;
                break;
            }
        } else {
            if (domain.getDouble(i) < domain.getDouble(i + 1)) {
                if (x >= domain.getDouble(i) && x < domain.getDouble(i + 1)) {
                    index = i;
                    break;
                }
            } else if (domain.getDouble(i) >= domain.getDouble(i + 1)) {
                if (x <= domain.getDouble(i) && domain.getDouble(i + 1) < x) {
                    index = i;
                    break;
                }
            }
        }
    }

    JSONArray range = range();

    if (range.length() == 0) {
        if (index == 0) {
            return 0;
        } else if (index == -1) {
            return 1;
        } else {
            double min = domain.getDouble(index - 1);
            double max = domain.getDouble(index);

            double pos = (x - min) / (max - min);

            return pos;
        }
    } else {

        if (domain.length() - 1 == index) {
            return range.getDouble(index);
        } else if (index == -1) {

            double max = max();
            double min = min();

            if (max < x) {

                if (_clamp)
                    return max;

                double last = domain.getDouble(domain.length() - 1);
                double last2 = domain.getDouble(domain.length() - 2);

                double rlast = range.getDouble(range.length() - 1);
                double rlast2 = range.getDouble(range.length() - 2);

                double distLast = Math.abs(last - last2);
                double distRLast = Math.abs(rlast - rlast2);

                return rlast + Math.abs(x - max) * distRLast / distLast;

            } else if (min > x) {

                if (_clamp)
                    return min;

                double first = domain.getDouble(0);
                double first2 = domain.getDouble(1);

                double rfirst = range.getDouble(0);
                double rfirst2 = range.getDouble(1);

                double distFirst = Math.abs(first - first2);
                double distRFirst = Math.abs(rfirst - rfirst2);

                return rfirst - Math.abs(x - min) * distRFirst / distFirst;
            }

            return range.getDouble(range.length() - 1);
        } else {

            double min = domain.getDouble(index);
            double max = domain.getDouble(index + 1);

            double minR = range.getDouble(index);
            double maxR = range.getDouble(index + 1);

            double pos = (x - min) / (max - min);

            double scale = _round ? MathUtil.interpolateRound(minR, maxR, pos)
                    : MathUtil.interpolateNumber(minR, maxR, pos);

            return scale;

        }
    }

}

From source file:com.jennifer.ui.util.scale.LinearScale.java

public JSONArray ticks(int count, boolean isNice, int intNumber) {
    JSONArray list = new JSONArray();

    JSONArray domain = domain();

    if (domain.getDouble(0) == 0 && domain.getDouble(1) == 0) {
        return new JSONArray();
    }/*from w  w w  . ja v  a2  s  .c  om*/

    JSONArray arr = MathUtil.nice(domain.getDouble(0), domain.getDouble(1), count, isNice);

    double min = arr.getDouble(0);
    double max = arr.getDouble(1);
    double range = arr.getDouble(2);
    double spacing = arr.getDouble(3);

    double start = min * intNumber;
    double end = max * intNumber;
    while (start <= end) {
        list.put(start / intNumber);
        start += spacing * intNumber;
    }

    if (list.getDouble(list.length() - 1) * intNumber != end && start > end) {
        list.put(end / intNumber);
    }

    return list;
}