예제 #1
0
        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();
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
            }
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
        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();
        }
예제 #6
0
        /// <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);
        }
예제 #7
0
        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);
        }