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(); }
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(); }
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(); }
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(); }
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(); }