예제 #1
0
		private void StartClick(object sender, RoutedEventArgs e)
		{
			// если были получены и инструмент, и портфель
			if (_strategy == null)
			{
				if (Portfolios.SelectedPortfolio == null)
				{
					MessageBox.Show(this, LocalizedStrings.Str3009);
					return;
				}

				// создаем скользящие средние, на 80 5-минуток и 10 5-минуток
				var longSma = new SimpleMovingAverage { Length = 80 };
				var shortSma = new SimpleMovingAverage { Length = 10 };

				// регистрируем наш тайм-фрейм
				var series = new CandleSeries(typeof(TimeFrameCandle), _lkoh, _timeFrame);

				// создаем торговую стратегию
				_strategy = new SmaStrategy(_candleManager, series, longSma, shortSma)
				{
					Volume = 1,
					Security = _lkoh,
					Portfolio = Portfolios.SelectedPortfolio,
					Connector = _trader,
				};
				_logManager.Sources.Add(_strategy);
				//_strategy.Log += OnLog;
				_strategy.PropertyChanged += OnStrategyPropertyChanged;

				_candlesElem = new ChartCandleElement();
				_area.Elements.Add(_candlesElem);

				_longMaElem = new ChartIndicatorElement
				{
					Title = LocalizedStrings.Long,
					Color = Colors.OrangeRed
				};
				_area.Elements.Add(_longMaElem);

				_shortMaElem = new ChartIndicatorElement
				{
					Title = LocalizedStrings.Short,
					Color = Colors.RoyalBlue
				};
				_area.Elements.Add(_shortMaElem);

				var marketTime = _trader.CurrentTime;

				// начинаем получать свечи за период в 5 дней
				_candleManager.Start(series, DateTime.Today - TimeSpan.FromDays(5), marketTime);

				_lastHistoryCandle = _timeFrame.GetCandleBounds(marketTime).Min;

				Report.IsEnabled = true;
			}

			if (_strategy.ProcessState == ProcessStates.Stopped)
			{
				// запускаем процесс получения стакана, необходимый для работы алгоритма котирования
				_trader.RegisterMarketDepth(_strategy.Security);
				_strategy.Start();
				Start.Content = LocalizedStrings.Str242;
			}
			else
			{
				_trader.UnRegisterMarketDepth(_strategy.Security);
				_strategy.Stop();
				Start.Content = LocalizedStrings.Str2421;
			}
		}
예제 #2
0
        private void StartClick(object sender, RoutedEventArgs e)
        {
            // если были получены и инструмент, и портфель
            if (_strategy == null)
            {
                if (Portfolios.SelectedPortfolio == null)
                {
                    MessageBox.Show(this, LocalizedStrings.Str3009);
                    return;
                }

                // создаем скользящие средние, на 80 5-минуток и 10 5-минуток
                var longSma = new SimpleMovingAverage {
                    Length = 80
                };
                var shortSma = new SimpleMovingAverage {
                    Length = 10
                };

                // регистрируем наш тайм-фрейм
                var series = new CandleSeries(typeof(TimeFrameCandle), _lkoh, _timeFrame);

                // создаем торговую стратегию
                _strategy = new SmaStrategy(_candleManager, series, longSma, shortSma)
                {
                    Volume    = 1,
                    Security  = _lkoh,
                    Portfolio = Portfolios.SelectedPortfolio,
                    Connector = _trader,
                };
                _logManager.Sources.Add(_strategy);
                //_strategy.Log += OnLog;
                _strategy.PropertyChanged += OnStrategyPropertyChanged;

                _candlesElem = new ChartCandleElement();
                _area.Elements.Add(_candlesElem);

                _longMaElem = new ChartIndicatorElement
                {
                    Title = LocalizedStrings.Long,
                    Color = Colors.OrangeRed
                };
                _area.Elements.Add(_longMaElem);

                _shortMaElem = new ChartIndicatorElement
                {
                    Title = LocalizedStrings.Short,
                    Color = Colors.RoyalBlue
                };
                _area.Elements.Add(_shortMaElem);

                var marketTime = _trader.CurrentTime;

                // начинаем получать свечи за период в 5 дней
                _candleManager.Start(series, DateTime.Today - TimeSpan.FromDays(5), marketTime);

                _lastHistoryCandle = _timeFrame.GetCandleBounds(marketTime).Min;

                Report.IsEnabled = true;
            }

            if (_strategy.ProcessState == ProcessStates.Stopped)
            {
                // запускаем процесс получения стакана, необходимый для работы алгоритма котирования
                _trader.RegisterMarketDepth(_strategy.Security);
                _strategy.Start();
                Start.Content = LocalizedStrings.Str242;
            }
            else
            {
                _trader.UnRegisterMarketDepth(_strategy.Security);
                _strategy.Stop();
                Start.Content = LocalizedStrings.Str2421;
            }
        }