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