Ejemplo n.º 1
0
 public static decimal ReadVolume(this BitArrayReader reader, BinaryMetaInfo info)
 {
     if (info.Version < MarketDataVersions.Version44)
     {
         if (reader.Read())
         {
             return(reader.ReadLong());
         }
         else
         {
             throw new NotSupportedException(LocalizedStrings.Str1011);
         }
     }
     else
     {
         if (reader.Read())
         {
             return(reader.ReadLong() * info.VolumeStep);
         }
         else
         {
             return(info.FirstFractionalVolume = reader.ReadDecimal(info.FirstFractionalVolume));
         }
     }
 }
Ejemplo n.º 2
0
        public static decimal ReadPriceEx(this BitArrayReader reader, BinaryMetaInfo info, bool useLong, bool largeDecimal)
        {
            if (info.Version < MarketDataVersions.Version41)
            {
                var prevPrice = info.FirstPrice;
                return(info.FirstPrice = reader.ReadPrice(ref prevPrice, info));
            }
            else
            {
                if (reader.TryReadLargeDecimal(largeDecimal, out var price))
                {
                    return(price);
                }

                if (reader.Read())
                {
                    var prevPrice = info.FirstPrice;
                    return(info.FirstPrice = reader.ReadPrice(ref prevPrice, info, useLong));
                }
                else
                {
                    return(info.FirstFractionalPrice = reader.ReadDecimal(info.FirstFractionalPrice));
                }
            }
        }
Ejemplo n.º 3
0
        private static decimal?ReadCommission(BitArrayReader reader, TransactionSerializerMetaInfo metaInfo)
        {
            if (!reader.Read())
            {
                return(null);
            }

            return(metaInfo.FirstCommission = reader.ReadDecimal(metaInfo.FirstCommission));
        }
Ejemplo n.º 4
0
        private static bool TryReadLargeDecimal(this BitArrayReader reader, bool largeDecimal, out decimal value)
        {
            if (largeDecimal)
            {
                if (reader.Read())
                {
                    value = reader.ReadDecimal();
                    return(true);
                }
            }

            value = default;
            return(false);
        }
 public static decimal ReadPriceEx <T>(this BitArrayReader reader, BinaryMetaInfo <T> info)
     where T : BinaryMetaInfo <T>
 {
     if (info.Version < MarketDataVersions.Version41)
     {
         return(info.FirstPrice = reader.ReadPrice(info.FirstPrice, info));
     }
     else
     {
         if (reader.Read())
         {
             return(info.FirstPrice = reader.ReadPrice(info.FirstPrice, info));
         }
         else
         {
             return(info.FirstNonSystemPrice = reader.ReadDecimal(info.FirstNonSystemPrice));
         }
     }
 }
Ejemplo n.º 6
0
 public static decimal ReadPriceEx(this BitArrayReader reader, BinaryMetaInfo info)
 {
     if (info.Version < MarketDataVersions.Version41)
     {
         var prevPrice = info.FirstPrice;
         return(info.FirstPrice = reader.ReadPrice(ref prevPrice, info));
     }
     else
     {
         if (reader.Read())
         {
             var prevPrice = info.FirstPrice;
             return(info.FirstPrice = reader.ReadPrice(ref prevPrice, info));
         }
         else
         {
             return(info.FirstFractionalPrice = reader.ReadDecimal(info.FirstFractionalPrice));
         }
     }
 }
Ejemplo n.º 7
0
        public static DataType ReadBuildFrom(this BitArrayReader reader)
        {
            if (!reader.Read())
            {
                return(null);
            }

            switch (reader.ReadInt())
            {
            case 0:
                return(DataType.Level1);

            case 1:
                return(DataType.MarketDepth);

            case 2:
                return(DataType.OrderLog);

            case 3:
                return(DataType.Ticks);

            case 4:
                return(DataType.Transactions);

            case 5:
                return(reader.ReadInt().ToDataType(reader.ReadLong(), reader.Read() ? reader.ReadDecimal(0) : 0M, reader.ReadInt()));

            default:
                throw new InvalidOperationException();
            }
        }
Ejemplo n.º 8
0
 private static decimal DeserializeChange(BitArrayReader reader, RefPair <decimal, decimal> info)
 {
     info.First = reader.ReadDecimal(info.First);
     return(info.First);
 }
Ejemplo n.º 9
0
 public static decimal?ReadNullableDecimal(this BitArrayReader reader)
 => reader.Read() ? reader.ReadDecimal() : (decimal?)null;
Ejemplo n.º 10
0
        public static decimal ReadDecimal(this BitArrayReader reader, decimal prevPrice)
        {
            var diff = reader.ReadDecimal();

            return(prevPrice + diff);
        }