/// <summary>
        /// Event raised when new Trade Size is receieved
        /// </summary>
        private void OnTickSize(object sender, TickSizeEventArgs eventArgs)
        {
            try
            {
                if (Logger.IsDebugEnabled)
                {
                    Logger.Debug("New Trade Size receieved: " + eventArgs.Size, _type.FullName, "OnTickSize");
                }

                lock (_lock)
                {
                    TickType type = eventArgs.TickType;
                    if (type.Equals(TickType.LastSize))
                    {
                        Tick tick = _tickList[eventArgs.TickerId];
                        tick.LastSize = (decimal)eventArgs.Size;
                        tick.DateTime = DateTime.Now;
                        // Raise Event
                        if (TickArrived != null)
                        {
                            TickArrived(tick);
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception, _type.FullName, "OnTickSize");
            }
        }
Пример #2
0
        private void EventDispatcherOnTickSize(object o, TickSizeEventArgs tickSizeEventArgs)
        {
            if (!_lastsByRequestId.TryGetValue(tickSizeEventArgs.RequestId, out var last))
            {
                last = new Level1MarketDataEventArgs();
                _lastsByRequestId.Add(tickSizeEventArgs.RequestId, last);
            }

            last.UpdateValues(tickSizeEventArgs.Field, tickSizeEventArgs.Size);
            MarketData.RaiseEvent(this, last.ShallowCopy());
        }
Пример #3
0
        void client_TickSize(object sender, TickSizeEventArgs e)
        {
            //Console.WriteLine("Tick Size: " + e.Size + " Tick Type: " + EnumDescConverter.GetEnumDescription(e.TickType));
            int millisecond = (int)(DateTime.Now.Ticks % TimeSpan.TicksPerSecond / (TimeSpan.TicksPerSecond / 256));

            lock (capturingWriterLock)
            {
                capturingWriter.Write((byte)millisecond);
                capturingWriter.Write((byte)e.TickType);
                capturingWriter.Write((byte)e.TickerId);
                capturingWriter.Write((float)e.Size);
            }
            if ((totalCaptureEventsForDisplay & 0x3C) == 0) //only shows the first 4 for every 64
            {
                logger.Trace("{0} : {1} : {2} : {3}", e.TickType, symbols[e.TickerId].Symbol, e.TickerId, e.Size);
            }
            totalCaptureEventsForDisplay++;
        }
Пример #4
0
        void tws_TickSize(object sender, TickSizeEventArgs e)
        {
            // get tick object
            if (!tick_list.ContainsKey(e.TickerId))
            {
                return;
            }
            TickData t = tick_list[e.TickerId];

            switch (e.TickType)
            {
            case TickType.BidSize:       // bid
                t.size.bid = e.Size;
                break;

            case TickType.AskSize:       // ask
                t.size.ask = e.Size;
                break;

            case TickType.LastSize:      // last
                t.size.last = e.Size;
                break;

            case TickType.Volume:        // volume
                t.size.volume = e.Size;
                break;

            case TickType.OpenInterest:
                t.size.open_int = e.Size;
                break;

            default:
                break;
            }

            // remove from pending requests
            t.pending_requests.Remove(e.TickType);
            if (t.pending_requests.Count == 0)
            {
                t.ready_event.Set();
            }
        }
Пример #5
0
 private void client_TickSize(object sender, TickSizeEventArgs e)
 {
     if (e.Size < 65535)
     {
         SymbolHandler buffer = symbolHandlers[(ulong)e.TickerId];
         if (e.TickType == TickType.AskSize)
         {
             buffer.AskSize = e.Size;
             buffer.SendQuote();
         }
         else if (e.TickType == TickType.BidSize)
         {
             buffer.BidSize = e.Size;
             buffer.SendQuote();
         }
         else if (e.TickType == TickType.LastSize)
         {
             buffer.LastSize = e.Size;
             buffer.SendTimeAndSales();
         }
     }
 }
Пример #6
0
/////////  Update form from the main thread ////////////////////////////////////////

        private void Client_TickSize(Object sender, TickSizeEventArgs e)
        {
            this.Visible = false;

            switch (e.TickType)
            {
            case Krs.Ats.IBNet.TickType.BidSize:
                m_BidQty = Convert.ToDouble(e.Size);
                break;

            case Krs.Ats.IBNet.TickType.AskSize:
                m_AskQty = Convert.ToDouble(e.Size);
                break;

            case Krs.Ats.IBNet.TickType.LastSize:
                m_LastQty = Convert.ToDouble(e.Size);
                Tick m_Tick = new Tick(DateTime.Now, m_Last, m_LastQty);
                BidAskUpdate(m_Tick);
                break;

            default:
                break;
            }
        }
        /// <inheritdoc/>
        public void tickSize(int tickerId, int field, int size)
        {
            var eventArgs = new TickSizeEventArgs(tickerId, field, size);

            this.TickSizeEvent?.Invoke(this, eventArgs);
        }
Пример #8
0
 static void client_TickSize(object sender, TickSizeEventArgs e)
 {
     Console.WriteLine("Tick Size: " + e.Size + " Tick Type: " + EnumDescConverter.GetEnumDescription(e.TickType));
 }
Пример #9
0
 private void I_OnSizeDataUpdate(Object sender, TickSizeEventArgs e)
 {
     this.BeginInvoke(OnSizeUpdateDelegate, sender, e);
 }
Пример #10
0
        private void S_OnSizeDataUpdate(Object sender, TickSizeEventArgs e)
        {
            Instrument p = contracts[e.TickerId];

            p.I_OnSizeDataUpdate(sender, e);
        }