예제 #1
0
        /// <summary>
        /// Adds the cash flow axis to the plot. </summary>
        /// <param name="plot"> the plot </param>
        /// <param name="dataset"> the cash flow dataset </param>
        private static void addCashFlowAxis(XYPlot plot, TimeSeriesCollection dataset)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.jfree.chart.axis.NumberAxis cashAxis = new org.jfree.chart.axis.NumberAxis("Cash Flow Ratio");
            NumberAxis cashAxis = new NumberAxis("Cash Flow Ratio");

            cashAxis.AutoRangeIncludesZero = false;
            plot.setRangeAxis(1, cashAxis);
            plot.setDataset(1, dataset);
            plot.mapDatasetToRangeAxis(1, 1);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.jfree.chart.renderer.xy.StandardXYItemRenderer cashFlowRenderer = new org.jfree.chart.renderer.xy.StandardXYItemRenderer();
            StandardXYItemRenderer cashFlowRenderer = new StandardXYItemRenderer();

            cashFlowRenderer.setSeriesPaint(0, Color.blue);
            plot.setRenderer(1, cashFlowRenderer);
        }
예제 #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);
        }
예제 #3
0
        public static void Main(string[] args)
        {
            /// <summary>
            /// Getting time series
            /// </summary>
            TimeSeries series = CsvTicksLoader.loadAppleIncSeries();

            /// <summary>
            /// Creating indicators
            /// </summary>
            // Close price
            ClosePriceIndicator closePrice = new ClosePriceIndicator(series);
            // Bollinger bands
            BollingerBandsMiddleIndicator middleBBand = new BollingerBandsMiddleIndicator(closePrice);
            BollingerBandsLowerIndicator  lowBBand    = new BollingerBandsLowerIndicator(middleBBand, closePrice);
            BollingerBandsUpperIndicator  upBBand     = new BollingerBandsUpperIndicator(middleBBand, closePrice);

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

            dataset.addSeries(buildChartTimeSeries(series, closePrice, "Apple Inc. (AAPL) - NASDAQ GS"));
            dataset.addSeries(buildChartTimeSeries(series, lowBBand, "Low Bollinger Band"));
            dataset.addSeries(buildChartTimeSeries(series, upBBand, "High Bollinger Band"));

            /// <summary>
            /// Creating the chart
            /// </summary>
            JFreeChart chart = ChartFactory.createTimeSeriesChart("Apple Inc. 2013 Close Prices", "Date", "Price Per Unit", dataset, 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("yyyy-MM-dd");

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