예제 #1
0
        private void drawOmegaChart()
        {
            ChartSize chartSize = getChartSize();

            for (int price = (int)chartSize.chartStart; price < chartSize.chartEnd; price++)
            {
                double omega = optionsCalculator.getOmega(price);

                omegaChart.Series[0].Points.AddXY(price, omega);
            }
        }
예제 #2
0
        private void drawGreeksChart()
        {
            ChartSize chartSize = getChartSize();

            for (int price = (int)chartSize.chartStart; price < chartSize.chartEnd; price++)
            {
                double delta = optionsCalculator.getDelta(price);
                double gamma = optionsCalculator.getGamma(price);
                double theta = optionsCalculator.getTheta(price);

                chart1.Series[0].Points.AddXY(price, gamma);
                chart1.Series[1].Points.AddXY(price, delta);
                chart1.Series[2].Points.AddXY(price, theta);

                Console.WriteLine($"Price: {price} / Delta: {delta} / Gamma: {gamma} / Theta: {theta}");
            }
        }
예제 #3
0
        private ChartSize getChartSize()
        {
            double chartStart;
            double chartEnd;

            if (optionsCalculator.strikePrice > optionsCalculator.underlyingPrice)
            {
                chartEnd   = optionsCalculator.strikePrice;
                chartStart = optionsCalculator.underlyingPrice;
            }
            else
            {
                chartStart = optionsCalculator.strikePrice;
                chartEnd   = optionsCalculator.underlyingPrice;
            }

            ChartSize chartSize = new ChartSize(chartStart, chartEnd);

            return(chartSize);
        }