Ejemplo n.º 1
0
		public override void Write(BinaryWriter writer, object obj)
		{
			Level2 level = (Level2)obj;
			writer.Write(0);
			writer.Write(level.dateTime.ToBinary());
			writer.Write(level.providerId);
			writer.Write(level.instrumentId);
			writer.Write(level.price);
			writer.Write(level.size);
			writer.Write((byte)level.side);
			writer.Write((byte)level.action);
			writer.Write(level.position);
		}
Ejemplo n.º 2
0
		public override object Read(BinaryReader reader)
		{
			Level2 level = new Level2();
			reader.ReadByte();
			level.dateTime = DateTime.FromBinary(reader.ReadInt64());
			level.providerId = reader.ReadByte();
			level.instrumentId = reader.ReadInt32();
			level.price = reader.ReadDouble();
			level.size = reader.ReadInt32();
			level.side = (Level2Side)reader.ReadByte();
			level.action = (Level2UpdateAction)reader.ReadByte();
			level.position = reader.ReadInt32();
			return level;
		}
Ejemplo n.º 3
0
        public override void Write(BinaryWriter writer, object obj)
        {
            Level2Update level2Update = (Level2Update)obj;

            writer.Write(0);
            writer.Write(level2Update.dateTime.ToBinary());
            writer.Write(level2Update.providerId);
            writer.Write(level2Update.instrumentId);
            writer.Write(level2Update.entries.Length);
            Level2[] entries = level2Update.entries;
            for (int i = 0; i < entries.Length; i++)
            {
                Level2 obj2 = entries[i];
                this.streamerManager.Serialize(writer, obj2);
            }
        }
Ejemplo n.º 4
0
        internal void Set(Level2Update update)
        {
            Level2[] entries = update.entries;
            for (int i = 0; i < entries.Length; i++)
            {
                Level2       level = entries[i];
                IList <Tick> list  = null;
                switch (level.side)
                {
                case Level2Side.Bid:
                    list = this.bids;
                    break;

                case Level2Side.Ask:
                    list = this.asks;
                    break;
                }
                switch (level.action)
                {
                case Level2UpdateAction.New:
                    list.Insert(level.position, new Tick(level));
                    break;

                case Level2UpdateAction.Change:
                    list[level.position].size = level.size;
                    break;

                case Level2UpdateAction.Delete:
                    list.RemoveAt(level.position);
                    break;

                case Level2UpdateAction.Reset:
                    list.Clear();
                    break;
                }
            }
        }
Ejemplo n.º 5
0
		public Level2Update(DateTime dateTime, byte providerId, int instrumentId, Level2[] entries) : base(dateTime)
		{
			this.providerId = providerId;
			this.instrumentId = instrumentId;
			this.entries = entries;
		}