public Dataset getCustomDataset() { int size = elements.size(); if (size > 0) { Date[] dateArray = new Date[size]; double[] highArray = new double[size]; double[] lowArray = new double[size]; double[] openArray = new double[size]; double[] closeArray = new double[size]; double[] volumeArray = new double[size]; for (int i = 0; i < elements.size(); i++) { HighLowElement bean = (HighLowElement) elements.get(i); dateArray[i] = new Date(bean.getDate().getTime()); highArray[i] = bean.getHigh().doubleValue(); lowArray[i] = bean.getLow().doubleValue(); openArray[i] = bean.getOpen().doubleValue(); closeArray[i] = bean.getClose().doubleValue(); volumeArray[i] = bean.getVolume().doubleValue(); } return new DefaultHighLowDataset(series, dateArray, highArray, lowArray, openArray, closeArray, volumeArray); } return null; }
/** * Builds a JFreeChart OHLC dataset from a ta4j time series. * @param series a time series * @return an Open-High-Low-Close dataset */ private static OHLCDataset createOHLCDataset(TimeSeries series) { final int nbTicks = series.getTickCount(); Date[] dates = new Date[nbTicks]; double[] opens = new double[nbTicks]; double[] highs = new double[nbTicks]; double[] lows = new double[nbTicks]; double[] closes = new double[nbTicks]; double[] volumes = new double[nbTicks]; for (int i = 0; i < nbTicks; i++) { Tick tick = series.getTick(i); dates[i] = new Date(tick.getEndTime().toEpochSecond() * 1000); opens[i] = tick.getOpenPrice().toDouble(); highs[i] = tick.getMaxPrice().toDouble(); lows[i] = tick.getMinPrice().toDouble(); closes[i] = tick.getClosePrice().toDouble(); volumes[i] = tick.getVolume().toDouble(); } OHLCDataset dataset = new DefaultHighLowDataset("btc", dates, highs, lows, opens, closes, volumes); return dataset; }
volume[46] = 100.0; sampleHighLowDataset = new DefaultHighLowDataset("First", date, high, low, open, close, volume);