Пример #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;
        }
		/// <summary>
		/// Initializes a new instance of the <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();

				if (QuikCheckBox.IsChecked == true)
				{
					var quikTs = new LuaFixTransactionMessageAdapter(_connector.TransactionIdGenerator)
					{
						Login = "******",
						Password = "******".To<SecureString>(),
						Address = QuikTrader.DefaultLuaAddress,
						TargetCompId = "StockSharpTS",
						SenderCompId = "quik",
						ExchangeBoard = ExchangeBoard.Forts,
						Version = FixVersions.Fix44_Lua,
						RequestAllPortfolios = true,
						MarketData = FixMarketData.None,
						TimeZone = TimeHelper.Moscow
					};
					var quikMd = new FixMessageAdapter(_connector.TransactionIdGenerator)
					{
						Login = "******",
						Password = "******".To<SecureString>(),
						Address = QuikTrader.DefaultLuaAddress,
						TargetCompId = "StockSharpMD",
						SenderCompId = "quik",
						ExchangeBoard = ExchangeBoard.Forts,
						Version = FixVersions.Fix44_Lua,
						RequestAllSecurities = true,
						MarketData = FixMarketData.MarketData,
						TimeZone = TimeHelper.Moscow
					};
					quikMd.RemoveTransactionalSupport();

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