예제 #1
0
        private void StartClick(object sender, RoutedEventArgs e)
        {
            var option = SelectedOption;

            // create DOM window
            var wnd = new QuotesWindow {
                Title = option.Name
            };

            _quotesWindows.Add(option, wnd);

            //TryUpdateDepth(Connector.GetMarketDepth(option));

            // create delta hedge strategy
            var hedge = new DeltaHedgeStrategy(_model.ExchangeInfoProvider)
            {
                Security  = option.GetUnderlyingAsset(Connector),
                Portfolio = Portfolio.SelectedPortfolio,
                Connector = Connector,
            };

            // create option quoting for 20 contracts
            var quoting = new VolatilityQuotingStrategy(Sides.Buy, 20,
                                                        new Range <decimal>((decimal?)ImpliedVolatilityMin.EditValue ?? 0, (decimal?)ImpliedVolatilityMax.EditValue ?? 100), _model.ExchangeInfoProvider)
            {
                // working size is 1 contract
                Volume    = 1,
                Security  = option,
                Portfolio = Portfolio.SelectedPortfolio,
                Connector = Connector,
            };

            // link quoting and hedging
            hedge.ChildStrategies.Add(quoting);

            // start hedging
            hedge.Start();

            wnd.Closed += (s1, e1) =>
            {
                // force close all strategies while the DOM was closed
                hedge.Stop();
            };

            // show DOM
            wnd.Show();
        }
예제 #2
0
        private void Start_Click(object sender, RoutedEventArgs e)
        {
            var option = this.SelectedOption;

            // создаем окно для отображения стакана
            var wnd = new QuotesWindow {
                Title = option.Name
            };

            wnd.Init(option);

            // создаем котирование на покупку 20-ти контрактов
            var quoting = new VolatilityQuotingStrategy(
                new Range <decimal>(this.VolatilityMin.Text.To <decimal>(), this.VolatilityMax.Text.To <decimal>()),
                OrderDirections.Buy, 20)
            {
                // указываем, что котирование работает с объемом в 1 контракт
                Volume    = 1,
                Security  = option,
                Portfolio = this.Portfolio.SelectedPortfolio,
                Trader    = _trader,
            };

            var basket = new BasketStrategy(BasketStrategyFinishModes.All);

            basket.ChildStrategies.Add(quoting);

            // запускаем котирование
            basket.Start();

            // создаем дельта-хеджирование, передав в него опционные стратегии для отслеживания их позиции
            var hedge = new DeltaHedgeStrategy(basket)
            {
                Security  = option.GetUnderlyingAsset(),
                Portfolio = this.Portfolio.SelectedPortfolio,
                Trader    = _trader,
            };

            // запускаем дельта-хеджирование
            hedge.Start();

            // показываем окно
            wnd.ShowModal(this);

            hedge.Stop();
            basket.Stop();
        }
예제 #3
0
        private void StartClick(object sender, RoutedEventArgs e)
        {
            var option = SelectedOption;

            // создаем окно для отображения стакана
            var wnd = new QuotesWindow {
                Title = option.Name
            };

            wnd.Init(option);

            // создаем дельта-хеджирование, передав в него опционные стратегии для отслеживания их позиции
            var hedge = new DeltaHedgeStrategy
            {
                Security  = option.GetUnderlyingAsset(Connector),
                Portfolio = Portfolio.SelectedPortfolio,
                Connector = Connector,
            };

            // создаем котирование на покупку 20-ти контрактов
            var quoting = new VolatilityQuotingStrategy(Sides.Buy, 20,
                                                        new Range <decimal>(ImpliedVolatilityMin.Value ?? 0, ImpliedVolatilityMax.Value ?? 100))
            {
                // указываем, что котирование работает с объемом в 1 контракт
                Volume    = 1,
                Security  = option,
                Portfolio = Portfolio.SelectedPortfolio,
                Connector = Connector,
            };

            // добавляем стратегию, которую необходимо хеджировать
            hedge.ChildStrategies.Add(quoting);

            // запускаем дельта-хеджирование
            hedge.Start();

            wnd.Closed += (s1, e1) =>
            {
                // принудительная остановка стратегии при закрытие окна со стаканом
                hedge.Stop();
            };

            // показываем окно
            wnd.Show();
        }
예제 #4
0
		private void StartClick(object sender, RoutedEventArgs e)
		{
			var option = SelectedOption;

			// создаем окно для отображения стакана
			var wnd = new QuotesWindow { Title = option.Name };
			wnd.Init(option);

			// создаем дельта-хеджирование, передав в него опционные стратегии для отслеживания их позиции
			var hedge = new DeltaHedgeStrategy
			{
				Security = option.GetUnderlyingAsset(Connector),
				Portfolio = Portfolio.SelectedPortfolio,
				Connector = Connector,
			};

			// создаем котирование на покупку 20-ти контрактов
			var quoting = new VolatilityQuotingStrategy(Sides.Buy, 20,
					new Range<decimal>(ImpliedVolatilityMin.Value ?? 0, ImpliedVolatilityMax.Value ?? 100))
			{
				// указываем, что котирование работает с объемом в 1 контракт
				Volume = 1,
				Security = option,
				Portfolio = Portfolio.SelectedPortfolio,
				Connector = Connector,
			};

			// добавляем стратегию, которую необходимо хеджировать
			hedge.ChildStrategies.Add(quoting);

			// запускаем дельта-хеджирование
			hedge.Start();

			wnd.Closed += (s1, e1) =>
			{
				// принудительная остановка стратегии при закрытие окна со стаканом
				hedge.Stop();
			};

			// показываем окно
			wnd.Show();
		}
예제 #5
0
        private void Start_Click(object sender, RoutedEventArgs e)
        {
            var option = this.SelectedOption;

            // создаем окно для отображения стакана
            var wnd = new QuotesWindow { Title = option.Name };
            wnd.Init(option);

            // создаем котирование на покупку 20-ти контрактов
            var quoting = new VolatilityQuotingStrategy(
                    new Range<decimal>(this.VolatilityMin.Text.To<decimal>(), this.VolatilityMax.Text.To<decimal>()),
                    OrderDirections.Buy, 20)
            {
                // указываем, что котирование работает с объемом в 1 контракт
                Volume = 1,
                Security = option,
                Portfolio = this.Portfolio.SelectedPortfolio,
                Trader = _trader,
            };

            var basket = new BasketStrategy(BasketStrategyFinishModes.All);
            basket.ChildStrategies.Add(quoting);

            // запускаем котирование
            basket.Start();

            // создаем дельта-хеджирование, передав в него опционные стратегии для отслеживания их позиции
            var hedge = new DeltaHedgeStrategy(basket)
            {
                Security = option.GetUnderlyingAsset(),
                Portfolio = this.Portfolio.SelectedPortfolio,
                Trader = _trader,
            };

            // запускаем дельта-хеджирование
            hedge.Start();

            // показываем окно
            wnd.ShowModal(this);

            hedge.Stop();
            basket.Stop();
        }