Пример #1
0
        public void SetSettings(OrderBookSettings settings)
        {
            var changed = false;

            if (Depth != settings.Depth)
            {
                depthNumericUpDown.Value = settings.Depth;
                changed = true;
            }

            if (HighlightLargePositions != settings.HighlightLargePositions)
            {
                largePositionCheckBox.Checked = settings.HighlightLargePositions;
                changed = true;
            }

            if (Math.Abs(LargeVolumeKoef - settings.LargeVolumeKoef) > 0.00001)
            {
                largeVolumeKoefTrackBar.Value = (int)Math.Round(settings.LargeVolumeKoef * 100);
                changed = true;
            }

            if (RefreshInterval != settings.RefreshInterval)
            {
                intervalTextBox.Text = settings.RefreshInterval.ToString();
                changed = true;
            }

            if (Multiplier != settings.Multiplier)
            {
                multiplierComboBox.SelectedIndex = (int)Math.Log10(settings.Multiplier);
                changed = true;
            }

            if (typeComboBox.SelectedItem == null || Type != settings.OrderBookType)
            {
                typeComboBox.SelectedItem = settings.OrderBookType;
                changed = true;
            }

            if (changed)
            {
                OnOrderBookSettingsChanged();
            }
        }
Пример #2
0
        public OrderbookPublishingService(
            ILogFactory lf,
            CexIoAdapterSettings settings)
        {
            _log               = lf.CreateLog(this);
            _logFactory        = lf;
            _orderBookSettings = settings.OrderBooks;

            var rawOrderBooks = GetRawOrderBooks();

            Session = OrderBooksSession.FromRawOrderBooks(
                rawOrderBooks,
                settings.ToCommonSettings(),
                lf);

            Session.TickPrices.Subscribe(x =>
            {
                foreach (var tickPrice in x)
                {
                    InternalMetrics.QuoteOutCount
                    .WithLabels(tickPrice.Asset)
                    .Inc();

                    InternalMetrics.QuoteOutSidePrice
                    .WithLabels(tickPrice.Asset, "ask")
                    .Set((double)tickPrice.Ask);

                    InternalMetrics.QuoteOutSidePrice
                    .WithLabels(tickPrice.Asset, "bid")
                    .Set((double)tickPrice.Bid);

                    InternalMetrics.OrderBookOutCount
                    .WithLabels(tickPrice.Asset)
                    .Inc();

                    InternalMetrics.OrderBookOutDelayMilliseconds
                    .WithLabels(tickPrice.Asset)
                    .Set((DateTime.UtcNow - tickPrice.Timestamp).TotalMilliseconds);
                }
            });
        }
 private void View_SettingsChanged(OrderBookSettings settings)
 {
     Model.Settings = settings;
 }