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

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

Introduction

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

Prototype

public Minute(Date time) 

Source Link

Document

Constructs a new instance, based on the supplied date/time and the default time zone.

Usage

From source file:msec.org.Tools.java

private static XYDataset createDataset(OneDayValue[] oneDayValues) {
    TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();

    for (int j = 0; j < oneDayValues.length; j++) {

        TimeSeries timeseries = new TimeSeries(oneDayValues[j].getDate());

        Minute current = new Minute(gc.getTime());
        int[] data = oneDayValues[j].getValues();

        int len = data.length - 1;
        //if it is today... check actual length for data
        if (oneDayValues[j].getDate().equals(Tools.nowString("yyyyMMdd"))) {
            for (int i = len; i >= 0; i--) {
                if (data[i] != 0) {
                    len = i;/*from  ww w.  jav  a  2s  .c  om*/
                    break;
                }
            }
        }

        for (int i = 0; i < len; ++i) {
            timeseries.add(current, (double) (data[i]));
            current = (Minute) current.next();
        }
        timeseriescollection.addSeries(timeseries);
    }

    return timeseriescollection;
}

From source file:com.charts.IntradayChart.java

public IntradayChart(YStockQuote currentStock) {

    TimeSeries series = new TimeSeries(currentStock.get_name());
    ArrayList<String> fiveDayData = currentStock.get_one_day_data();
    int length = fiveDayData.size();
    for (int i = 17; i < length; i++) {
        String[] data = fiveDayData.get(i).split(",");
        Date time = new Date((long) Integer.parseInt(data[0]) * 1000);
        DateFormat df = new SimpleDateFormat("MM-dd-yyyy-h-m");
        series.addOrUpdate(new Minute(time), Double.parseDouble(data[1]));
    }/*w w w  .  java  2  s.  com*/
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);
    JFreeChart chart = ChartFactory.createTimeSeriesChart(
            currentStock.get_name() + "(" + currentStock.get_symbol() + ")" + " Intraday", "Date", "Price",
            dataset, true, true, false);
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.WHITE);
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);
    ValueAxis yAxis = (ValueAxis) plot.getRangeAxis();
    DateAxis xAxis = (DateAxis) plot.getDomainAxis();
    xAxis.setTimeline(SegmentedTimeline.newMondayThroughFridayTimeline());
    xAxis.setDateFormatOverride(new SimpleDateFormat("h:m a"));
    xAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
    //xAxis.setVerticalTickLabels(true);
    chartPanel = new ChartPanel(chart);
    chart.setBackgroundPaint(chartPanel.getBackground());
    plot.setDomainGridlinePaint(Color.lightGray);
    plot.setRangeGridlinePaint(Color.lightGray);
    chartPanel.setVisible(true);
    chartPanel.revalidate();
    chartPanel.repaint();
}

From source file:com.charts.FiveDayChart.java

public FiveDayChart(YStockQuote currentStock) {
    TimeSeries series = new TimeSeries(currentStock.get_name());
    ArrayList<String> fiveDayData = currentStock.get_five_day_data();
    int length = fiveDayData.size();
    for (int i = 22; i < length; i += 5) {
        String[] data = fiveDayData.get(i).split(",");
        Date time = new Date((long) Integer.parseInt(data[0]) * 1000);
        DateFormat df = new SimpleDateFormat("MM-dd-yyyy-h-m");
        series.addOrUpdate(new Minute(time), Double.parseDouble(data[1]));
    }//from  w w w.  j a v a2s .c  o m
    String[] data = fiveDayData.get(length - 1).split(",");
    Date time = new Date((long) Integer.parseInt(data[0]) * 1000);
    DateFormat df = new SimpleDateFormat("MM-dd-yyyy-h-m");
    series.addOrUpdate(new Minute(time), Double.parseDouble(data[1]));

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);
    JFreeChart chart = ChartFactory.createTimeSeriesChart(
            currentStock.get_name() + "(" + currentStock.get_symbol() + ")" + " Five Day", "Date", "Price",
            dataset, true, true, false);
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);
    ValueAxis yAxis = (ValueAxis) plot.getRangeAxis();

    DateAxis xAxis = (DateAxis) plot.getDomainAxis();
    Date now = new Date();
    SegmentedTimeline segmentedTimeline = SegmentedTimeline.newFifteenMinuteTimeline();
    segmentedTimeline.addBaseTimelineExclusions(segmentedTimeline.getStartTime(), now.getTime());
    Calendar[][] holidays = DayRange.getHolidayDates();
    for (int i = 0; i < holidays[0].length; i++) {
        Calendar day = Calendar.getInstance();
        day.set(Calendar.YEAR, holidays[0][i].get(Calendar.YEAR));
        day.set(Calendar.MONTH, holidays[0][i].get(Calendar.MONTH));
        day.set(Calendar.DAY_OF_MONTH, holidays[0][i].get(Calendar.DAY_OF_MONTH));
        day.set(Calendar.HOUR_OF_DAY, 9);
        segmentedTimeline.addException(day.getTimeInMillis(), day.getTimeInMillis() + 21600000);
    }
    xAxis.setTimeline(segmentedTimeline);
    xAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
    //xAxis.setVerticalTickLabels(true);
    xAxis.setDateFormatOverride(new SimpleDateFormat("MM-dd"));
    xAxis.setAutoTickUnitSelection(false);
    xAxis.setAutoRange(false);

    StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
    renderer1.setSeriesPaint(0, Color.BLUE);
    TimeSeries movingAverage5 = MovingAverage.createMovingAverage(series, "MA(5)", 30, 0);
    Double currMA5 = (Double) movingAverage5.getDataItem(movingAverage5.getItemCount() - 1).getValue();
    currMA5 = Math.round(currMA5 * 100.0) / 100.0;
    movingAverage5.setKey("MA(5): " + currMA5);
    TimeSeriesCollection collection = new TimeSeriesCollection();
    collection.addSeries(movingAverage5);
    plot.setDataset(1, collection);
    plot.setRenderer(1, renderer1);

    plot.setBackgroundPaint(Color.WHITE);

    chartPanel = new ChartPanel(chart);
    chart.setBackgroundPaint(chartPanel.getBackground());
    plot.setDomainGridlinePaint(Color.lightGray);
    plot.setRangeGridlinePaint(Color.lightGray);
    chartPanel.setVisible(true);
    chartPanel.revalidate();
    chartPanel.repaint();
}

From source file:ta4jexamples.analysis.BuyAndSellSignalsToChart.java

/**
 * Builds a JFreeChart time series from a Ta4j time series and an indicator.
 * @param tickSeries the ta4j time series
 * @param indicator the indicator//from   w w  w. j a  v  a  2  s . c o m
 * @param name the name of the chart time series
 * @return the JFreeChart time series
 */
private static org.jfree.data.time.TimeSeries buildChartTimeSeries(TimeSeries tickSeries,
        Indicator<Decimal> indicator, String name) {
    org.jfree.data.time.TimeSeries chartTimeSeries = new org.jfree.data.time.TimeSeries(name);
    for (int i = 0; i < tickSeries.getTickCount(); i++) {
        Tick tick = tickSeries.getTick(i);
        chartTimeSeries.add(new Minute(Date.from(tick.getEndTime().toInstant())),
                indicator.getValue(i).toDouble());
    }
    return chartTimeSeries;
}

From source file:ta4jexamples.analysis.CashFlowToChart.java

/**
 * Builds a JFreeChart time series from a Ta4j time series and an indicator.
 * @param tickSeries the ta4j time series
 * @param indicator the indicator/*from ww w .  j  a v a2  s  . com*/
 * @param name the name of the chart time series
 * @return the JFreeChart time series
 */
private static org.jfree.data.time.TimeSeries buildChartTimeSeries(TimeSeries tickSeries,
        Indicator<Decimal> indicator, String name) {
    org.jfree.data.time.TimeSeries chartTimeSeries = new org.jfree.data.time.TimeSeries(name);
    for (int i = 0; i < tickSeries.getTickCount(); i++) {
        Tick tick = tickSeries.getTick(i);
        chartTimeSeries.add(new Minute(new Date(tick.getEndTime().toEpochSecond() * 1000)),
                indicator.getValue(i).toDouble());
    }
    return chartTimeSeries;
}

From source file:com.leonarduk.finance.analysis.BuyAndSellSignalsToChart.java

/**
 * Runs a strategy over a time series and adds the value markers
 * corresponding to buy/sell signals to the plot.
 *
 * @param series/*from   w ww  .  jav  a2s .c  o m*/
 *            a time series
 * @param strategy2
 *            a trading strategy
 * @param plot
 *            the plot
 */
private static void addBuySellSignals(final TimeSeries series, final AbstractStrategy strategy2,
        final XYPlot plot) {
    // Running the strategy
    final List<Trade> trades = series.run(strategy2.getStrategy()).getTrades();
    // Adding markers to plot
    for (final Trade trade : trades) {
        // Buy signal
        final double buySignalTickTime = new Minute(
                series.getTick(trade.getEntry().getIndex()).getEndTime().toDate()).getFirstMillisecond();
        final Marker buyMarker = new ValueMarker(buySignalTickTime);
        buyMarker.setPaint(Color.GREEN);
        buyMarker.setLabel("B");
        plot.addDomainMarker(buyMarker);
        // Sell signal
        final double sellSignalTickTime = new Minute(
                series.getTick(trade.getExit().getIndex()).getEndTime().toDate()).getFirstMillisecond();
        final Marker sellMarker = new ValueMarker(sellSignalTickTime);
        sellMarker.setPaint(Color.RED);
        sellMarker.setLabel("S");
        plot.addDomainMarker(sellMarker);
    }
}

From source file:y.graphs.ChartHelperELF.java

private static TimeSeriesCollection createDataset(ElfValue[][] dayvalues, int[] mediane,
        boolean[] medianevalide, int med_max, Config config, ArrayList<ConfigSerie> series) {
    final TimeSeries[] aserie = new TimeSeries[series.size()];
    for (int i = 0; i < aserie.length; i++)
        aserie[i] = new TimeSeries(series.get(i).getName());

    for (int d = 0; d < dayvalues.length; d++) {
        final ElfValue[] day = dayvalues[d];

        for (int i = 0; i < day.length; i++) {
            final ElfValue value = day[i];
            final DateTime time = value.getTime();

            final RegularTimePeriod date = new Minute(time.toDate());

            if (value.isValid())
                for (int aix = 0; aix < aserie.length; aix++)
                    series.get(aix).add(aserie[aix], date, value.getValue(), mediane[d], medianevalide[d],
                            mediane[med_max]);
        }//from www.  j a  v a 2s  .co  m
    }

    final TimeSeriesCollection dataset = new TimeSeriesCollection();

    for (int aix = 0; aix < aserie.length; aix++)
        dataset.addSeries(aserie[aix]);

    return dataset;
}

From source file:msec.org.Tools.java

private static XYDataset createDaysDataset(ArrayList<OneDayValue> oneDayValues, GregorianCalendar startgc,
        OneAttrDaysChart chart) {//www  .  j a v  a  2s.  c o  m
    TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
    TimeSeries timeseries = new TimeSeries(
            oneDayValues.get(0).getDate() + "-" + oneDayValues.get(oneDayValues.size() - 1).getDate());
    int sum = 0;
    int max = 0;
    int min = 0;
    Minute current = new Minute(startgc.getTime());
    for (int j = 0; j < oneDayValues.size(); j++) {
        int[] data = oneDayValues.get(j).getValues();
        //check actual length for data
        int len = data.length - 1;
        if (j == oneDayValues.size() - 1) {
            //if last day is today...
            if (oneDayValues.get(j).getDate().equals(Tools.nowString("yyyyMMdd"))) {
                for (int i = len; i >= 0; i--) {
                    if (data[i] != 0) {
                        len = i;
                        break;
                    }
                }
            }
        }
        for (int i = 0; i < len; ++i) {
            timeseries.add(current, (double) (data[i]));
            sum += data[i];
            max = Math.max(max, data[i]);
            if (min == 0)
                min = data[i];
            else if (data[i] != 0)
                min = Math.min(min, data[i]);
            current = (Minute) current.next();
        }
    }
    chart.setMax(max);
    chart.setMin(min);
    chart.setSum(sum);
    timeseriescollection.addSeries(timeseries);
    return timeseriescollection;
}

From source file:com.sigma.applet.GraphsApplet.java

private TimeSeriesCollection createTimeSeriesCollection1(double d) {

    TimeSeries t1 = new TimeSeries("Realtime", "time", "Value", Minute.class);
    try {// ww w. j a  v a2s. co  m
        long t = System.currentTimeMillis();
        if (d > 1) {
            t1.add(new Minute(new Date(t)), new Double(50.1 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(12.3 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(23.9 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(83.4 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(-34.7 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(76.5 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(10.0 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(-14.7 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(43.9 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(49.6 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(37.2 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(17.1 * d));
        } else {
            t1.add(new Minute(new Date(t)), new Double(43.9 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(49.6 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(37.2 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(17.1 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(-34.7 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(76.5 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(10.0 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(-14.7 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(50.1 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(12.3 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(23.9 * d));
            t += 300000;
            t1.add(new Minute(new Date(t)), new Double(83.4 * d));

        }

    } catch (Exception e) {
        System.err.println(e.getMessage());
    }

    return new TimeSeriesCollection(t1);

}

From source file:ta4jexamples.analysis.BuyAndSellSignalsToChart.java

/**
 * Runs a strategy over a time series and adds the value markers
 * corresponding to buy/sell signals to the plot.
 * @param series a time series/*ww w  .  jav  a2  s.  c  om*/
 * @param strategy a trading strategy
 * @param plot the plot
 */
private static void addBuySellSignals(TimeSeries series, Strategy strategy, XYPlot plot) {
    // Running the strategy
    TimeSeriesManager seriesManager = new TimeSeriesManager(series);
    List<Trade> trades = seriesManager.run(strategy).getTrades();
    // Adding markers to plot
    for (Trade trade : trades) {
        // Buy signal
        double buySignalTickTime = new Minute(
                Date.from(series.getTick(trade.getEntry().getIndex()).getEndTime().toInstant()))
                        .getFirstMillisecond();
        Marker buyMarker = new ValueMarker(buySignalTickTime);
        buyMarker.setPaint(Color.GREEN);
        buyMarker.setLabel("B");
        plot.addDomainMarker(buyMarker);
        // Sell signal
        double sellSignalTickTime = new Minute(
                Date.from(series.getTick(trade.getExit().getIndex()).getEndTime().toInstant()))
                        .getFirstMillisecond();
        Marker sellMarker = new ValueMarker(sellSignalTickTime);
        sellMarker.setPaint(Color.RED);
        sellMarker.setLabel("S");
        plot.addDomainMarker(sellMarker);
    }
}