using Imsl.Chart2D; using System; using System.Drawing; public class SampleCandlestick : FrameChart { private double[] high, low, open, close; public SampleCandlestick() { Chart chart = this.Chart; AxisXY axis = new AxisXY(chart); // Date is June 27, 1999 DateTime date = new DateTime(1999, 6, 27); int n = 30; CreateData(n); // Create an instance of a Candlestick Chart Candlestick stick = new Candlestick(axis, date, high, low, close, open); // show up days in green and down days in red stick.Up.FillColor = Color.ForestGreen; stick.Down.FillColor = Color.Red; // Set the HighLowClose Chart Title chart.ChartTitle.SetTitle("Stock Prices"); // Setup the time axis stick.SetDateAxis("d"); // Turn on grid and make it light gray axis.AxisX.Grid.IsVisible = true; axis.AxisX.Grid.LineColor = Color.LightGray; axis.AxisY.Grid.IsVisible = true; axis.AxisY.Grid.LineColor = Color.LightGray; } private void CreateData(int n) { high = new double[n]; low = new double[n]; close = new double[n]; open = new double[n]; Random r = new Random(123457); for (int k = 0; k < n; k++) { double f = r.NextDouble(); if (k == 0) { close[0] = 100; } else { close[k] = (0.95+0.10*f)*close[k-1]; } high[k] = close[k]*(1+0.05*r.NextDouble()); low[k] = close[k]*(1-0.05*r.NextDouble()); open[k] = low[k] + r.NextDouble()*(high[k]-low[k]); } } public static void Main(string[] argv) { System.Windows.Forms.Application.Run(new SampleCandlestick()); } }