Пример #1
0
        void TickSizeHandler(TickSizeMessage message)
        {
            int        contractId = message.RequestId;
            IBTickType type       = (IBTickType)message.Field;
            dynamic    size       = message.Size;

            //Debug.WriteLine("ZEUS - TickSizeHandler: " + contractId + ", " + type + ", " + size);

            Market currentMarket = Contracts[contractId].Item2;

            currentMarket.Timestamp = Now;

            bool send = false;

            if (type == IBTickType.BidSize)
            {
                currentMarket.BidSize = size;
                send = true;
            }
            else if (type == IBTickType.AskSize)
            {
                currentMarket.AskSize = size;
                send = true;
            }

            if (send)
            {
                Ether.Send(currentMarket);
            }
        }
Пример #2
0
        public void UpdateUI(TickSizeMessage dataMessage)
        {
            DataGridView grid = (DataGridView)uiControl;

            if ((grid[MARKET_DATA_TYPE_INDEX, GetIndex(dataMessage.RequestId)].Value.Equals(MarketDataType.Real_Time.Name)) &&
                (dataMessage.Field == 69 ||
                 dataMessage.Field == 70 ||
                 dataMessage.Field == 71 ||
                 dataMessage.Field == 74))
            {
                grid[MARKET_DATA_TYPE_INDEX, GetIndex(dataMessage.RequestId)].Value = MarketDataType.Delayed.Name;
            }
            switch (dataMessage.Field)
            {
            case 0:
            case 69:
            {
                //BID SIZE, DELAYED_BID_SIZE
                grid[BID_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case 3:
            case 70:
            {
                //ASK SIZE, DELAYED_ASK_SIZE
                grid[ASK_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case 5:
            case 71:
            {
                //LAST_SIZE, DELAYED_LAST_SIZE
                grid[LAST_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case 8:
            case 74:
            {
                //VOLUME, DELAYED_VOLUME
                grid[VOLUME_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case 86:
            {
                //FUTURES_OPEN_INTEREST
                grid[FUTURES_OPEN_INTEREST_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }
            }
        }
Пример #3
0
        private void ibClient_Tick(TickSizeMessage msg)
        {
            if (isDebug)
            {
                Console.WriteLine("Tick Size. Ticker Id:" + msg.RequestId + ", Symbol: " + dicAssets[msg.RequestId].Con.Symbol + ", Type: " + TickType.getField(msg.Field) + ", Size: " + msg.Size);
            }

            switch (msg.Field)
            {
            case TickType.ASK_SIZE:
                dicAssets[msg.RequestId].AskSize = msg.Size;
                break;

            case TickType.BID_SIZE:
                dicAssets[msg.RequestId].BidSize = msg.Size;
                break;
            }
        }
Пример #4
0
 public void tickSize(int tickerId, int field, int size)
 {
     var message = new TickSizeMessage(tickerId,field,size);
     MessageHandler.messageBox.Enqueue(message);
 }
Пример #5
0
        public void UpdateUI(TickSizeMessage dataMessage)
        {
            DataGridView grid = (DataGridView)uiControl;

            if ((grid[MARKET_DATA_TYPE_INDEX, GetIndex(dataMessage.RequestId)].Value.Equals(MarketDataType.Real_Time.Name)) &&
                (dataMessage.Field == TickType.DELAYED_BID_SIZE ||
                 dataMessage.Field == TickType.DELAYED_ASK_SIZE ||
                 dataMessage.Field == TickType.DELAYED_LAST_SIZE ||
                 dataMessage.Field == TickType.DELAYED_VOLUME))
            {
                grid[MARKET_DATA_TYPE_INDEX, GetIndex(dataMessage.RequestId)].Value = MarketDataType.Delayed.Name;
            }
            switch (dataMessage.Field)
            {
            case TickType.BID_SIZE:
            case TickType.DELAYED_BID_SIZE:
            {
                //BID SIZE, DELAYED_BID_SIZE
                grid[BID_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case TickType.ASK_SIZE:
            case TickType.DELAYED_ASK_SIZE:
            {
                //ASK SIZE, DELAYED_ASK_SIZE
                grid[ASK_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case TickType.LAST_SIZE:
            case TickType.DELAYED_LAST_SIZE:
            {
                //LAST_SIZE, DELAYED_LAST_SIZE
                grid[LAST_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case TickType.VOLUME:
            case TickType.DELAYED_VOLUME:
            {
                //VOLUME, DELAYED_VOLUME
                grid[VOLUME_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case TickType.FUTURES_OPEN_INTEREST:
            {
                //FUTURES_OPEN_INTEREST
                grid[FUTURES_OPEN_INTEREST_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case TickType.AVG_OPT_VOLUME:
            {
                //AVG_OPT_VOLUME
                grid[AVG_OPT_VOLUME_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }

            case TickType.SHORTABLE_SHARES:
            {
                //SHORTABLE_SHARES
                grid[SHORTABLE_SHARES_INDEX, GetIndex(dataMessage.RequestId)].Value = dataMessage.Size;
                break;
            }
            }
        }
Пример #6
0
        public override void UpdateUI(IBMessage message)
        {
            MarketDataMessage dataMessage = (MarketDataMessage)message;

            checkToAddRow(dataMessage.RequestId);
            DataGridView grid = (DataGridView)uiControl;

            if (grid.Rows.Count >= dataMessage.RequestId - TICK_ID_BASE)
            {
                if (message is TickPriceMessage)
                {
                    TickPriceMessage priceMessage = (TickPriceMessage)message;
                    switch (dataMessage.Field)
                    {
                    case 1:
                    {
                        //BID
                        grid[BID_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }

                    case 2:
                    {
                        //ASK
                        grid[ASK_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }

                    case 9:
                    {
                        //CLOSE
                        grid[CLOSE_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }
                    }
                }
                else if (dataMessage is TickSizeMessage)
                {
                    TickSizeMessage sizeMessage = (TickSizeMessage)message;
                    switch (dataMessage.Field)
                    {
                    case 0:
                    {
                        //BID SIZE
                        grid[BID_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = sizeMessage.Size;
                        break;
                    }

                    case 3:
                    {
                        //ASK SIZE
                        grid[ASK_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = sizeMessage.Size;
                        break;
                    }

                    case 5:
                    {
                        //LAST SIZE
                        grid[LAST_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = sizeMessage.Size;
                        break;
                    }

                    case 8:
                    {
                        //VOLUME
                        grid[VOLUME_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = sizeMessage.Size;
                        break;
                    }
                    }
                }
            }
        }
        public override void UpdateUI(IBMessage message)
        {
            IAppMDManager     appMDMManager   = appStrategyManager.getAppMDManager();
            IAppEventManager  appEventManager = appStrategyManager.getAppEventManager();
            MarketDataMessage dataMessage     = (MarketDataMessage)message;

            checkToAddRow(dataMessage.RequestId);
            DataGridView grid = (DataGridView)uiControl;

            if (grid.Rows.Count >= dataMessage.RequestId - TICK_ID_BASE)
            {
                if (message is TickPriceMessage)
                {
                    TickPriceMessage priceMessage = (TickPriceMessage)message;
                    switch (dataMessage.Field)
                    {
                    case 1:
                    {
                        //BID
                        appEventManager.putTickPriceEvents(priceMessage, dataMessage);
                        //stgManager.handleTickMessage(message);
                        grid[BID_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }

                    case 2:
                    {
                        //ASK
                        appEventManager.putTickPriceEvents(priceMessage, dataMessage);
                        //stgManager.handleTickMessage(message);
                        grid[ASK_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }

                    case 4:
                    {
                        //LAST
                        appEventManager.putTickPriceEvents(priceMessage, dataMessage);
                        //stgManager.handleTickMessage(message);
                        grid[LAST_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }

                    case 6:
                    {
                        //HIGH
                        grid[HIGH_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }

                    case 7:
                    {
                        //LOW
                        grid[LOW_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }

                    case 9:
                    {
                        //CLOSE
                        grid[CLOSE_PRICE_INDEX, GetIndex(dataMessage.RequestId)].Value = priceMessage.Price;
                        break;
                    }
                    }
                }
                else if (dataMessage is TickSizeMessage)
                {
                    TickSizeMessage sizeMessage = (TickSizeMessage)message;
                    switch (dataMessage.Field)
                    {
                    case 0:
                    {
                        //BID SIZE
                        grid[BID_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = sizeMessage.Size;
                        break;
                    }

                    case 3:
                    {
                        //ASK SIZE
                        grid[ASK_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = sizeMessage.Size;
                        break;
                    }

                    case 5:
                    {
                        //LAST SIZE

                        grid[LAST_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = sizeMessage.Size;
                        break;
                    }

                    case 8:
                    {
                        //VOLUME
                        //stgManager.handleTickMessage(message);
                        grid[VOLUME_SIZE_INDEX, GetIndex(dataMessage.RequestId)].Value = sizeMessage.Size;
                        break;
                    }
                    }
                }
            }
        }
Пример #8
0
 static void client_TickSize(TickSizeMessage e)
 {
     Console.WriteLine("Tick Size: " + e.Size + " Tick Type: " + e.Field);
 }