예제 #1
0
 public static FormattedPrice ToAskPrice(this IPrice price)
 {
     return(PriceFormatter.GetFormattedPrice(
                price.Ask.Rate,
                price.CurrencyPair.RatePrecision,
                price.CurrencyPair.PipsPosition));
 }
        public void OnPrice(IExecutablePrice executablePrice)
        {
            _executablePrice = executablePrice;

            var formattedPrice = PriceFormatter.GetFormattedPrice(_executablePrice.Rate,
                                                                  executablePrice.Parent.CurrencyPair.RatePrecision, executablePrice.Parent.CurrencyPair.PipsPosition);

            BigFigures = formattedPrice.BigFigures;
            Pips       = formattedPrice.Pips;
            TenthOfPip = formattedPrice.TenthOfPip;

            _executeCommand.RaiseCanExecuteChanged();
        }
예제 #3
0
        private void OnPrice(IPrice price)
        {
            IsSubscribing = false;
            IsStale       = price.IsStale;

            if (price.IsStale)
            {
                Bid.OnStalePrice();
                Ask.OnStalePrice();
                Spread        = string.Empty;
                _previousRate = null;
                Movement      = PriceMovement.None;
                SpotDate      = "SP";
            }
            else
            {
                if (_previousRate.HasValue)
                {
                    if (price.Mid > _previousRate.Value)
                    {
                        Movement = PriceMovement.Up;
                    }
                    else if (price.Mid < _previousRate.Value)
                    {
                        Movement = PriceMovement.Down;
                    }
                    else
                    {
                        Movement = PriceMovement.None;
                    }
                }
                Mid           = price.Mid;
                _previousRate = price.Mid;
                Bid.OnPrice(price.Bid);
                Ask.OnPrice(price.Ask);
                Spread   = PriceFormatter.GetFormattedSpread(price.Spread, _currencyPair.RatePrecision, _currencyPair.PipsPosition);
                SpotDate = "SP. " + price.ValueDate.ToString("dd MMM");
                _priceLatencyRecorder.OnRendered(price);

                AddHistoricalPrice(price);
            }
            _currentPrice = price;
        }