Пример #1
0
        public NewOrderTest(Connector connector, FilterableSecurityProvider securityProvider)
        {
            InitializeComponent();

            _connector = connector;

            Portfolios.Connector        = connector;
            Securities.SecurityProvider = securityProvider;
        }
Пример #2
0
        public MainWindow()
        {
            InitializeComponent();

            _securityCtrls.Add(Security1, new ColorSettings
            {
                Position = Colors.Green,
                Buy      = Colors.Green,
                Sell     = Colors.Red,
            });
            _securityCtrls.Add(Security2, new ColorSettings
            {
                Position = Colors.Blue,
                Buy      = Colors.Teal,
                Sell     = Colors.BlueViolet,
            });
            _securityCtrls.Add(Security3, new ColorSettings
            {
                Position = Colors.Brown,
                Buy      = Colors.Yellow,
                Sell     = Colors.Brown,
            });
            _securityCtrls.Add(Security4, new ColorSettings
            {
                Position = Colors.YellowGreen,
                Buy      = Colors.Cyan,
                Sell     = Colors.DeepPink,
            });

            Chart.IsInteracted = true;
            //Chart.IsAutoRange = true;

            Chart.SubscribeIndicatorElement += Chart_SubscribeIndicatorElement;

            _securityProvider = new FilterableSecurityProvider();
            _securityCtrls.ForEach(pair => pair.Key.SecurityProvider = _securityProvider);

            TimeFrame.ItemsSource  = new[] { TimeSpan.FromTicks(1) }.Concat(FinamHistorySource.TimeFrames);
            TimeFrame.SelectedItem = TimeSpan.FromMinutes(5);

            Statistics.StatisticManager = _statisticManager;
        }
Пример #3
0
        /// <summary>
        /// Создать <see cref="SecurityPicker"/>.
        /// </summary>
        public SecurityPicker()
        {
            InitializeComponent();

            _counterMask = Counter.Text;

            GuiDispatcher.GlobalDispatcher.AddPeriodicalAction(() =>
            {
                if (!_isDirty)
                {
                    return;
                }

                _isDirty = false;
                FilterSecurities();
            });

            GuiDispatcher.GlobalDispatcher.AddPeriodicalAction(() =>
            {
                if (!_isCounterDirty)
                {
                    return;
                }

                _isCounterDirty = false;
                UpdateCounter();
            });

            _excludeSecurities          = new CachedSynchronizedSet <Security>();
            _excludeSecurities.Added   += s => SecurityProviderOnSecuritiesChanged(true, NotifyCollectionChangedAction.Add, s);
            _excludeSecurities.Removed += s => SecurityProviderOnSecuritiesChanged(true, NotifyCollectionChangedAction.Remove, s);
            _excludeSecurities.Cleared += () => SecurityProviderOnSecuritiesChanged(true, NotifyCollectionChangedAction.Reset, null);

            SecurityProvider = new FilterableSecurityProvider();

            SecuritiesCtrl.SelectionMode = _defaultSelectionMode;

            UpdateCounter();

            SecurityTypeCtrl.NullItem.Description = LocalizedStrings.Str1569;
        }
Пример #4
0
        private void QuikConnectionMouseDoubleClick(object sender, RoutedEventArgs e)
        {
            if (_connector == null)
            {
                _connector            = new Connector();
                _connector.Connected += _connector.StartExport;

                var session = new BasketSessionHolder(_connector.TransactionIdGenerator);

                _connector.MarketDataAdapter  = new BasketMessageAdapter(MessageAdapterTypes.MarketData, session);
                _connector.TransactionAdapter = new BasketMessageAdapter(MessageAdapterTypes.Transaction, session);

                _connector.ApplyMessageProcessor(MessageDirections.In, true, false);
                _connector.ApplyMessageProcessor(MessageDirections.In, false, true);
                _connector.ApplyMessageProcessor(MessageDirections.Out, true, true);

                if (QuikCheckBox.IsChecked == true)
                {
                    session.InnerSessions.Add(new QuikSessionHolder(_connector.TransactionIdGenerator)
                    {
                        IsTransactionEnabled = true,
                        IsMarketDataEnabled  = true,
                    }, 1);
                }

                if (SmartComCheckBox.IsChecked == true)
                {
                    session.InnerSessions.Add(new SmartComSessionHolder(_connector.TransactionIdGenerator)
                    {
                        Login                = Login.Text,
                        Password             = Password.Password.To <SecureString>(),
                        Address              = Address.SelectedAddress,
                        IsTransactionEnabled = true,
                        IsMarketDataEnabled  = true,
                    }, 0);
                }

                if (PlazaCheckBox.IsChecked == true)
                {
                    session.InnerSessions.Add(new PlazaSessionHolder(_connector.TransactionIdGenerator)
                    {
                        IsCGate = true,
                        IsTransactionEnabled = true,
                        IsMarketDataEnabled  = true,
                    }, 0);
                }

                if (session.InnerSessions.Count == 0)
                {
                    MessageBox.Show(LocalizedStrings.Str2971);
                    return;
                }

                _securityProvider = new FilterableSecurityProvider(_connector);

                _connector.ConnectionError += error => this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959));
                _connector.Connect();
            }
            else
            {
                Disconnect();
            }
        }
Пример #5
0
        private void QuikConnectionMouseDoubleClick(object sender, RoutedEventArgs e)
        {
            if (_connector == null)
            {
                _connector = new Connector();

                if (QuikCheckBox.IsChecked == true)
                {
                    var quikTs = new LuaFixTransactionMessageAdapter(_connector.TransactionIdGenerator)
                    {
                        Login                = "******",
                        Password             = "******".To <SecureString>(),
                        Address              = "localhost:5001".To <EndPoint>(),
                        TargetCompId         = "StockSharpTS",
                        SenderCompId         = "quik",
                        ExchangeBoard        = ExchangeBoard.Forts,
                        Version              = FixVersions.Fix44,
                        RequestAllPortfolios = true,
                        MarketData           = FixMarketData.None,
                        UtcOffset            = TimeHelper.Moscow.BaseUtcOffset
                    };
                    var quikMd = new FixMessageAdapter(_connector.TransactionIdGenerator)
                    {
                        Login                = "******",
                        Password             = "******".To <SecureString>(),
                        Address              = "localhost:5001".To <EndPoint>(),
                        TargetCompId         = "StockSharpMD",
                        SenderCompId         = "quik",
                        ExchangeBoard        = ExchangeBoard.Forts,
                        Version              = FixVersions.Fix44,
                        RequestAllSecurities = true,
                        MarketData           = FixMarketData.MarketData,
                        UtcOffset            = TimeHelper.Moscow.BaseUtcOffset
                    };
                    _connector.Adapter.InnerAdapters[quikMd.ToChannel(_connector, "Quik MD")] = 1;
                    _connector.Adapter.InnerAdapters[quikTs.ToChannel(_connector, "Quik TS")] = 1;
                }

                if (SmartComCheckBox.IsChecked == true)
                {
                    var smartCom = new SmartComMessageAdapter(_connector.TransactionIdGenerator)
                    {
                        Login    = Login.Text,
                        Password = Password.Password.To <SecureString>(),
                        Address  = Address.SelectedAddress,
                    };
                    _connector.Adapter.InnerAdapters[smartCom.ToChannel(_connector, "SmartCOM")] = 0;
                }

                if (PlazaCheckBox.IsChecked == true)
                {
                    var pool = new PlazaConnectionPool();

                    _connector.Adapter.InnerAdapters[new PlazaTransactionMessageAdapter(_connector.TransactionIdGenerator, pool)
                                                     {
                                                         ConnectionPoolSettings =
                                                         {
                                                             IsCGate = true,
                                                         }
                                                     }.ToChannel(_connector, "Plaza TS")] = 0;
                    _connector.Adapter.InnerAdapters[new PlazaStreamMessageAdapter(_connector.TransactionIdGenerator, pool)
                                                     {
                                                         ConnectionPoolSettings =
                                                         {
                                                             IsCGate = true,
                                                         }
                                                     }.ToChannel(_connector, "Plaza MD")] = 0;
                }

                if (_connector.Adapter.InnerAdapters.Count == 0)
                {
                    MessageBox.Show(this, LocalizedStrings.Str2971);
                    return;
                }

                _securityProvider = new FilterableSecurityProvider(_connector);

                _connector.ConnectionError += error => this.GuiAsync(() => MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959));
                _connector.Connect();
            }
            else
            {
                Disconnect();
            }
        }