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); } }
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; } } }
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; } }
public void tickSize(int tickerId, int field, int size) { var message = new TickSizeMessage(tickerId,field,size); MessageHandler.messageBox.Enqueue(message); }
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; } } }
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; } } } } }
static void client_TickSize(TickSizeMessage e) { Console.WriteLine("Tick Size: " + e.Size + " Tick Type: " + e.Field); }