List of usage examples for org.jfree.data.time TimePeriodValues TimePeriodValues
public TimePeriodValues(String name)
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); } } }