示例#1
0
        //private Security[] Securities
        //{
        //	get
        //	{
        //		var entityRegistry = ConfigManager.GetService<IStudioEntityRegistry>();

        //		return _securityIds
        //			.Select(id => entityRegistry.Securities.ReadById(id))
        //			.Where(s => s != null)
        //			.ToArray();
        //	}
        //}

        public SecuritiesPanel()
        {
            InitializeComponent();

            _defaultColumns.ForEach(c => SecurityPicker.SetColumnVisibility(c, Visibility.Visible));

            SecurityPicker.GridChanged += RaiseChangedCommand;

            GotFocus += (s, e) => RaiseSelectedCommand();

            var cmdSvc = ConfigManager.GetService <IStudioCommandService>();

            //cmdSvc.Register<ResetedCommand>(this, false, cmd =>
            //{
            //	var selectedSecurities = Securities;

            //	selectedSecurities.ForEach(RaiseRefuseMarketData);
            //	selectedSecurities.ForEach(RaiseRequestMarketData);
            //});
            cmdSvc.Register <BindConnectorCommand>(this, true, cmd =>
            {
                if (!cmd.CheckControl(this))
                {
                    return;
                }

                SecurityPicker.SecurityProvider = ConfigManager.GetService <ISecurityProvider>();
            });

            WhenLoaded(() => new RequestBindSource(this).SyncProcess(this));
        }
示例#2
0
        /// <summary>
        /// Получить инструмент "Все инструменты".
        /// </summary>
        /// <param name="picker">Визуальный компонент для поиска и выбора инструмента.</param>
        public static void ExcludeAllSecurity(this SecurityPicker picker)
        {
            if (picker == null)
            {
                throw new ArgumentNullException(nameof(picker));
            }

            picker.ExcludeSecurities.Add(GetAllSecurity());
        }
示例#3
0
		void IPersistable.Load(SettingsStorage storage)
		{
			if (storage.ContainsKey("Drive"))
				DrivePanel.SelectedDrive = DriveCache.Instance.GetDrive(storage.GetValue<string>("Drive"));

			DrivePanel.StorageFormat = storage.GetValue<StorageFormats>("StorageFormat");

			MarketData.Load(storage.GetValue<SettingsStorage>("MarketData"));
			SecurityPicker.Load(storage.GetValue<SettingsStorage>("SecurityPicker"));
			LookupPanel.Load(storage.GetValue<SettingsStorage>("LookupPanel"));
		}
示例#4
0
		void IPersistable.Save(SettingsStorage storage)
		{
			if (DrivePanel.SelectedDrive != null)
				storage.SetValue("Drive", DrivePanel.SelectedDrive.Path);

			storage.SetValue("StorageFormat", DrivePanel.StorageFormat.To<string>());

			storage.SetValue("MarketData", MarketData.Save());
			storage.SetValue("SecurityPicker", SecurityPicker.Save());
			storage.SetValue("LookupPanel", LookupPanel.Save());
		}
示例#5
0
        public GluingDataPane()
        {
            InitializeComponent();

            _entityRegistry = ConfigManager.GetService <IEntityRegistry>();

            SecurityPicker.SecurityProvider = ConfigManager.GetService <ISecurityProvider>();
            SecurityPicker.ExcludeAllSecurity();

            MarketData.DataLoading += () => MarketDataBusyIndicator.IsBusy = true;
            MarketData.DataLoaded  += () => MarketDataBusyIndicator.IsBusy = false;
        }
示例#6
0
        void IPersistable.Save(SettingsStorage storage)
        {
            if (DrivePanel.SelectedDrive != null)
            {
                storage.SetValue("Drive", DrivePanel.SelectedDrive.Path);
            }

            storage.SetValue("StorageFormat", DrivePanel.StorageFormat.To <string>());

            storage.SetValue("MarketData", MarketData.Save());
            storage.SetValue("SecurityPicker", SecurityPicker.Save());
            storage.SetValue("DataTypeComboBox", DataTypeComboBox.SelectedIndex);
        }
示例#7
0
        void IPersistable.Load(SettingsStorage storage)
        {
            if (storage.ContainsKey("Drive"))
            {
                DrivePanel.SelectedDrive = DriveCache.Instance.GetDrive(storage.GetValue <string>("Drive"));
            }

            DrivePanel.StorageFormat = storage.GetValue <StorageFormats>("StorageFormat");

            MarketData.Load(storage.GetValue <SettingsStorage>("MarketData"));
            SecurityPicker.Load(storage.GetValue <SettingsStorage>("SecurityPicker"));
            DataTypeComboBox.SelectedIndex = storage.GetValue <int>("DataTypeComboBox");
        }
        public AllSecuritiesPane()
        {
            InitializeComponent();

            Progress.Init(ExportBtn, MainGrid);

            SecurityPicker.SecurityProvider = ConfigManager.GetService <ISecurityProvider>();
            SecurityPicker.ExcludeAllSecurity();

            ExportBtn.EnableType(ExportTypes.Bin, false);

            MarketData.DataLoading += () => MarketDataBusyIndicator.IsBusy = true;
            MarketData.DataLoaded  += () => MarketDataBusyIndicator.IsBusy = false;
        }
示例#9
0
        public override void Save(SettingsStorage storage)
        {
            //storage.SetValue("Expression", Expression);
            storage.SetValue("DateFrom", DateFrom);
            storage.SetValue("DateTo", DateTo);

            if (MarketDataSettings != null)
            {
                storage.SetValue("MarketDataSettings", MarketDataSettings.Id.To <string>());
            }

            storage.SetValue("ChartPanel", ChartPanel.Save());
            storage.SetValue("SecurityPicker", SecurityPicker.Save());
            storage.SetValue("Layout", DockSite.SaveLayout());
        }
示例#10
0
        public override void Load(SettingsStorage storage)
        {
            //_suspendChangedEvent = true;

            //Expression = storage.GetValue("Expression", Expression);
            DateFrom = storage.GetValue("DateFrom", DateFrom);
            DateTo   = storage.GetValue("DateTo", DateTo);

            var marketDataSettings = storage.GetValue <string>("MarketDataSettings");

            if (marketDataSettings != null)
            {
                var id       = marketDataSettings.To <Guid>();
                var settings = ConfigManager.GetService <MarketDataSettingsCache>().Settings.FirstOrDefault(s => s.Id == id);

                if (settings != null)
                {
                    MarketDataSettings = settings;
                }
            }

            var chart = storage.GetValue <SettingsStorage>("ChartPanel");

            if (chart != null)
            {
                ChartPanel.Load(chart);
            }

            var securityPicker = storage.GetValue <SettingsStorage>("SecurityPicker");

            if (securityPicker != null)
            {
                SecurityPicker.Load(securityPicker);
            }

            var layout = storage.GetValue <string>("Layout");

            if (layout != null)
            {
                DockSite.LoadLayout(layout);
            }

            //_suspendChangedEvent = false;
        }
示例#11
0
        public CompositeSecurityPanel()
        {
            InitializeComponent();

            InputBorder.SetBindings(IsEnabledProperty, this, "IsStarted", BindingMode.OneWay, new InverseBooleanConverter());

            MarketDataSettings = ConfigManager.GetService <MarketDataSettingsCache>().Settings.First(s => s.Id != Guid.Empty);
            DateFrom           = DateTime.Today.AddDays(-180);
            DateTo             = DateTime.Today;

            _timer          = new ResettableTimer(TimeSpan.FromSeconds(30));
            _timer.Elapsed += () =>
            {
                GuiDispatcher.GlobalDispatcher.AddAction(() => IsStarted = false);
                _bufferedChart.IsAutoRange = false;
            };

            _drawTimer          = new ResettableTimer(TimeSpan.FromSeconds(2));
            _drawTimer.Elapsed += DrawTimerOnElapsed;

            ChartPanel.SubscribeCandleElement    += OnChartPanelSubscribeCandleElement;
            ChartPanel.SubscribeIndicatorElement += OnChartPanelSubscribeIndicatorElement;
            ChartPanel.UnSubscribeElement        += OnChartPanelUnSubscribeElement;

            var indicatorTypes = ConfigManager
                                 .GetService <IAlgoService>()
                                 .IndicatorTypes;

            ChartPanel.IsInteracted = true;
            ChartPanel.MinimumRange = 200;
            ChartPanel.IndicatorTypes.AddRange(indicatorTypes);

            SecurityPicker.SetColumnVisibility("Id", Visibility.Visible);
            SecurityPicker.SetColumnVisibility("Code", Visibility.Collapsed);

            _candleManager.Container.CandlesKeepTime = TimeSpan.FromDays(5000);
            _candleManager.Processing += ProcessCandle;

            WhenLoaded(OnLoaded);

            _bufferedChart = new BufferedChart(ChartPanel);
        }
        public override void Load(SettingsStorage storage)
        {
            var gridSettings = storage.GetValue <SettingsStorage>("SecurityPicker");

            if (gridSettings != null)
            {
                SecurityPicker.Load(gridSettings);
            }

            var alertSettings = storage.GetValue <SettingsStorage>("AlertSettings");

            if (alertSettings != null)
            {
                AlertBtn.Load(alertSettings);
            }

            _securityIds.SyncDo(list =>
            {
                list.Clear();
                list.AddRange(storage.GetValue("Securities", ArrayHelper <string> .EmptyArray));
            });
        }
示例#13
0
        //TODO: дописать логику загрузки состояния для DockSite
        public override void Load(SettingsStorage storage)
        {
            var gridSettings = storage.GetValue <SettingsStorage>("SecurityPicker");

            if (gridSettings != null)
            {
                SecurityPicker.Load(gridSettings);
            }

            var layout = storage.GetValue <string>("Layout");

            //if (layout != null)
            //	DockSite.LoadLayout(layout);

            _securityIds.SyncDo(list =>
            {
                list.Clear();
                list.AddRange(storage.GetValue("Securities", ArrayHelper.Empty <string>()));
            });

            SecurityPicker.SecurityProvider = ConfigManager.GetService <ISecurityProvider>();
        }
示例#14
0
        public override void Load(SettingsStorage storage)
        {
            var gridSettings = storage.GetValue <SettingsStorage>("SecurityPicker");

            if (gridSettings != null)
            {
                SecurityPicker.Load(gridSettings);
            }

            var layout = storage.GetValue <string>("Layout");

            if (layout != null)
            {
                DockSite.LoadLayout(layout);
            }

            _securityIds.SyncDo(list =>
            {
                list.Clear();
                list.AddRange(storage.GetValue("Securities", ArrayHelper <string> .EmptyArray));
            });
        }
        public StrategySecuritiesPanel()
        {
            InitializeComponent();

            SecurityPicker.GridChanged += RaiseChangedCommand;
            AlertBtn.SchemaChanged     += RaiseChangedCommand;

            GotFocus += (s, e) => RaiseSelectedCommand();

            _newSecuritiesTooltip = (ToolTip)AddSecurity.ToolTip;
            _defaultStorageBrush  = ((TextBlock)_newSecuritiesTooltip.Content).Foreground;
            _defaultToolTipText   = ((TextBlock)_newSecuritiesTooltip.Content).Text;

            var cmdSvc = ConfigManager.GetService <IStudioCommandService>();

            cmdSvc.Register <ResetedCommand>(this, false, cmd =>
            {
                var selectedSecurities = Securities;

                selectedSecurities.ForEach(RaiseRefuseMarketData);
                selectedSecurities.ForEach(RaiseRequestMarketData);
            });
            cmdSvc.Register <NewSecuritiesCommand>(this, false, cmd =>
            {
                if (_isTooltipVisible)
                {
                    return;
                }

                _isTooltipVisible = true;

                GuiDispatcher.GlobalDispatcher.AddAction(() =>
                {
                    ((TextBlock)_newSecuritiesTooltip.Content).Text       = LocalizedStrings.Str3276;
                    ((TextBlock)_newSecuritiesTooltip.Content).Foreground = Brushes.Red;
                    _newSecuritiesTooltip.Placement       = PlacementMode.Bottom;
                    _newSecuritiesTooltip.PlacementTarget = AddSecurity;
                    _newSecuritiesTooltip.IsOpen          = true;
                });
            });
            cmdSvc.Register <BindStrategyCommand>(this, false, cmd =>
            {
                if (!cmd.CheckControl(this))
                {
                    return;
                }

                if (_securityIds.Count == 0)
                {
                    _securityIds.Add(cmd.Source.Security.Id);

                    AddDefaultSecurities("RI");
                    AddDefaultSecurities("Si");
                    AddDefaultSecurities("GZ");
                }

                var selectedSecurities = Securities;

                SecurityPicker.Securities.AddRange(selectedSecurities);
                selectedSecurities.ForEach(RaiseRequestMarketData);

                GuiDispatcher.GlobalDispatcher.AddAction(() =>
                {
                    SecurityPicker.AddContextMenuItem(new Separator());
                    SecurityPicker.AddContextMenuItem(new MenuItem {
                        Header = LocalizedStrings.Str3277, Command = OpenMarketDepthCommand, CommandTarget = this
                    });
                });
            });

            WhenLoaded(() => new RequestBindSource(this).SyncProcess(this));
        }
 public override void Save(SettingsStorage storage)
 {
     storage.SetValue("SecurityPicker", SecurityPicker.Save());
     storage.SetValue("AlertSettings", AlertBtn.Save());
     storage.SetValue("Securities", _securityIds.ToArray());
 }
示例#17
0
 public override void Save(SettingsStorage storage)
 {
     storage.SetValue("SecurityPicker", SecurityPicker.Save());
     storage.SetValue("Layout", DockSite.SaveLayout());
     storage.SetValue("Securities", _securityIds.ToArray());
 }