Ejemplo n.º 1
0
        private void RefreshCharts()
        {
            if (Dispatcher.CheckAccess())
            {
                _dataThreadActions.Add(RefreshCharts);
                return;
            }

            this.GuiSync(() =>
            {
                Chart.ClearAreas();

                _areaComb = new ChartArea();

                var yAxis = _areaComb.YAxises.First();

                yAxis.AutoRange    = true;
                Chart.IsAutoRange  = true;
                Chart.IsAutoScroll = true;

                Chart.AddArea(_areaComb);

                var id = (SecurityId)Securities.SelectedItem;

                _security = new Security
                {
                    Id        = id.ToStringId(),
                    Code      = id.SecurityCode,
                    Type      = SecurityTypes.Future,
                    PriceStep = id.SecurityCode.StartsWith("RI", StringComparison.InvariantCultureIgnoreCase) ? 10 :
                                id.SecurityCode.Contains("ES") ? 0.25m :
                                0.01m,
                    Board = ExchangeBoard.Associated
                };

                _securityProvider.Clear();
                _securityProvider.Add(_security);

                _tradeGenerator = new RandomWalkTradeGenerator(id);
                _tradeGenerator.Init();
                _tradeGenerator.Process(_security.ToMessage());

                var series = new CandleSeries(
                    SeriesEditor.Settings.CandleType,
                    _security,
                    SeriesEditor.Settings.Arg)
                {
                    IsCalcVolumeProfile = true
                };

                _candleElement = new ChartCandleElement {
                    FullTitle = "Candles"
                };
                Chart.AddElement(_areaComb, _candleElement, series);
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Create a copy of <see cref="RandomWalkTradeGenerator"/>.
        /// </summary>
        /// <returns>Copy.</returns>
        public override MarketDataGenerator Clone()
        {
            var clone = new RandomWalkTradeGenerator(SecurityId)
            {
                GenerateOriginSide = GenerateOriginSide,
                IdGenerator        = IdGenerator
            };

            CopyTo(clone);

            return(clone);
        }
Ejemplo n.º 3
0
        private void RefreshCharts()
        {
            Chart.ClearAreas();

            _areaComb = new ChartArea();

            var yAxis = _areaComb.YAxises.First();

            yAxis.AutoRange    = true;
            Chart.IsAutoRange  = true;
            Chart.IsAutoScroll = true;

            Chart.AddArea(_areaComb);

            _timeframe = TimeSpan.FromMinutes(((ComboBoxItem)Timeframe.SelectedItem).Tag.To <int>());

            var id = (SecurityId)Securities.SelectedItem;

            _security = new Security
            {
                Id        = id.ToStringId(),
                PriceStep = id.SecurityCode.StartsWith("RI", StringComparison.InvariantCultureIgnoreCase) ? 10 :
                            id.SecurityCode.Contains("ES") ? 0.25m :
                            0.01m,
                Board = ExchangeBoard.Associated
            };

            _tradeGenerator = new RandomWalkTradeGenerator(id);
            _tradeGenerator.Init();
            _tradeGenerator.Process(_security.ToMessage());

            var series = new CandleSeries(
                typeof(TimeFrameCandle),
                _security,
                _timeframe);

            _candleElement = new ChartCandleElement {
                FullTitle = "Candles"
            };
            Chart.AddElement(_areaComb, _candleElement, series);

            LoadData(_security);
        }