this.high = createNumberArray(high); this.low = createNumberArray(low); this.open = createNumberArray(open); this.close = createNumberArray(close); this.volume = createNumberArray(volume);
/** * Returns the y-value for one item in a series. * <p> * This method (from the {@link XYDataset} interface) is mapped to the * {@link #getCloseValue(int, int)} method. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The y-value. * * @see #getYValue(int, int) */ @Override public Number getY(int series, int item) { return getClose(series, item); }
/** * Returns the high-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The high-value. * * @see #getHigh(int, int) */ @Override public double getHighValue(int series, int item) { double result = Double.NaN; Number h = getHigh(series, item); if (h != null) { result = h.doubleValue(); } return result; }
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; }
/** * Returns the low-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The low-value. * * @see #getLow(int, int) */ @Override public double getLowValue(int series, int item) { double result = Double.NaN; Number l = getLow(series, item); if (l != null) { result = l.doubleValue(); } return result; }
/** * Returns the volume-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The volume-value. * * @see #getVolume(int, int) */ @Override public double getVolumeValue(int series, int item) { double result = Double.NaN; Number v = getVolume(series, item); if (v != null) { result = v.doubleValue(); } return result; }
/** * Returns the open-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The open-value. * * @see #getOpen(int, int) */ public double getOpenValue(int series, int item) { double result = Double.NaN; Number open = getOpen(series, item); if (open != null) { result = open.doubleValue(); } return result; }
/** * 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; }
/** * Returns the low-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The low-value. * * @see #getLow(int, int) */ public double getLowValue(int series, int item) { double result = Double.NaN; Number low = getLow(series, item); if (low != null) { result = low.doubleValue(); } return result; }
/** * Returns the volume-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The volume-value. * * @see #getVolume(int, int) */ public double getVolumeValue(int series, int item) { double result = Double.NaN; Number volume = getVolume(series, item); if (volume != null) { result = volume.doubleValue(); } return result; }
/** * Returns the open-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The open-value. * * @see #getOpen(int, int) */ @Override public double getOpenValue(int series, int item) { double result = Double.NaN; Number open = getOpen(series, item); if (open != null) { result = open.doubleValue(); } return result; }
/** * Returns the y-value for one item in a series. * <p> * This method (from the {@link XYDataset} interface) is mapped to the * {@link #getCloseValue(int, int)} method. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The y-value. * * @see #getYValue(int, int) */ public Number getY(int series, int item) { return getClose(series, item); }
volume[46] = 100.0; sampleHighLowDataset = new DefaultHighLowDataset("First", date, high, low, open, close, volume);
/** * Returns the high-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The high-value. * * @see #getHigh(int, int) */ public double getHighValue(int series, int item) { double result = Double.NaN; Number high = getHigh(series, item); if (high != null) { result = high.doubleValue(); } return result; }
/** * Constructs a new high/low/open/close dataset. * <p> * The current implementation allows only one series in the dataset. * This may be extended in a future version. * * @param seriesKey the key for the series ({@code null} not * permitted). * @param date the dates ({@code null} not permitted). * @param high the high values ({@code null} not permitted). * @param low the low values ({@code null} not permitted). * @param open the open values ({@code null} not permitted). * @param close the close values ({@code null} not permitted). * @param volume the volume values ({@code null} not permitted). */ public DefaultHighLowDataset(Comparable seriesKey, Date[] date, double[] high, double[] low, double[] open, double[] close, double[] volume) { Args.nullNotPermitted(seriesKey, "seriesKey"); Args.nullNotPermitted(date, "date"); this.seriesKey = seriesKey; this.date = date; this.high = createNumberArray(high); this.low = createNumberArray(low); this.open = createNumberArray(open); this.close = createNumberArray(close); this.volume = createNumberArray(volume); }
/** * Returns the close-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The close-value. * * @see #getClose(int, int) */ @Override public double getCloseValue(int series, int item) { double result = Double.NaN; Number c = getClose(series, item); if (c != null) { result = c.doubleValue(); } return result; }
/** * Returns the close-value (as a double primitive) for an item within a * series. * * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The close-value. * * @see #getClose(int, int) */ public double getCloseValue(int series, int item) { double result = Double.NaN; Number close = getClose(series, item); if (close != null) { result = close.doubleValue(); } return result; }