public Image visualizeIndicatorValues(int widht, int height, double[][] prices)
        {
            double validRatio;

            double[] values = IndicatorRunner.getIndicatorValues(prices, indicator.Clone(), out validRatio);
            return(ArrayVisualizer.visualizeArray(values, widht, height, 15));
        }
        public Image getCapitalCurveVisualization(int width, int heigth)
        {
            double[] capital           = new double[closedPositions.Count];
            double   cumulativeCapital = 1000;

            for (int i = 0; i < closedPositions.Count; i++)
            {
                cumulativeCapital += closedPositions[i].getProfitIngoreAmount();
                capital[i]         = cumulativeCapital;
            }

            return(ArrayVisualizer.visualizeArray(capital, width, heigth, 5));
        }
        public void visualizeArray_Test()
        {
            double[] inputs = new double[1000];
            for (int i = 0; i < inputs.Length; i++)
            {
                inputs[i] = i + 500;
            }

            Image img = ArrayVisualizer.visualizeArray(inputs, 500, 200, 10);
            //ArrayVisualizer.showImg(img);
            Bitmap bmp = new Bitmap(img);

            Assert.AreEqual(Color.FromArgb(255, 0, 128, 0), bmp.GetPixel(1, bmp.Height - 1));
            Assert.AreEqual(Color.FromArgb(255, 0, 128, 0), bmp.GetPixel(bmp.Width - 1, 1));
            Assert.AreEqual(Color.FromArgb(255, 0, 128, 0), bmp.GetPixel(bmp.Width / 2, bmp.Height / 2));
            Assert.AreEqual(Color.FromArgb(255, 211, 211, 211), bmp.GetPixel(bmp.Width / 2 - 20, bmp.Height / 2 + 20));
        }