Example #1
0
 /// <summary>
 /// Builds a JFreeChart time series from a Ta4j time series and an indicator. </summary>
 /// <param name="tickSeries"> the ta4j time series </param>
 /// <param name="indicator"> the indicator </param>
 /// <param name="name"> the name of the chart time series </param>
 /// <returns> the JFreeChart time series </returns>
 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.TickCount; i++)
     {
         Tick tick = tickSeries.getTick(i);
         chartTimeSeries.add(new Minute(tick.EndTime.toDate()), indicator.getValue(i).toDouble());
     }
     return(chartTimeSeries);
 }
Example #2
0
        public static void Main(string[] args)
        {
            // Getting the time series
            TimeSeries series = CsvTradesLoader.loadBitstampSeries();
            // Building the trading strategy
            Strategy strategy = MovingMomentumStrategy.buildStrategy(series);
            // Running the strategy
            TradingRecord tradingRecord = series.run(strategy);
            // Getting the cash flow of the resulting trades
            CashFlow cashFlow = new CashFlow(series, tradingRecord);

            /// <summary>
            /// Building chart datasets
            /// </summary>
            TimeSeriesCollection datasetAxis1 = new TimeSeriesCollection();

            datasetAxis1.addSeries(buildChartTimeSeries(series, new ClosePriceIndicator(series), "Bitstamp Bitcoin (BTC)"));
            TimeSeriesCollection datasetAxis2 = new TimeSeriesCollection();

            datasetAxis2.addSeries(buildChartTimeSeries(series, cashFlow, "Cash Flow"));

            /// <summary>
            /// Creating the chart
            /// </summary>
            JFreeChart chart = ChartFactory.createTimeSeriesChart("Bitstamp BTC", "Date", "Price", datasetAxis1, true, true, false);             // generate URLs? -  generate tooltips? -  create legend? -  data -  y-axis label -  x-axis label -  title
            XYPlot     plot  = (XYPlot)chart.Plot;
            DateAxis   axis  = (DateAxis)plot.DomainAxis;

            axis.DateFormatOverride = new SimpleDateFormat("MM-dd HH:mm");

            /// <summary>
            /// Adding the cash flow axis (on the right)
            /// </summary>
            addCashFlowAxis(plot, datasetAxis2);

            /// <summary>
            /// Displaying the chart
            /// </summary>
            displayChart(chart);
        }