Exemplo n.º 1
0
        private void timer_Tick(object sender, EventArgs e)
        {
            if (m_Data == null)
            {
                return;
            }


            if (chkSlide.Checked)
            {
                var sample = CandleSample.GenerateRandom(1, DT, 1000, 10, 20, 15, 120.0f);

                m_Data.Add(sample[0]);

                DT = DT.AddSeconds(tbInterval.Text.AsInt(1));

                chart.NotifySeriesChange();
                return;
            }

            foreach (var sample in m_Data.Data)
            {
                sample.OpenPrice  += ExternalRandomGenerator.Instance.NextScaledRandomInteger(-2, +2);
                sample.ClosePrice += ExternalRandomGenerator.Instance.NextScaledRandomInteger(-2, +2);
                sample.HighPrice  += ExternalRandomGenerator.Instance.NextScaledRandomInteger(-2, +2);
                sample.LowPrice   += ExternalRandomGenerator.Instance.NextScaledRandomInteger(-2, +2);
            }

            chart.NotifySeriesChange();
        }
Exemplo n.º 2
0
        private void tmrUpdate_Tick(object sender, EventArgs e)
        {
            if (!chkRealtime.Checked)
            {
                return;
            }

            var series = chart.Series as CandleTimeSeries;

            if (series == null)
            {
                return;
            }
            if (m_OriginalDataFromFile == null)
            {
                return;
            }


            var sample = m_OriginalDataFromFile.Skip(timerX).FirstOrDefault();

            if (sample == null)
            {
                timerX = 0;
                sample = m_OriginalDataFromFile.Skip(timerX).FirstOrDefault();
            }
            else
            {
                timerX++;
            }

            if (sample == null)
            {
                return;
            }

            var last = series.DataReveresed.First();

            var newSample = new CandleSample(last.TimeStamp.AddSeconds(m_SecResolution))
            {
                OpenPrice  = sample.OpenPrice,
                ClosePrice = sample.ClosePrice,
                HighPrice  = sample.HighPrice,
                LowPrice   = sample.LowPrice,
                BuyVolume  = sample.BuyVolume,
                SellVolume = sample.SellVolume,
                TimeSpanMs = sample.TimeSpanMs
            };

            series.Add(newSample);

            updateLevels(series);

            chart.NotifySeriesChange();
        }
Exemplo n.º 3
0
            protected internal CandleBuySellElement(CandleBuySellView view, PlotPane host, CandleSample sample, int x, float minScale, float maxScale) : base(host)
            {
                m_View     = view;
                m_Sample   = sample;
                m_ScaleMin = minScale;
                m_ScaleMax = maxScale;

                computeCoords();
                var h = Math.Max(m_Lay_BuyHeight, m_Lay_SellHeight);

                this.Region = new Rectangle(x, (int)(host.Height / host.Zoom) - h, CandleView.BAR_WIDTH, h);
            }
Exemplo n.º 4
0
              protected internal CandleElement(PlotPane host, CandleSample candle, int x, float minScale, float maxScale) : base(host)
              {
                m_Candle = candle;
         
              //   m_Style = new Style(null, getBaseStyle());
                m_ScaleMin = minScale;
                m_ScaleMax = maxScale;
                m_Lay_X = x;
                m_Lay_W = CandleView.BAR_WIDTH;

                computeCoords();
                this.Region = new Rectangle(m_Lay_X, m_Lay_Y, m_Lay_W, m_Lay_H);
              }
Exemplo n.º 5
0
            protected internal CandleElement(PlotPane host, CandleSample candle, int x, float minScale, float maxScale, bool bw) : base(host)
            {
                Candle = candle;

                //   m_Style = new Style(null, getBaseStyle());
                m_ScaleMin = minScale;
                m_ScaleMax = maxScale;
                m_Lay_X    = x;
                m_Lay_W    = CandleView.BAR_WIDTH - 1;

                computeCoords();
                this.Region = new Rectangle(m_Lay_X, m_Lay_Y, m_Lay_W, m_Lay_H);
                m_BW        = bw;
            }
Exemplo n.º 6
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            m_Data = new CandleTimeSeries("My data", 0);
            //  m_Data.MaxSamples = 10;

            var sd = DateTime.Now.AddSeconds(-500);

            var samples = CandleSample.GenerateRandom(300,
                                                      sd,
                                                      1000,
                                                      10,

                                                      20, 8,

                                                      120.0f);

            samples.ForEach(s => m_Data.Add(s));

            m_Data.Views.Register(new CandleView("Candles", 0));
            m_Data.Views.Register(
                new CandleMidLineView("MidLineHiLo", 1)
            {
                MidLineType = MidLineType.HighLow,
                LineStyle   = new LineStyle {
                    Color = Color.FromArgb(200, 255, 0, 0), Width = 2
                }
            });

            m_Data.Views.Register(
                new CandleMidLineView("MidLineOpCl1", 2)
            {
                MidLineType = MidLineType.OpenClose,
                LineStyle   = new LineStyle {
                    Color = Color.FromArgb(200, 50, 0, 200), Width = 1.5f, DashStyle = System.Drawing.Drawing2D.DashStyle.Dot
                }
            });



            m_Data.Views.Register(new CandleView("Candles2", 0, "MLPane")
            {
                BlackWhite = true
            });
            m_Data.Views.Register(
                new CandleMidLineView("MidLineOpCl2", 1, "MLPane")
            {
                MidLineType = MidLineType.OpenClose,
                LineStyle   = new LineStyle {
                    Color = Color.FromArgb(200, 255, 180, 0), Width = 3f
                }
            });

            //     m_Data.Views.Register( new CandleView("Avg1", 0, "Another Pane0"));
            //     m_Data.Views.Register( new CandleView("Avg2", 0, "Another Pane1"));



            //m_Data.Views.Register( new CandleView("Avg3", 0, "Another Pane2"));
            //m_Data.Views.Register( new CandleView("Avg4", 0, "Another Pane3"));
            //m_Data.Views.Register( new CandleView("Avg5", 0, "Another Pane4"));
            //m_Data.Views.Register( new CandleView("Avg6", 0, "Another Pane5"));


            chart.Series = m_Data;
        }
Exemplo n.º 7
0
        protected override Elements.Element MakeSampleElement(TimeSeriesChart chart, PlotPane pane, CandleSample sample, int x, float minScale, float maxScale)
        {
            var elm = new CandleElement(pane, sample, x, minScale, maxScale, BlackWhite);

            if (ShowBalloons)
            {
                elm.MouseClick += elm_MouseClick;
            }

            return(elm);
        }
Exemplo n.º 8
0
 protected override Elements.Element MakeSampleElement(TimeSeriesChart chart, PlotPane pane, CandleSample sample, int x, float minScale, float maxScale)
 {
     return(null);
 }
Exemplo n.º 9
0
 protected override Elements.Element MakeSampleElement(TimeSeriesChart chart, PlotPane pane, CandleSample sample, int x, float minScale, float maxScale)
 {
     return(new CandleBuySellElement(this, pane, sample, x, minScale, maxScale));
 }