Example usage for org.jfree.data.time TimePeriodValues TimePeriodValues

List of usage examples for org.jfree.data.time TimePeriodValues TimePeriodValues

Introduction

In this page you can find the example usage for org.jfree.data.time TimePeriodValues TimePeriodValues.

Prototype

public TimePeriodValues(String name) 

Source Link

Document

Creates a new (empty) collection of time period values.

Usage

From source file:net.commerce.zocalo.freechart.ChartTest.java

private TimePeriodValuesCollection createBottomValues(Minute now) {
    TimePeriodValues aValues = new TimePeriodValues("volleyball");
    aValues.add(new TimePeriodValue(new Second(2, now), .2));
    aValues.add(new TimePeriodValue(new Second(12, now), .25));
    aValues.add(new TimePeriodValue(new Second(29, now), .26));
    aValues.add(new TimePeriodValue(new Second(35, now), .18));
    aValues.add(new TimePeriodValue(new Second(45, now), .33));
    aValues.add(new TimePeriodValue(new Second(58, now), .33));
    TimePeriodValuesCollection aSeries = new TimePeriodValuesCollection();
    aSeries.addSeries(aValues);// ww  w.ja v a2s . com
    return aSeries;
}

From source file:ch.ksfx.web.services.chart.ObservationChartGenerator.java

public List<TimePeriodValues> getBollingerTimeframeBands(TimeSeries asset, Date startDate, Date endDate,
        Integer timeframeSeconds, Integer numberOfTimeframes, Integer bollingerK) {
    List<TimePeriodValues> bollingerBands = new ArrayList<TimePeriodValues>();

    List<Observation> assetPrices = observationDAO.queryObservationsSparse(asset.getId().intValue(), startDate,
            endDate);/*from   w  w  w.  j  av  a  2 s  .  c o  m*/

    //Get some earlier prices to calc simple moving average TODO earlier prices
    List<Observation> movingAveragePrices = AssetPriceSparser.sparseAssetPriceWithoutAveragingObservation(
            observationDAO.queryObservationsSparse(asset.getId().intValue(), startDate, endDate),
            timeframeSeconds);

    assetPrices = simplifyAssetPrices(assetPrices);

    TimePeriodValues middleBand = new TimePeriodValues(
            "SMA" + (numberOfTimeframes / 60 / 60 / 24) + " " + asset.getName());

    TimePeriodValues topBand = new TimePeriodValues("TimeBollinger Top K" + bollingerK + " " + asset.getName());
    TimePeriodValues bottomBand = new TimePeriodValues(
            "TimeBollinger Bottom K" + bollingerK + " " + asset.getName());

    List<Observation> relevantMovingAveragePrices = null;
    Double movingAverage = null;
    Double standardDeviation = null;

    Integer filterSizer = 0;

    for (Observation ap : assetPrices) {

        for (Integer iI = filterSizer; (iI + 1) < movingAveragePrices.size(); iI++) {
            if (movingAveragePrices.get(iI + 1).getObservationTime().after(ap.getObservationTime())) {
                //We went to far, begin index was the last one
                filterSizer = iI;
                break;
            }
        }

        if ((filterSizer - numberOfTimeframes) < 0) {
            continue;
        }

        relevantMovingAveragePrices = movingAveragePrices.subList((filterSizer - numberOfTimeframes),
                filterSizer);

        movingAverage = MovingAverageCalculator.calculateMovingAverageObservation(relevantMovingAveragePrices,
                true);

        middleBand.add(new SimpleTimePeriod(ap.getObservationTime(), ap.getObservationTime()), movingAverage);

        if (relevantMovingAveragePrices.size() > 1) {
            standardDeviation = BollingerCalculator
                    .calcStandardDeviationObservation(relevantMovingAveragePrices, true);

            topBand.add(new SimpleTimePeriod(ap.getObservationTime(), ap.getObservationTime()),
                    movingAverage + (standardDeviation * bollingerK));
            bottomBand.add(new SimpleTimePeriod(ap.getObservationTime(), ap.getObservationTime()),
                    movingAverage - (standardDeviation * bollingerK));
        }
    }

    bollingerBands.add(middleBand);

    bollingerBands.add(topBand);
    bollingerBands.add(bottomBand);

    return bollingerBands;
}

From source file:net.commerce.zocalo.freechart.ChartGenerator.java

static public TimePeriodValuesCollection getHistoricalPrices(String claimName, List trades) {
    TimePeriodValues values = new TimePeriodValues(claimName);
    for (Iterator iterator = trades.iterator(); iterator.hasNext();) {
        Trade trade = (Trade) iterator.next();
        if (!trade.getQuantity().isZero()) {
            if (trade.getPos().isInvertedPosition()) {
                values.add(trade.timeAndPriceInverted());
            } else {
                values.add(trade.timeAndPrice());
            }/*from  w  w  w.  j  a v a 2 s .c  o  m*/
        }
    }
    return new TimePeriodValuesCollection(values);
}

From source file:net.commerce.zocalo.freechart.ChartGenerator.java

static public TimePeriodValuesCollection getHistoricalVolumes(String claimName, List trades) {
    TimePeriodValues values = new TimePeriodValues(claimName);
    for (Iterator iterator = trades.iterator(); iterator.hasNext();) {
        Trade trade = (Trade) iterator.next();
        TimePeriodValue volume = trade.timeAndVolume();
        if (volume != null) {
            values.add(volume);/*from  w  w w . j a  v  a 2 s.  c o m*/
        }
    }
    return new TimePeriodValuesCollection(values);
}

From source file:net.commerce.zocalo.freechart.ChartGenerator.java

static public void initializeSeries(Dictionary<String, TimePeriodValues> positions,
        TimePeriodValuesCollection allValues, Claim claim) {
    Position[] allPositions = claim.positions();
    if (allPositions.length == 2) {
        int less = allPositions[0].comparePersistentId(allPositions[1]);
        Position pos = allPositions[less < 0 ? 0 : 1]; // pick one stably

        TimePeriodValues values = new TimePeriodValues(pos.getName());
        positions.put(pos.getName(), values);
        allValues.addSeries(values);// www.j ava2 s.c om
    } else {
        SortedSet<Position> sortedPositions = claim.sortPositions();
        for (Iterator<Position> positionIterator = sortedPositions.iterator(); positionIterator.hasNext();) {
            Position pos = positionIterator.next();
            TimePeriodValues values = new TimePeriodValues(pos.getName());
            positions.put(pos.getName(), values);
            allValues.addSeries(values);
        }
    }
}

From source file:ch.ksfx.web.services.chart.ObservationChartGenerator.java

public JFreeChart generateChart(TimeSeries timeSeries, Date startDate, Date endDate) {
    List<Observation> observations = observationDAO.queryObservationsSparse(timeSeries.getId().intValue(),
            startDate, endDate);//from w  w  w . j a  va 2s .c o  m

    if (observations == null || observations.size() == 0 || observations.isEmpty()) {
        Observation o = observationDAO.getLastObservationForTimeSeriesId(timeSeries.getId().intValue());
        Long diffInMillis = endDate.getTime() - startDate.getTime();
        startDate = DateUtils.addMilliseconds(o.getObservationTime(), diffInMillis.intValue() * -1);

        System.out.println("[GRAPH] Found 0 Observations trying new query (" + timeSeries.getId() + ") "
                + "Startdate: " + startDate.toString() + " End date: " + endDate.toString());
        observations = observationDAO.queryObservationsSparse(timeSeries.getId().intValue(), startDate,
                DateUtils.addMilliseconds(o.getObservationTime(), 1000));
    }

    System.out
            .println("[GRAPH] Observations size: " + observations.size() + " for (" + timeSeries.getId() + ")");

    //assetPrices = simplifyAssetPrices(assetPrices);

    TimePeriodValues assetPriceTimePeriodValues = new TimePeriodValues(timeSeries.getName());
    TimePeriodValuesCollection dataset = new TimePeriodValuesCollection();

    for (Observation o : observations) {
        assetPriceTimePeriodValues.add(new SimpleTimePeriod(o.getObservationTime(), o.getObservationTime()),
                Double.parseDouble(o.getScalarValue()));
    }

    dataset.addSeries(assetPriceTimePeriodValues);

    JFreeChart jFreeChart = ChartFactory.createXYLineChart("Performance", "Time", "Value", dataset,
            PlotOrientation.VERTICAL, true, false, false);

    setRange(jFreeChart, observations);

    return jFreeChart;
}

From source file:com.prezerak.windmill.gui.AveragesPanel.java

private TimePeriodValues queryAlarm(short alarmcode, String title) {
    alarmSet = WindMill.database.queryAlarm(alarmcode, startDate, endDate);
    TimePeriodValues dataset = new TimePeriodValues(title);
    try {/* w ww.j  a v  a2 s.co  m*/
        alarmSet.beforeFirst();
        while (alarmSet.next()) {
            SimpleTimePeriod timePeriod = new SimpleTimePeriod(
                    alarmSet.getLong(alarmSet.findColumn("startTime")),
                    alarmSet.getLong(alarmSet.findColumn("endTime")));
            TimePeriodValue timePeriodValue = new TimePeriodValue(timePeriod, 1);
            dataset.add(timePeriodValue);
        }

    } catch (SQLException e) {
        com.prezerak.windmill.util.Utilities.printSQLException(e);
    } finally {
        if (alarmSet != null) {
            try {
                alarmSet.close();
            } catch (SQLException e) {
                Utilities.printSQLException(e);
            }
        }
        alarmSet = null;
    }
    return dataset;
}

From source file:net.nikr.eve.jeveasset.gui.tabs.tracker.TrackerTab.java

private void createData() {
    if (updateLock) {
        return;// w  ww  . j av a 2  s.co m
    }
    List<String> owners = jOwners.getSelectedValuesList();
    walletBalance = new TimePeriodValues(TabsTracker.get().walletBalance());
    assets = new TimePeriodValues(TabsTracker.get().assets());
    sellOrders = new TimePeriodValues(TabsTracker.get().sellOrders());
    escrows = new TimePeriodValues(TabsTracker.get().escrows());
    escrowsToCover = new TimePeriodValues(TabsTracker.get().escrowsToCover());
    manufacturing = new TimePeriodValues(TabsTracker.get().manufacturing());
    contractCollateral = new TimePeriodValues(TabsTracker.get().contractCollateral());
    contractValue = new TimePeriodValues(TabsTracker.get().contractValue());
    Date from = getFromDate();
    Date to = getToDate();
    cache = new TreeMap<SimpleTimePeriod, Value>();
    Map<Date, Boolean> assetColumns = new TreeMap<Date, Boolean>();
    Map<Date, Boolean> walletColumns = new TreeMap<Date, Boolean>();
    if (owners != null) { //No data set...
        for (String owner : owners) {
            for (Value data : Settings.get().getTrackerData().get(owner)) {
                SimpleTimePeriod date = new SimpleTimePeriod(data.getDate(), data.getDate());
                if ((from == null || data.getDate().after(from)) && (to == null || data.getDate().before(to))) {
                    Value value = cache.get(date);
                    if (value == null) {
                        value = new Value(data.getDate());
                        cache.put(date, value);
                    }

                    //Default
                    Boolean assetBoolean = assetColumns.get(data.getDate());
                    if (assetBoolean == null) {
                        assetColumns.put(data.getDate(), false);
                    }
                    Boolean walletBoolean = walletColumns.get(data.getDate());
                    if (walletBoolean == null) {
                        walletColumns.put(data.getDate(), false);
                    }
                    if (data.getAssetsFilter().isEmpty()) {
                        value.addAssets(data.getAssetsTotal());
                    } else {
                        assetColumns.put(data.getDate(), true);
                        for (Map.Entry<String, Double> entry : data.getAssetsFilter().entrySet()) {
                            if (assetNodes.get(entry.getKey()).isSelected()) {
                                value.addAssets(entry.getKey(), entry.getValue());
                            }
                        }
                    }
                    value.addEscrows(data.getEscrows());
                    value.addEscrowsToCover(data.getEscrowsToCover());
                    value.addManufacturing(data.getManufacturing());
                    value.addContractCollateral(data.getContractCollateral());
                    value.addContractValue(data.getContractValue());
                    value.addSellOrders(data.getSellOrders());
                    if (data.getBalanceFilter().isEmpty()) {
                        value.addBalance(data.getBalanceTotal());
                    } else {
                        walletColumns.put(data.getDate(), true);
                        for (Map.Entry<String, Double> entry : data.getBalanceFilter().entrySet()) {
                            if (accountNodes.get(entry.getKey()).isSelected()) {
                                value.addBalance(entry.getKey(), entry.getValue());
                            }
                        }
                    }
                }
            }
        }
        for (Map.Entry<SimpleTimePeriod, Value> entry : cache.entrySet()) {
            walletBalance.add(entry.getKey(), entry.getValue().getBalanceTotal());
            assets.add(entry.getKey(), entry.getValue().getAssetsTotal());
            sellOrders.add(entry.getKey(), entry.getValue().getSellOrders());
            escrows.add(entry.getKey(), entry.getValue().getEscrows());
            escrowsToCover.add(entry.getKey(), entry.getValue().getEscrowsToCover());
            manufacturing.add(entry.getKey(), entry.getValue().getManufacturing());
            contractCollateral.add(entry.getKey(), entry.getValue().getContractCollateral());
            contractValue.add(entry.getKey(), entry.getValue().getContractValue());
        }
    }
    int count;
    count = 0;
    assetColumn = assetColumns.size(); //Default
    for (Map.Entry<Date, Boolean> entry : assetColumns.entrySet()) {
        if (entry.getValue()) {
            assetColumn = count;
            break;
        }
        count++;
    }
    count = 0;
    walletColumn = walletColumns.size(); //Default
    for (Map.Entry<Date, Boolean> entry : walletColumns.entrySet()) {
        if (entry.getValue()) {
            walletColumn = count;
            break;
        }
        count++;
    }
    updateShown();
}

From source file:net.nikr.eve.jeveasset.gui.tabs.tracker.TrackerTab.java

private void updateShown() {
    //Remove All/*from  ww  w  . java2  s  .  c  om*/
    while (dataset.getSeriesCount() != 0) {
        dataset.removeSeries(0);
    }
    render.clear();
    if (jTotal.isSelected()) { //Update total
        TimePeriodValues total = new TimePeriodValues(TabsTracker.get().total());
        for (Map.Entry<SimpleTimePeriod, Value> entry : cache.entrySet()) {
            double t = 0;
            if (jWalletBalance.isSelected() && walletBalance != null) {
                t += entry.getValue().getBalanceTotal();
            }
            if (jAssets.isSelected() && assets != null) {
                t += entry.getValue().getAssetsTotal();
            }
            if (jSellOrders.isSelected() && sellOrders != null) {
                t += entry.getValue().getSellOrders();
            }
            if (jEscrows.isSelected() && escrows != null) {
                t += entry.getValue().getEscrows();
            }
            //Escrows To Cover is not money you own, It's technically money you owe
            //Therefor it's not included in the total
            //See: https://forums.eveonline.com/default.aspx?g=posts&m=6607898#post6607898
            //if (jEscrowsToCover.isSelected() && escrowsToCover != null) {
            //   t += entry.getValue().getEscrowsToCover();
            //}
            if (jManufacturing.isSelected() && manufacturing != null) {
                t += entry.getValue().getManufacturing();
            }
            if (jContractCollateral.isSelected() && contractCollateral != null) {
                t += entry.getValue().getContractCollateral();
            }
            if (jContractValue.isSelected() && contractValue != null) {
                t += entry.getValue().getContractValue();
            }
            total.add(entry.getKey(), t);
        }
        dataset.addSeries(total);
        Integer minColumn = null;
        if (jWalletBalance.isSelected() && walletColumn != null) {
            minColumn = walletColumn;
        }
        if (jAssets.isSelected() && assetColumn != null) {
            if (minColumn != null) {
                minColumn = Math.min(minColumn, assetColumn);
            } else {
                minColumn = assetColumn;
            }
        }
        render.add(dataset.getSeriesCount() - 1, minColumn);
        updateRender(dataset.getSeriesCount() - 1, Color.RED.darker());
    }
    if (jWalletBalance.isSelected() && walletBalance != null) {
        dataset.addSeries(walletBalance);
        render.add(dataset.getSeriesCount() - 1, walletColumn);
        updateRender(dataset.getSeriesCount() - 1, Color.BLUE.darker());

    }
    if (jAssets.isSelected() && assets != null) {
        dataset.addSeries(assets);
        render.add(dataset.getSeriesCount() - 1, assetColumn);
        updateRender(dataset.getSeriesCount() - 1, Color.GREEN.darker().darker());
    }
    if (jSellOrders.isSelected() && sellOrders != null) {
        dataset.addSeries(sellOrders);
        updateRender(dataset.getSeriesCount() - 1, Color.CYAN.darker());
    }
    if (jEscrows.isSelected() && escrows != null) {
        dataset.addSeries(escrows);
        updateRender(dataset.getSeriesCount() - 1, Color.BLACK);
    }
    if (jEscrowsToCover.isSelected() && escrowsToCover != null) {
        dataset.addSeries(escrowsToCover);
        updateRender(dataset.getSeriesCount() - 1, Color.GRAY);
    }
    if (jManufacturing.isSelected() && manufacturing != null) {
        dataset.addSeries(manufacturing);
        updateRender(dataset.getSeriesCount() - 1, Color.MAGENTA);
    }
    if (jContractCollateral.isSelected() && contractCollateral != null) {
        dataset.addSeries(contractCollateral);
        updateRender(dataset.getSeriesCount() - 1, Color.PINK);
    }
    if (jContractValue.isSelected() && contractValue != null) {
        dataset.addSeries(contractValue);
        updateRender(dataset.getSeriesCount() - 1, Color.ORANGE);
    }
    //Add empty dataset
    if (dataset.getSeriesCount() == 0) {
        TimePeriodValues timePeriodValues = new TimePeriodValues(TabsTracker.get().empty());
        dataset.addSeries(timePeriodValues);
        updateRender(dataset.getSeriesCount() - 1, Color.BLACK);
    }
    jNextChart.getXYPlot().getRangeAxis().setAutoRange(true);
    jNextChart.getXYPlot().getDomainAxis().setAutoRange(true);
    Number maxNumber = DatasetUtilities.findMaximumRangeValue(dataset);
    NumberAxis rangeAxis = (NumberAxis) jNextChart.getXYPlot().getRangeAxis();
    rangeAxis.setNumberFormatOverride(Formater.LONG_FORMAT); //Default
    if (maxNumber != null && (maxNumber instanceof Double)) {
        double max = (Double) maxNumber;
        if (max > 1000000000000.0) { //Higher than 1 Trillion
            rangeAxis.setNumberFormatOverride(Formater.TRILLIONS_FORMAT);
        } else if (max > 1000000000.0) { //Higher than 1 Billion
            rangeAxis.setNumberFormatOverride(Formater.BILLIONS_FORMAT);
        } else if (max > 1000000.0) { //Higher than 1 Million
            rangeAxis.setNumberFormatOverride(Formater.MILLIONS_FORMAT);
        }
    }
}