private void DownStrokeStyleButton_Click(object sender, System.EventArgs e) { NStrokeStyle strokeStyleResult; NKagiSeries kagi = (NKagiSeries)nChartControl1.Charts[0].Series[0]; if (NStrokeStyleTypeEditor.Edit(kagi.DownStrokeStyle, out strokeStyleResult)) { kagi.DownStrokeStyle = strokeStyleResult; nChartControl1.Refresh(); } }
/// <summary> /// Called to initialize the example /// </summary> /// <param name="chartControl"></param> public override void Create() { // remove all legends nChartControl1.Legends.Clear(); // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Kagi Chart"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 18, System.Drawing.FontStyle.Italic); title.TextStyle.FillStyle = new NColorFillStyle(GreyBlue); title.ContentAlignment = ContentAlignment.BottomCenter; title.Location = new NPointL(new NLength(50, NRelativeUnit.ParentPercentage), new NLength(2, NRelativeUnit.ParentPercentage)); NChart chart = nChartControl1.Charts[0]; // setup X axis NPriceScaleConfigurator priceConfigurator = new NPriceScaleConfigurator(); priceConfigurator.InnerMajorTickStyle.LineStyle.Width = new NLength(0); chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator = priceConfigurator; // setup Y axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)chart.Axis(StandardAxis.PrimaryY).ScaleConfigurator; NScaleStripStyle stripStyle = new NScaleStripStyle(new NColorFillStyle(Color.Beige), null, true, 0, 0, 1, 1); stripStyle.Interlaced = true; stripStyle.SetShowAtWall(ChartWallType.Back, true); linearScale.StripStyles.Add(stripStyle); // setup Kagi series NKagiSeries kagi = (NKagiSeries)chart.Series.Add(SeriesType.Kagi); kagi.UpStrokeStyle.Color = Color.MidnightBlue; kagi.DownStrokeStyle.Color = Color.MidnightBlue; kagi.UseXValues = true; GenerateData(kagi); // apply layout ConfigureStandardLayout(chart, title, null); ReversalAmountComboBox.Items.Add("0.5"); ReversalAmountComboBox.Items.Add("1"); ReversalAmountComboBox.Items.Add("2"); ReversalAmountComboBox.Items.Add("1%"); ReversalAmountComboBox.Items.Add("2%"); ReversalAmountComboBox.Items.Add("5%"); ReversalAmountComboBox.SelectedIndex = 0; ReversalAmountComboBox_SelectionChanged(null, null); }
/// <summary> /// /// </summary> /// <param name="KagiSeries"></param> private void GenerateData(NKagiSeries KagiSeries) { NStockDataGenerator dataGenerator = new NStockDataGenerator(new NRange(50, 350), 0.002, 2); dataGenerator.Reset(); DateTime dt = DateTime.Now; for (int i = 0; i < 100; i++) { KagiSeries.DataPoints.Add(new NKagiDataPoint(NDateTimeHelpers.ToOADate(dt), dataGenerator.GetNextValue())); dt = dt.AddDays(1); } }
private void GenerateData(NKagiSeries series) { NStockDataGenerator dataGenerator = new NStockDataGenerator(new NRange1DD(50, 350), 0.002, 2); dataGenerator.Reset(); DateTime dt = new DateTime(2007, 1, 1); for (int i = 0; i < 100; i++) { series.Values.Add(dataGenerator.GetNextValue()); series.XValues.Add(dt); dt = dt.AddDays(1); } }
private void ReversalAmountCombo_SelectedIndexChanged(object sender, System.EventArgs e) { NKagiSeries kagi = (NKagiSeries)nChartControl1.Charts[0].Series[0]; switch (ReversalAmountCombo.SelectedIndex) { case 0: kagi.ReversalAmount = 0.5; kagi.ReversalAmountInPercents = false; break; case 1: kagi.ReversalAmount = 1; kagi.ReversalAmountInPercents = false; break; case 2: kagi.ReversalAmount = 2; kagi.ReversalAmountInPercents = false; break; case 3: kagi.ReversalAmount = 1; kagi.ReversalAmountInPercents = true; break; case 4: kagi.ReversalAmount = 2; kagi.ReversalAmountInPercents = true; break; case 5: kagi.ReversalAmount = 5; kagi.ReversalAmountInPercents = true; break; } nChartControl1.Refresh(); }
/// <summary> /// /// </summary> /// <returns></returns> protected override NWidget CreateExampleContent() { NChartView chartView = CreateCartesianChartView(); // configure title chartView.Surface.Titles[0].Text = "Kagi"; // configure chart NCartesianChart chart = (NCartesianChart)chartView.Surface.Charts[0]; chart.SetPredefinedCartesianAxes(ENPredefinedCartesianAxis.XYLinear); NLinearScale scaleY = (NLinearScale)chart.Axes[ENCartesianAxis.PrimaryY].Scale; // add interlace stripe NScaleStrip stripStyle = new NScaleStrip(new NColorFill(NColor.Beige), null, true, 0, 0, 1, 1); stripStyle.Interlaced = true; scaleY.Strips.Add(stripStyle); // setup X axis NPriceTimeScale priceScale = new NPriceTimeScale(); priceScale.InnerMajorTicks.Stroke = new NStroke(0.0, NColor.Black); chart.Axes[ENCartesianAxis.PrimaryX].Scale = priceScale; // setup line break series m_KagiSeries = new NKagiSeries(); m_KagiSeries.UseXValues = true; chart.Series.Add(m_KagiSeries); GenerateData(m_KagiSeries); chartView.Document.StyleSheets.ApplyTheme(new NChartTheme(ENChartPalette.Bright, false)); return(chartView); }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { WebExamplesUtilities.FillComboWithColorNames(UpColorDropDownList, KnownColor.Black); WebExamplesUtilities.FillComboWithColorNames(DownColorDropDownList, KnownColor.Black); WebExamplesUtilities.FillComboWithValues(UpStrokeDropDownList, 1, 3, 1); UpStrokeDropDownList.SelectedIndex = 1; WebExamplesUtilities.FillComboWithValues(DownStrokeDropDownList, 1, 3, 1); reversalAmountDropdownlist.Items.AddRange(new ListItem[] { new ListItem("0.5"), new ListItem("1"), new ListItem("2"), new ListItem("1%"), new ListItem("2%"), new ListItem("5%") }); } nChartControl1.BackgroundStyle.FrameStyle.Visible = false; // no legend nChartControl1.Legends.Clear(); // set a chart title NLabel title = nChartControl1.Labels.AddHeader("Kagi Chart"); title.TextStyle.FontStyle = new NFontStyle("Times New Roman", 14, FontStyle.Italic); title.TextStyle.ShadowStyle.Type = ShadowType.LinearBlur; NChart chart = nChartControl1.Charts[0]; chart.BoundsMode = BoundsMode.Stretch; // setup X axis NPriceScaleConfigurator priceConfigurator = new NPriceScaleConfigurator(); priceConfigurator.InnerMajorTickStyle.LineStyle.Width = new NLength(0); chart.Axis(StandardAxis.PrimaryX).ScaleConfigurator = priceConfigurator; // setup Y axis NLinearScaleConfigurator linearScale = (NLinearScaleConfigurator)chart.Axis(StandardAxis.PrimaryY).ScaleConfigurator; NScaleStripStyle stripStyle = new NScaleStripStyle(new NColorFillStyle(Color.Beige), null, true, 0, 0, 1, 1); stripStyle.Interlaced = true; stripStyle.SetShowAtWall(ChartWallType.Back, true); linearScale.StripStyles.Add(stripStyle); //Setup Kagi series NKagiSeries kagi = (NKagiSeries)chart.Series.Add(SeriesType.Kagi); kagi.UpStrokeStyle.Color = WebExamplesUtilities.ColorFromDropDownList(UpColorDropDownList); kagi.DownStrokeStyle.Color = WebExamplesUtilities.ColorFromDropDownList(DownColorDropDownList); kagi.UpStrokeStyle.Width = new NLength(Convert.ToInt32(UpStrokeDropDownList.SelectedValue)); kagi.DownStrokeStyle.Width = new NLength(Convert.ToInt32(DownStrokeDropDownList.SelectedValue)); kagi.UseXValues = true; switch (reversalAmountDropdownlist.SelectedIndex) { case 0: kagi.ReversalAmount = 0.5; kagi.ReversalAmountInPercents = false; break; case 1: kagi.ReversalAmount = 1; kagi.ReversalAmountInPercents = false; break; case 2: kagi.ReversalAmount = 2; kagi.ReversalAmountInPercents = false; break; case 3: kagi.ReversalAmount = 1; kagi.ReversalAmountInPercents = true; break; case 4: kagi.ReversalAmount = 2; kagi.ReversalAmountInPercents = true; break; case 5: kagi.ReversalAmount = 5; kagi.ReversalAmountInPercents = true; break; } GenerateData(kagi); // apply layout ApplyLayoutTemplate(0, nChartControl1, chart, title, null); }