private void UpdateLastSaleTicker_TFEX(decimal price, string side, long volume, string lastUpdate, int index, SeriesList.SeriesInformation seriesInfo) { try { if (this.intzaLS.InvokeRequired) { this.intzaLS.Invoke(new frmStockSummary.UpdateLastSaleTicker_TFEXCallBack(this.UpdateLastSaleTicker_TFEX), new object[] { price, side, volume, lastUpdate, index, seriesInfo }); } else { RecordItem recordItem; if (index == -1) { recordItem = this.intzaLS.AddRecord(1, true); } else { recordItem = this.intzaLS.Records(index); } recordItem.Fields("side").Text = side.ToString(); recordItem.Fields("volume").Text = volume.ToString(); recordItem.Fields("price").Text = Utilities.PriceFormat(price, seriesInfo.NumOfDec); recordItem.Fields("time").Text = Utilities.GetTimeLastSale(lastUpdate); Color fontColor = Utilities.ComparePriceCFColor(price, seriesInfo); recordItem.Fields("price").FontColor = fontColor; recordItem.Fields("time").FontColor = Color.LightGray; if (side == "B") { recordItem.Fields("side").FontColor = MyColor.BuyColor; recordItem.Fields("volume").FontColor = MyColor.BuyColor; } else if (side == "S") { recordItem.Fields("side").FontColor = MyColor.SellColor; recordItem.Fields("volume").FontColor = MyColor.SellColor; } else { recordItem.Fields("side").FontColor = MyColor.UnChgColor; recordItem.Fields("volume").FontColor = MyColor.UnChgColor; } recordItem.Changed = true; } } catch (Exception ex) { this.ShowError("UpdateLastSaleTicker_TFEX", ex); } }
public static Color ComparePriceCFColor(decimal price, SeriesList.SeriesInformation seriesInfo) { Color result = Color.White; if (!string.IsNullOrEmpty(seriesInfo.Symbol)) { if (price == seriesInfo.Ceiling) { result = MyColor.CeilingColor; } else if (price == seriesInfo.Floor) { result = MyColor.FloorColor; } else if (price > seriesInfo.PrevFixPrice) { result = MyColor.UpColor; } else if (price < seriesInfo.PrevFixPrice) { result = MyColor.DownColor; } else { result = MyColor.UnChgColor; } } else { result = Color.White; } return result; }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { if (message.MessageType == "LS") { if (this._filterType == frmTickerSetting.filterType.ALL_MARKET || this._filterType == frmTickerSetting.filterType.TFEX_ONLY) { this.UpdateTickerTFEX((LSMessageTFEX)message, realtimeSeriesInfo); } else if (this._filterType == frmTickerSetting.filterType.SYMBOL) { if (ApplicationInfo.TickerStockList.Contains(realtimeSeriesInfo.Symbol)) { this.UpdateTickerTFEX((LSMessageTFEX)message, realtimeSeriesInfo); } } else if (this._filterType == frmTickerSetting.filterType.FAV1 || this._filterType == frmTickerSetting.filterType.FAV2 || this._filterType == frmTickerSetting.filterType.FAV3 || this._filterType == frmTickerSetting.filterType.FAV4 || this._filterType == frmTickerSetting.filterType.FAV5) { if (ApplicationInfo.FavStockList[this._favListPage].Contains(realtimeSeriesInfo.Symbol)) { this.UpdateTickerTFEX((LSMessageTFEX)message, realtimeSeriesInfo); } } } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { if (this.FormState != ClientBaseForm.ClientBaseFormState.Closing) { if (!base.IsLoadingData) { try { if (this._seriesInfoTFEX != null && realtimeSeriesInfo != null && realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { string messageType = message.MessageType; switch (messageType) { case "TP": if (this.currentPage == "Stock in Play") { TPMessageTFEX tPMessageTFEX = (TPMessageTFEX)message; this.StockInPlayUpdateTopPrice_TFEX(tPMessageTFEX.Side, tPMessageTFEX.Price1, tPMessageTFEX.Price2, tPMessageTFEX.Price3, tPMessageTFEX.Price4, tPMessageTFEX.Price5, (long)tPMessageTFEX.Vol1, (long)tPMessageTFEX.Vol2, (long)tPMessageTFEX.Vol3, (long)tPMessageTFEX.Vol4, (long)tPMessageTFEX.Vol5); if (base.IsAllowRender) { this.intzaStockInPlay.Redraw(); } } break; case "LS": { LSMessageTFEX lSMessageTFEX = (LSMessageTFEX)message; if (this.currentPage == "Sale by Time") { decimal avg = 0m; if (lSMessageTFEX.AccVolume > 0) { avg = lSMessageTFEX.AccValue / lSMessageTFEX.AccVolume; } this.SaleByTimeUpdateGridData_TFEX(lSMessageTFEX.Side, lSMessageTFEX.Price, (long)lSMessageTFEX.Vol, lSMessageTFEX.Price - realtimeSeriesInfo.PrevFixPrice, avg, lSMessageTFEX.LastTime, -1); if (base.IsAllowRender) { this.intzaSaleByTime.EndUpdate(); } } else if (this.currentPage == "Sale by Price") { if (this.SaleByPriceUpdateBuySell(lSMessageTFEX.Price, lSMessageTFEX.Side, 1, (long)lSMessageTFEX.Vol, false)) { this.intzaSaleByPrice.Sort("price", SortType.Desc); } if (base.IsAllowRender) { this.intzaSaleByPrice.EndUpdate(); } if (lSMessageTFEX.Side == "B" && lSMessageTFEX.DealSource != 20) { this.wcGraphVolume.UpdateData((double)lSMessageTFEX.Price, (long)lSMessageTFEX.Vol, (long)lSMessageTFEX.Vol, 0L); } else if (lSMessageTFEX.Side == "S" && lSMessageTFEX.DealSource != 20) { this.wcGraphVolume.UpdateData((double)lSMessageTFEX.Price, (long)lSMessageTFEX.Vol, 0L, (long)lSMessageTFEX.Vol); } else { this.wcGraphVolume.UpdateData((double)lSMessageTFEX.Price, (long)lSMessageTFEX.Vol, 0L, 0L); } if (base.IsAllowRender) { this.wcGraphVolume.EndUpdate(); } } else if (this.currentPage == "Stock in Play") { this.StockInPlayUpdateBuySellVolume_TFEX(lSMessageTFEX.Side, lSMessageTFEX.Price, (long)lSMessageTFEX.Vol, 1); if (lSMessageTFEX.Side == "B") { this._buyDeals++; } else if (lSMessageTFEX.Side == "S") { this._sellDeals++; } this.StockInPlayUpdateTotalVolumeAndTotalDeals((long)lSMessageTFEX.LongQty, (long)lSMessageTFEX.ShortQty, (long)lSMessageTFEX.OpenQty); if (base.IsAllowRender) { this.intzaStockInPlay.EndUpdate(); } } if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { LSMessageTFEX lSMessageTFEX2 = (LSMessageTFEX)message; if (lSMessageTFEX2.DealSource == 20) { if (ApplicationInfo.IndexInfoTfex.TXIState != "3C") { this.UpdateOpenOrProjectOpenPriceTFEX(ApplicationInfo.IndexInfoTfex.TXIState, lSMessageTFEX2.Price, realtimeSeriesInfo); } else { this.UpdateOpenOrProjectOpenPriceTFEX(ApplicationInfo.IndexInfoTfex.TXMState, lSMessageTFEX2.Price, realtimeSeriesInfo); } } this.UpdateAllVolumeTFEX(lSMessageTFEX2.Deals, (long)lSMessageTFEX2.AccVolume, lSMessageTFEX2.AccValue, (long)lSMessageTFEX2.OpenQty, (long)lSMessageTFEX2.LongQty, (long)lSMessageTFEX2.ShortQty, lSMessageTFEX2.OpenValue, lSMessageTFEX2.LongValue, lSMessageTFEX2.ShortValue, realtimeSeriesInfo.ContractSize, lSMessageTFEX2.Basis); if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); this.intzaVolumeByBoard.EndUpdate(); } int num = lSMessageTFEX2.Vol; int num2; int.TryParse(num.ToString(), out num2); this.UpdateTickerInfo_TFEX(lSMessageTFEX2.Price, lSMessageTFEX2.Side, (long)num2, lSMessageTFEX2.LastTime, -1); if (base.IsAllowRender) { this.intzaLS.Redraw(); } } break; } case "PO": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { POMessageTFEX pOMessageTFEX = (POMessageTFEX)message; if (ApplicationInfo.IndexInfoTfex.TXIState != "3C") { this.UpdateOpenOrProjectOpenPriceTFEX(ApplicationInfo.IndexInfoTfex.TXIState, pOMessageTFEX.Equilibrium_price_I, realtimeSeriesInfo); } else { this.UpdateOpenOrProjectOpenPriceTFEX(ApplicationInfo.IndexInfoTfex.TXMState, pOMessageTFEX.Equilibrium_price_I, realtimeSeriesInfo); } if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; case "SD": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { SDMessageTFEX sDMessageTFEX = (SDMessageTFEX)message; if (sDMessageTFEX.Lastdate.ToString().Length == 8) { this.intzaInfoTFEX.Item("last_date").Text = Utilities.GetDateFormat(sDMessageTFEX.Lastdate.ToString()); } IntzaBaseItem arg_756_0 = this.intzaInfoTFEX.Item("multiplier"); int num = sDMessageTFEX.Price_quot_factor; arg_756_0.Text = num.ToString(); if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; case "CA8": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { CA8MessageTFEX cA8MessageTFEX = (CA8MessageTFEX)message; if (ApplicationInfo.IndexInfoTfex.TXISession == 2) { this.intzaInfoTFEX.Item("settle").Text = Utilities.PriceFormat(cA8MessageTFEX.FixingPrice.ToString(), this._seriesInfoTFEX.NumOfDec); this.intzaInfoTFEX.Item("settle").FontColor = Utilities.ComparePriceColor(cA8MessageTFEX.FixingPrice, realtimeSeriesInfo.PrevFixPrice); if (realtimeSeriesInfo.MarketCode == 4 || realtimeSeriesInfo.MarketCode == 5) { this.intzaInfoTFEX.Item("psettle").Text = Utilities.PriceFormat(cA8MessageTFEX.FixingPrice, this._seriesInfoTFEX.NumOfDec); this.intzaInfoTFEX.Item("psettle").FontColor = MyColor.UnChgColor; } } else { this.intzaInfoTFEX.Item("psettle").Text = Utilities.PriceFormat(cA8MessageTFEX.FixingPrice, this._seriesInfoTFEX.NumOfDec); this.intzaInfoTFEX.Item("psettle").FontColor = MyColor.UnChgColor; } if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; case "BU10": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { BU10MessageTFEX bU10MessageTFEX = (BU10MessageTFEX)message; this.intzaInfoTFEX.Item("tickSize").Text = Utilities.PriceFormat(bU10MessageTFEX.StepSize, this._seriesInfoTFEX.NumOfDec); if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; case "TCF": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { TCFMessageTFEX tCFMessageTFEX = (TCFMessageTFEX)message; this.intzaInfoTFEX.Item("ceiling").Text = FormatUtil.PriceFormat(realtimeSeriesInfo.Ceiling.ToString(), realtimeSeriesInfo.NumOfDec, ""); this.intzaInfoTFEX.Item("floor").Text = FormatUtil.PriceFormat(realtimeSeriesInfo.Floor.ToString(), realtimeSeriesInfo.NumOfDec, ""); this.intzaInfoTFEX.Item("psettle").Text = Utilities.PriceFormat(tCFMessageTFEX.PrevFixPrice, realtimeSeriesInfo.NumOfDec); this.intzaInfoTFEX.Item("psettle").FontColor = MyColor.UnChgColor; if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; } } } catch (Exception ex) { this.ShowError("ReceiveTfexMessage", ex); } } } }
public void AddItem(SeriesList.SeriesInformation info) { try { if (!this.items.ContainsKey(info.OrderBookId)) { this.items.Add(info.OrderBookId, info); this.itemsKeySymbol.Add(info.Symbol, info.OrderBookId); } } catch (Exception ex) { throw ex; } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { if (this.FormState != ClientBaseForm.ClientBaseFormState.Closing) { if (!base.IsLoadingData) { try { if (message.MessageType == "TP") { if (realtimeSeriesInfo.Symbol != "") { int num = ApplicationInfo.FavStockList[this._currFavPage].IndexOf(realtimeSeriesInfo.Symbol); if (num > -1 && num < 8) { this._bidControl[num].ReceiveTfexMessage(message, realtimeSeriesInfo); } } } else if (message.MessageType == "LS") { if (realtimeSeriesInfo.Symbol != "") { int num = ApplicationInfo.FavStockList[this._currFavPage].IndexOf(realtimeSeriesInfo.Symbol); if (num > -1 && num < 8) { this._bidControl[num].ReceiveTfexMessage(message, realtimeSeriesInfo); } } } } catch (Exception ex) { this.ShowError("SecurityInfo::RecvMessage", ex); } } } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { if (!this._isLoading) { try { if (message.MessageType == "BC") { BCMessageTFEX bCMessageTFEX = (BCMessageTFEX)message; this.UpdateToGrid(new ucBroadcastMessage.RecordData { messageTime = Utilities.GetShortTime(bCMessageTFEX.MessageTime), messageText = bCMessageTFEX.MessageText, messageType = bCMessageTFEX.MessageType }, Color.White, true); this.intza1.EndUpdate(); if (this.intza1.Rows > 0) { this.intza1.SetFocusItem(0); } } else if (message.MessageType == "#T9I") { OrderTFEXInfoClient orderTFEXInfoClient = (OrderTFEXInfoClient)message; if (ApplicationInfo.CanReceiveMessage(orderTFEXInfoClient.Account)) { string text = string.Empty; Color color = Color.White; string text2 = string.Empty; if (orderTFEXInfoClient.Side == "1") { text2 = "Long"; } else if (orderTFEXInfoClient.Side == "2") { text2 = "Short"; } string originalMessageType = orderTFEXInfoClient.OriginalMessageType; if (originalMessageType != null) { if (!(originalMessageType == "2C")) { if (!(originalMessageType == "2E")) { if (originalMessageType == "2G") { text = string.Concat(new object[] { "Reject ", text2, " #", orderTFEXInfoClient.OrderNumber, " ", orderTFEXInfoClient.Series, " Volume ", FormatUtil.VolumeFormat(orderTFEXInfoClient.Volume, false), " @", Utilities.PriceFormat(orderTFEXInfoClient.Price) }); if (!string.IsNullOrEmpty(orderTFEXInfoClient.RejectDescription)) { text = text + " Reject Reason : " + orderTFEXInfoClient.RejectDescription; } color = Color.Red; } } else { text = string.Concat(new object[] { text, "Matched #", orderTFEXInfoClient.OrderNumber, " ", text2, " ", orderTFEXInfoClient.Series, " @", Utilities.PriceFormat(orderTFEXInfoClient.LastPriceInCase), " Volume ", FormatUtil.VolumeFormat(orderTFEXInfoClient.LastVolumeInCase, true), " Leave ", orderTFEXInfoClient.Volume - orderTFEXInfoClient.MatchedVolume }); if (orderTFEXInfoClient.Side == "1") { color = Color.Cyan; } else if (orderTFEXInfoClient.Side == "2") { color = Color.Magenta; } } } else if (orderTFEXInfoClient.Status == "X") { text = string.Concat(new object[] { "Canceled #", orderTFEXInfoClient.OrderNumber, " ", text2, " ", orderTFEXInfoClient.Series, " Volume ", orderTFEXInfoClient.Volume - orderTFEXInfoClient.MatchedVolume, " @", Utilities.PriceFormat(orderTFEXInfoClient.Price) }); color = Color.Yellow; } } if (text != string.Empty) { this.UpdateToGrid(new ucBroadcastMessage.RecordData { messageType = orderTFEXInfoClient.OriginalMessageType, stockSymbol = string.Empty, messageTime = Utilities.GetShortTime(DateTime.Now.ToString()), messageText = text }, color, true); this.intza1.EndUpdate(); if (this.intza1.Rows > 0) { this.intza1.SetFocusItem(0); } } } } } catch (Exception ex) { this.ShowError("ReceiveMessage", ex); } } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { try { string messageType = message.MessageType; if (messageType != null) { if (messageType == "#T9I") { OrderTFEXInfoClient orderTFEXInfoClient = (OrderTFEXInfoClient)message; if (orderTFEXInfoClient.Account == ApplicationInfo.AccInfo.CurrentAccount) { this.StartTimerLoadCredit(); ApplicationInfo.RemoveOrderNoFromAutoRefreshList_TFEX(orderTFEXInfoClient.OrderNumber.ToString()); } } } } catch (Exception ex) { this.ShowError("SendOrder:ReceiveTFEXMessage", ex); } }
private void UpdateTopPrice_TFEX(SeriesList.SeriesInformation sInfo, string side, string price1, string price2, string price3, string price4, string price5, long volume1, long volume2, long volume3, long volume4, long volume5) { try { Color fontColor = MyColor.UnChgColor; if (side == "B") { if (volume1 != -1L) { fontColor = Utilities.ComparePriceCFColor(price1, sInfo); this.intzaTP1.Records(0).Fields("bidvolume").SetBidOfferVolumeText(volume1.ToString(), price1); this.intzaTP1.Records(0).Fields("bidvolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume1, price1)) { this.intzaTP1.Records(0).Fields("bid").Text = "0.00"; } else { this.intzaTP1.Records(0).Fields("bid").Text = Utilities.PriceFormat(price1, sInfo.NumOfDec); } this.intzaTP1.Records(0).Fields("bid").FontColor = fontColor; } if (volume2 != -1L) { fontColor = Utilities.ComparePriceCFColor(price2, sInfo); this.intzaTP1.Records(1).Fields("bidvolume").SetBidOfferVolumeText(volume2.ToString(), price2); this.intzaTP1.Records(1).Fields("bidvolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume2, price2)) { this.intzaTP1.Records(1).Fields("bid").Text = "0.00"; } else { this.intzaTP1.Records(1).Fields("bid").Text = Utilities.PriceFormat(price2, sInfo.NumOfDec); } this.intzaTP1.Records(1).Fields("bid").FontColor = fontColor; } if (volume3 != -1L) { fontColor = Utilities.ComparePriceCFColor(price3, sInfo); this.intzaTP1.Records(2).Fields("bidvolume").SetBidOfferVolumeText(volume3.ToString(), price3); this.intzaTP1.Records(2).Fields("bidvolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume3, price3)) { this.intzaTP1.Records(2).Fields("bid").Text = "0.00"; } else { this.intzaTP1.Records(2).Fields("bid").Text = Utilities.PriceFormat(price3, sInfo.NumOfDec); } this.intzaTP1.Records(2).Fields("bid").FontColor = fontColor; } if (volume4 != -1L) { fontColor = Utilities.ComparePriceCFColor(price4, sInfo); this.intzaTP1.Records(3).Fields("bidvolume").SetBidOfferVolumeText(volume4.ToString(), price4); this.intzaTP1.Records(3).Fields("bidvolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume4, price4)) { this.intzaTP1.Records(3).Fields("bid").Text = "0.00"; } else { this.intzaTP1.Records(3).Fields("bid").Text = Utilities.PriceFormat(price4, sInfo.NumOfDec); } this.intzaTP1.Records(3).Fields("bid").FontColor = fontColor; } if (volume5 != -1L) { fontColor = Utilities.ComparePriceCFColor(price5, sInfo); this.intzaTP1.Records(4).Fields("bidvolume").SetBidOfferVolumeText(volume5.ToString(), price5); this.intzaTP1.Records(4).Fields("bidvolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume5, price5)) { this.intzaTP1.Records(4).Fields("bid").Text = "0.00"; } else { this.intzaTP1.Records(4).Fields("bid").Text = Utilities.PriceFormat(price5, sInfo.NumOfDec); } this.intzaTP1.Records(4).Fields("bid").FontColor = fontColor; } } else if (side == "A") { if (volume1 != -1L) { fontColor = Utilities.ComparePriceCFColor(price1, sInfo); this.intzaTP1.Records(0).Fields("offervolume").SetBidOfferVolumeText(volume1.ToString(), price1); this.intzaTP1.Records(0).Fields("offervolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume1, price1)) { this.intzaTP1.Records(0).Fields("offer").Text = "0.00"; } else { this.intzaTP1.Records(0).Fields("offer").Text = Utilities.PriceFormat(price1, sInfo.NumOfDec); } this.intzaTP1.Records(0).Fields("offer").FontColor = fontColor; } if (volume2 != -1L) { fontColor = Utilities.ComparePriceCFColor(price2, sInfo); this.intzaTP1.Records(1).Fields("offervolume").SetBidOfferVolumeText(volume2.ToString(), price2); this.intzaTP1.Records(1).Fields("offervolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume2, price2)) { this.intzaTP1.Records(1).Fields("offer").Text = "0.00"; } else { this.intzaTP1.Records(1).Fields("offer").Text = Utilities.PriceFormat(price2, sInfo.NumOfDec); } this.intzaTP1.Records(1).Fields("offer").FontColor = fontColor; } if (volume3 != -1L) { fontColor = Utilities.ComparePriceCFColor(price3, sInfo); this.intzaTP1.Records(2).Fields("offervolume").SetBidOfferVolumeText(volume3.ToString(), price3); this.intzaTP1.Records(2).Fields("offervolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume3, price3)) { this.intzaTP1.Records(2).Fields("offer").Text = "0.00"; } else { this.intzaTP1.Records(2).Fields("offer").Text = Utilities.PriceFormat(price3, sInfo.NumOfDec); } this.intzaTP1.Records(2).Fields("offer").FontColor = fontColor; } if (volume4 != -1L) { fontColor = Utilities.ComparePriceCFColor(price4, sInfo); this.intzaTP1.Records(3).Fields("offervolume").SetBidOfferVolumeText(volume4.ToString(), price4); this.intzaTP1.Records(3).Fields("offervolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume4, price4)) { this.intzaTP1.Records(3).Fields("offer").Text = "0.00"; } else { this.intzaTP1.Records(3).Fields("offer").Text = Utilities.PriceFormat(price4, sInfo.NumOfDec); } this.intzaTP1.Records(3).Fields("offer").FontColor = fontColor; } if (volume5 != -1L) { fontColor = Utilities.ComparePriceCFColor(price5, sInfo); this.intzaTP1.Records(4).Fields("offervolume").SetBidOfferVolumeText(volume5.ToString(), price5); this.intzaTP1.Records(4).Fields("offervolume").FontColor = fontColor; if (Utilities.GetTopPriceZero(volume5, price5)) { this.intzaTP1.Records(4).Fields("offer").Text = "0.00"; } else { this.intzaTP1.Records(4).Fields("offer").Text = Utilities.PriceFormat(price5, sInfo.NumOfDec); } this.intzaTP1.Records(4).Fields("offer").FontColor = fontColor; } } } catch (Exception ex) { this.ShowError("UpdateTopPrice_TFEX", ex); } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { if (!this.IsLoadingData) { try { if (message.MessageType == "TP") { if (realtimeSeriesInfo.Symbol != "") { TPMessageTFEX tPMessageTFEX = (TPMessageTFEX)message; this.UpdateTopPrice_TFEX(realtimeSeriesInfo, tPMessageTFEX.Side, tPMessageTFEX.Price1.ToString(), tPMessageTFEX.Price2.ToString(), tPMessageTFEX.Price3.ToString(), tPMessageTFEX.Price4.ToString(), tPMessageTFEX.Price5.ToString(), (long)tPMessageTFEX.Vol1, (long)tPMessageTFEX.Vol2, (long)tPMessageTFEX.Vol3, (long)tPMessageTFEX.Vol4, (long)tPMessageTFEX.Vol5); this.intzaTP1.EndUpdate(); } } else if (message.MessageType == "LS") { if (realtimeSeriesInfo.Symbol != "") { LSMessageTFEX lSMessageTFEX = (LSMessageTFEX)message; SeriesList.SeriesInformation seriesInformation = ApplicationInfo.SeriesInfo[lSMessageTFEX.Sec]; this.UpdateLastPrice_TFEX(realtimeSeriesInfo, lSMessageTFEX.Price, lSMessageTFEX.High, lSMessageTFEX.Low); this.UpdateLastSaleTicker_TFEX(realtimeSeriesInfo, lSMessageTFEX.Price, lSMessageTFEX.Side, (long)lSMessageTFEX.Vol, lSMessageTFEX.LastTime, -1); this.UpdateAllVolume_TFEX((long)lSMessageTFEX.OpenQty, (long)lSMessageTFEX.LongQty, (long)lSMessageTFEX.ShortQty, (long)realtimeSeriesInfo.OpenInt); this.intzaHeader1.EndUpdate(); this.intzaLS1.EndUpdate(); this.intzaVolumeByBoard1.EndUpdate(); if (ApplicationInfo.IsSupportTPBlinkColor) { int isBlink = 3; if (lSMessageTFEX.Side == "S") { string b = Utilities.PriceFormat(lSMessageTFEX.Price); for (int i = 0; i < 5; i++) { if (this.intzaTP1.Records(i).Fields("bidvolume").TempText == b) { this.intzaTP1.Records(i).Fields("bidvolume").IsBlink = isBlink; break; } } } else if (lSMessageTFEX.Side == "B") { string b = Utilities.PriceFormat(lSMessageTFEX.Price); for (int i = 0; i < 5; i++) { if (this.intzaTP1.Records(i).Fields("offervolume").TempText == b) { this.intzaTP1.Records(i).Fields("offervolume").IsBlink = isBlink; break; } } } this.intzaTP1.EndUpdate(); } else { this.intzaTP1.EndUpdate(); } } } } catch (Exception ex) { this.ShowError("SecurityInfo::RecvMessage", ex); } } }
private void UpdateLastSaleTicker_TFEX(SeriesList.SeriesInformation stockInfo, decimal price, string side, long volume, string lastUpdate, int index) { try { STIControl.SortTableGrid.RecordItem recordItem; if (index == -1) { recordItem = this.intzaLS1.AddRecord(1, true); } else { recordItem = this.intzaLS1.Records(index); } recordItem.Fields("side").Text = side.ToString(); recordItem.Fields("volume").Text = volume.ToString(); recordItem.Fields("price").Text = Utilities.PriceFormat(price, stockInfo.NumOfDec); Color fontColor = Utilities.ComparePriceCFColor(price, stockInfo); recordItem.Fields("price").FontColor = fontColor; if (side == "B") { recordItem.Fields("side").FontColor = MyColor.BuyColor; recordItem.Fields("volume").FontColor = MyColor.BuyColor; } else if (side == "S") { recordItem.Fields("side").FontColor = MyColor.SellColor; recordItem.Fields("volume").FontColor = MyColor.SellColor; } else { recordItem.Fields("side").FontColor = MyColor.OpenColor; recordItem.Fields("volume").FontColor = MyColor.OpenColor; } recordItem.Changed = true; } catch (Exception ex) { throw ex; } }
private void UpdateLastPrice_TFEX(SeriesList.SeriesInformation seriesInfo, decimal lastPrice, decimal high, decimal low) { if (base.InvokeRequired) { base.Invoke(new ucBids.UpdateLastPriceTFEXCallback(this.UpdateLastPrice_TFEX), new object[] { seriesInfo, lastPrice, high, low }); } else { try { if (seriesInfo.PrevFixPrice > 0m && lastPrice > 0m) { Color fontColor = Utilities.ComparePriceCFColor(lastPrice, seriesInfo); decimal num = lastPrice - seriesInfo.PrevFixPrice; decimal num2 = (lastPrice - seriesInfo.PrevFixPrice) / seriesInfo.PrevFixPrice * 100m; this.intzaHeader1.Item("price").Text = lastPrice.ToString(); this.intzaHeader1.Item("price").FontColor = fontColor; this.intzaHeader1.Item("chg").Text = Utilities.PriceFormat(num, true, ""); if (this.intzaHeader1.Item("chg").Text == string.Empty) { this.intzaHeader1.Item("chg").Text = " "; } this.intzaHeader1.Item("chg").FontColor = fontColor; this.intzaHeader1.Item("pchg").Text = Utilities.PriceFormat(num2, true, ""); if (this.intzaHeader1.Item("pchg").Text == string.Empty) { this.intzaHeader1.Item("pchg").Text = " "; } this.intzaHeader1.Item("pchg").FontColor = fontColor; } else { lastPrice = seriesInfo.PrevFixPrice; this.intzaHeader1.Item("price").Text = seriesInfo.PrevFixPrice.ToString(); this.intzaHeader1.Item("price").FontColor = MyColor.UnChgColor; this.intzaHeader1.Item("chg").Text = ""; this.intzaHeader1.Item("pchg").Text = ""; } this.intzaHeader1.Item("high").Text = Utilities.PriceFormat(high, seriesInfo.NumOfDec); this.intzaHeader1.Item("high").FontColor = Utilities.ComparePriceCFColor(high, seriesInfo); this.intzaHeader1.Item("low").Text = Utilities.PriceFormat(low, seriesInfo.NumOfDec); this.intzaHeader1.Item("low").FontColor = Utilities.ComparePriceCFColor(low, seriesInfo); this.intzaHeader1.EndUpdate(); } catch (Exception ex) { this.ShowError("UpdateLastSalePrice", ex); } } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { try { string messageType = message.MessageType; if (messageType != null) { if (messageType == "LS") { if (ApplicationInfo.AlertOpen) { this.AddItem((LSMessageTFEX)message, realtimeSeriesInfo.Symbol, realtimeSeriesInfo.ChangePrice, realtimeSeriesInfo.ChangePricePct, 1L); } } } } catch { } }
private void UpdateLastPriceBBOOption(int rowIndex, string type, decimal lastPrice, decimal chg, SeriesList.SeriesInformation stockInfo) { if (this.intzaOption.InvokeRequired) { this.intzaOption.Invoke(new frmMarketWatch.UpdateLastPriceBBOOptionsCallBack(this.UpdateLastPriceBBOOption), new object[] { rowIndex, type, lastPrice, chg, stockInfo }); } else { try { Color fontColor = MyColor.UnChgColor; if (lastPrice > 0m) { fontColor = Utilities.ComparePriceCFColor(lastPrice, stockInfo); } if (type == "CALL") { this.intzaOption.Records(rowIndex).Fields("calllast").Text = lastPrice; this.intzaOption.Records(rowIndex).Fields("calllast").FontColor = fontColor; this.intzaOption.Records(rowIndex).Fields("callchg").Text = chg; this.intzaOption.Records(rowIndex).Fields("callchg").FontColor = fontColor; } else { this.intzaOption.Records(rowIndex).Fields("putlast").Text = lastPrice; this.intzaOption.Records(rowIndex).Fields("putlast").FontColor = fontColor; this.intzaOption.Records(rowIndex).Fields("putchg").Text = chg; this.intzaOption.Records(rowIndex).Fields("putchg").FontColor = fontColor; } } catch (Exception ex) { this.ShowError("UpdateLastPriceBBOOption", ex); } } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { if (this.FormState == ClientBaseForm.ClientBaseFormState.Showed) { string messageType = message.MessageType; if (messageType != null) { if (messageType == "#T9I") { OrderTFEXInfoClient orderTFEXInfoClient = (OrderTFEXInfoClient)message; if (orderTFEXInfoClient.Account == ApplicationInfo.AccInfo.CurrentAccount) { this.StartReloadTimer(1500, false); } } } } }
private void UpdateLastPriceBBO_TFEX(int rowIndex, decimal lastPrice, decimal prior, long accVolume, decimal accValue, long deals, string comparePrice, SeriesList.SeriesInformation serieInfo, decimal highPrice, decimal lowPrice, long buyVol, long sellVol) { if (this.intzaBBO.InvokeRequired) { this.intzaBBO.Invoke(new frmMarketWatch.UpdateLastPriceBBO_TFEXCallBack(this.UpdateLastPriceBBO_TFEX), new object[] { rowIndex, lastPrice, prior, accVolume, accValue, deals, comparePrice, serieInfo, highPrice, lowPrice, buyVol, sellVol }); } else { try { decimal num = 0m; decimal num2 = 0m; decimal num3 = 0m; if (lastPrice > 0m && prior > 0m) { num = lastPrice - prior; num2 = num / prior * 100m; } if (accVolume > 0L) { num3 = accValue / accVolume; } decimal num4 = 0m; decimal num5 = 0m; if (accVolume > 0L) { num5 = sellVol / accVolume * 100m; num4 = buyVol / accVolume * 100m; } Color fontColor = MyColor.UnChgColor; if (lastPrice > 0m) { fontColor = Utilities.ComparePriceCFColor(lastPrice, serieInfo); } STIControl.ExpandTableGrid.RecordItem recordItem = this.intzaBBO.Records(rowIndex); recordItem.Fields("prior").Text = Utilities.PriceFormat(prior, serieInfo.NumOfDec); recordItem.Fields("last").Text = Utilities.PriceFormat(lastPrice, serieInfo.NumOfDec); recordItem.Fields("chg").Text = num; recordItem.Fields("high").Text = highPrice; recordItem.Fields("low").Text = lowPrice; recordItem.Fields("avg").Text = num3; recordItem.Fields("pchg").Text = num2; recordItem.Fields("buyvolpct").Text = num4; recordItem.Fields("selvolpct").Text = num5; recordItem.Fields("mvol").Text = accVolume; recordItem.Fields("mval").Text = accValue * serieInfo.ContractSize / 1000m; recordItem.Fields("deals").Text = deals; recordItem.Fields("stock").FontColor = fontColor; recordItem.Fields("last").FontColor = fontColor; recordItem.Fields("chg").FontColor = fontColor; recordItem.Fields("pchg").FontColor = fontColor; recordItem.Fields("prior").FontColor = MyColor.UnChgColor; recordItem.Fields("mvol").FontColor = MyColor.UnChgColor; recordItem.Fields("mval").FontColor = MyColor.UnChgColor; recordItem.Fields("deals").FontColor = MyColor.UnChgColor; recordItem.Fields("high").FontColor = Utilities.ComparePriceCFColor(highPrice, serieInfo); recordItem.Fields("low").FontColor = Utilities.ComparePriceCFColor(lowPrice, serieInfo); recordItem.Fields("avg").FontColor = Utilities.ComparePriceCFColor(num3, serieInfo); recordItem.Fields("pchg").FontColor = fontColor; recordItem.Fields("buyvolpct").FontColor = MyColor.BuyColor; recordItem.Fields("selvolpct").FontColor = MyColor.SellColor; } catch (Exception ex) { this.ShowError("UpdateLastPriceBBOTFEX", ex); } } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { if (this.FormState != ClientBaseForm.ClientBaseFormState.Closing) { try { if (!this.IsInfoLoading && !this._currentIsSET) { if (this._seriesInfoTFEX != null && realtimeSeriesInfo != null) { string text = message.MessageType; switch (text) { case "TP": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { TPMessageTFEX tPMessageTFEX = (TPMessageTFEX)message; this.UpdateTopPriceInfo_TFEX(tPMessageTFEX.OrderBookId, tPMessageTFEX.Side, tPMessageTFEX.Price1, tPMessageTFEX.Price2, tPMessageTFEX.Price3, tPMessageTFEX.Price4, tPMessageTFEX.Price5, (long)tPMessageTFEX.Vol1, (long)tPMessageTFEX.Vol2, (long)tPMessageTFEX.Vol3, (long)tPMessageTFEX.Vol4, (long)tPMessageTFEX.Vol5); if (base.IsAllowRender) { this.intzaTP.EndUpdate(); } } break; case "LS": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { LSMessageTFEX lSMessageTFEX = (LSMessageTFEX)message; if (lSMessageTFEX.DealSource == 20) { if (ApplicationInfo.IndexInfoTfex.TXIState != "3C") { this.UpdateOpenOrProjectOpenPriceTFEX(ApplicationInfo.IndexInfoTfex.TXIState, lSMessageTFEX.Price, realtimeSeriesInfo); } else { this.UpdateOpenOrProjectOpenPriceTFEX(ApplicationInfo.IndexInfoTfex.TXMState, lSMessageTFEX.Price, realtimeSeriesInfo); } } this.UpdateLastPrice(lSMessageTFEX.Price, ""); this.UpdateHeaderPrice(lSMessageTFEX.High, lSMessageTFEX.Low); this.UpdateAllVolumeTFEX(lSMessageTFEX.Deals, (long)lSMessageTFEX.AccVolume, lSMessageTFEX.AccValue, (long)lSMessageTFEX.OpenQty, (long)lSMessageTFEX.LongQty, (long)lSMessageTFEX.ShortQty, lSMessageTFEX.OpenValue, lSMessageTFEX.LongValue, lSMessageTFEX.ShortValue, realtimeSeriesInfo.ContractSize, lSMessageTFEX.Basis); if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); this.intzaVolumeByBoard.EndUpdate(); } int num = lSMessageTFEX.Vol; int num2; int.TryParse(num.ToString(), out num2); this.UpdateTickerInfo_TFEX(lSMessageTFEX.Price, lSMessageTFEX.Side, (long)num2, lSMessageTFEX.LastTime, -1); if (base.IsAllowRender) { this.intzaLS.Redraw(); } } break; case "PO": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { POMessageTFEX pOMessageTFEX = (POMessageTFEX)message; if (ApplicationInfo.IndexInfoTfex.TXIState != "3C") { this.UpdateOpenOrProjectOpenPriceTFEX(ApplicationInfo.IndexInfoTfex.TXIState, pOMessageTFEX.Equilibrium_price_I, realtimeSeriesInfo); } else { this.UpdateOpenOrProjectOpenPriceTFEX(ApplicationInfo.IndexInfoTfex.TXMState, pOMessageTFEX.Equilibrium_price_I, realtimeSeriesInfo); } if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; case "SD": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { SDMessageTFEX sDMessageTFEX = (SDMessageTFEX)message; if (sDMessageTFEX.Lastdate.ToString().Length == 8) { this.intzaInfoTFEX.Item("last_date").Text = Utilities.GetDateFormat(sDMessageTFEX.Lastdate.ToString()); } IntzaBaseItem arg_487_0 = this.intzaInfoTFEX.Item("multiplier"); int num = sDMessageTFEX.Price_quot_factor; arg_487_0.Text = num.ToString(); if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; case "CA8": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { CA8MessageTFEX cA8MessageTFEX = (CA8MessageTFEX)message; if (ApplicationInfo.IndexInfoTfex.TXISession == 2) { this.intzaInfoTFEX.Item("settle").Text = Utilities.PriceFormat(cA8MessageTFEX.FixingPrice.ToString(), this._seriesInfoTFEX.NumOfDec); if (realtimeSeriesInfo.MarketCode == 4 || realtimeSeriesInfo.MarketCode == 5) { this.intzaInfoTFEX.Item("psettle").Text = Utilities.PriceFormat(cA8MessageTFEX.FixingPrice, this._seriesInfoTFEX.NumOfDec); } } else { this.intzaInfoTFEX.Item("psettle").Text = Utilities.PriceFormat(cA8MessageTFEX.FixingPrice, this._seriesInfoTFEX.NumOfDec); } if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; case "BU10": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { BU10MessageTFEX bU10MessageTFEX = (BU10MessageTFEX)message; this.intzaInfoTFEX.Item("tickSize").Text = Utilities.PriceFormat(bU10MessageTFEX.StepSize, this._seriesInfoTFEX.NumOfDec); if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; case "TCF": if (realtimeSeriesInfo.Symbol == this._seriesInfoTFEX.Symbol) { TCFMessageTFEX tCFMessageTFEX = (TCFMessageTFEX)message; this.intzaInfoTFEX.Item("ceiling").Text = FormatUtil.PriceFormat(realtimeSeriesInfo.Ceiling.ToString(), realtimeSeriesInfo.NumOfDec, ""); this.intzaInfoTFEX.Item("floor").Text = FormatUtil.PriceFormat(realtimeSeriesInfo.Floor.ToString(), realtimeSeriesInfo.NumOfDec, ""); this.intzaInfoTFEX.Item("psettle").Text = Utilities.PriceFormat(tCFMessageTFEX.PrevFixPrice, realtimeSeriesInfo.NumOfDec); if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } break; } } else if (message.MessageType == "IU") { IUMessageTFEX iUMessageTFEX = (IUMessageTFEX)message; if (this._seriesInfoTFEX != null && this._seriesInfoTFEX.UnderOrderBookId == iUMessageTFEX.OrderBookId) { if (this._seriesInfoTFEX.Group == 1 && this._seriesInfoTFEX.LastSalePrice != 0m) { this.intzaInfoTFEX.Item("basis").Text = (iUMessageTFEX.LastIndx - this._seriesInfoTFEX.StrikPrice).ToString(); this.intzaInfoTFEX.Item("basis").FontColor = Utilities.ComparePriceColor(iUMessageTFEX.LastIndx - this._seriesInfoTFEX.StrikPrice, 0m); } else if (this._seriesInfoTFEX.Group == 2 && this._seriesInfoTFEX.LastSalePrice != 0m) { this.intzaInfoTFEX.Item("basis").Text = (this._seriesInfoTFEX.StrikPrice - iUMessageTFEX.LastIndx).ToString(); this.intzaInfoTFEX.Item("basis").FontColor = Utilities.ComparePriceColor(this._seriesInfoTFEX.StrikPrice - iUMessageTFEX.LastIndx, 0m); } else if (this._seriesInfoTFEX.Group != 1 && this._seriesInfoTFEX.Group != 2 && this._seriesInfoTFEX.LastSalePrice != 0m && iUMessageTFEX.LastIndx != 0m) { this.intzaInfoTFEX.Item("basis").Text = (this._seriesInfoTFEX.LastSalePrice - iUMessageTFEX.LastIndx).ToString(); this.intzaInfoTFEX.Item("basis").FontColor = Utilities.ComparePriceColor(this._seriesInfoTFEX.LastSalePrice - iUMessageTFEX.LastIndx, 0m); } this.intzaInfoTFEX.Item("lastIndex").Text = iUMessageTFEX.LastIndx.ToString(); this.intzaInfoTFEX.Item("lastIndex").FontColor = MyColor.UnChgColor; } if (base.IsAllowRender) { this.intzaInfoTFEX.EndUpdate(); } } } if (!this.IsBBOLoading) { string text = this._mainGroupType; if (text != null) { if (!(text == "Futures") && !(text == "Option")) { if (text == "Favorites") { this.ReceiveMessageBBO_TFEX(message, realtimeSeriesInfo); } } else if (this._subGroupType == "SET50Option") { this.ReceiveMessageBBO_Options(message, realtimeSeriesInfo); } else { this.ReceiveMessageBBO_TFEX(message, realtimeSeriesInfo); } } } } catch (Exception ex) { this.ShowError("ReceiveTfexMessage", ex); } } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { this.ViewOrderBox.ReceiveTfexMessage(message, realtimeSeriesInfo); }
private void ReceiveMessageBBO_Options(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { try { string messageType = message.MessageType; if (messageType != null) { if (!(messageType == "TP")) { if (messageType == "LS") { if (realtimeSeriesInfo != null) { int num = this.intzaOption.FindIndex("strike", realtimeSeriesInfo.StrikPrice.ToString().Replace(".000000", "")); if (num > -1) { LSMessageTFEX lSMessageTFEX = (LSMessageTFEX)message; if (realtimeSeriesInfo.Group == 1 && lSMessageTFEX.Sec == this.intzaOption.Records(num).Fields("sSeriesOC").Text.ToString()) { this.UpdateLastPriceBBOOption(num, "CALL", lSMessageTFEX.Price, lSMessageTFEX.Price - realtimeSeriesInfo.PrevFixPrice, realtimeSeriesInfo); if (base.IsAllowRender) { this.intzaOption.EndUpdate(num); } } else if (realtimeSeriesInfo.Group == 2 && lSMessageTFEX.Sec == this.intzaOption.Records(num).Fields("sSeriesOP").Text.ToString()) { this.UpdateLastPriceBBOOption(num, "PUT", lSMessageTFEX.Price, lSMessageTFEX.Price - realtimeSeriesInfo.PrevFixPrice, realtimeSeriesInfo); if (base.IsAllowRender) { this.intzaOption.EndUpdate(num); } } } } } } else if (realtimeSeriesInfo != null) { string keyValue = Utilities.PriceFormat(realtimeSeriesInfo.StrikPrice); int num = this.intzaOption.FindIndex("strike", keyValue); if (num > -1) { TPMessageTFEX tPMessageTFEX = (TPMessageTFEX)message; if (realtimeSeriesInfo.Group == 1 && tPMessageTFEX.OrderBookId.ToString() == this.intzaOption.Records(num).Fields("sSeriesOC").Text.ToString()) { this.UpdateBBOTopPrice_Options(num, "CALL", tPMessageTFEX.Side, tPMessageTFEX.Vol1.ToString(), tPMessageTFEX.Price1.ToString(), realtimeSeriesInfo); if (base.IsAllowRender) { this.intzaOption.EndUpdate(num); } } else if (realtimeSeriesInfo.Group == 2 && tPMessageTFEX.OrderBookId.ToString() == this.intzaOption.Records(num).Fields("sSeriesOP").Text.ToString()) { this.UpdateBBOTopPrice_Options(num, "PUT", tPMessageTFEX.Side, tPMessageTFEX.Vol1.ToString(), tPMessageTFEX.Price1.ToString(), realtimeSeriesInfo); if (base.IsAllowRender) { this.intzaOption.EndUpdate(num); } } } } } } catch (Exception ex) { this.ShowError("SecurityInfo::RecvMessage", ex); } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { if (!this.isLoadingData) { try { if (message.MessageType == "#T9I") { this.ReceiveOrderInfoTFEX(message); } } catch (Exception ex) { this.ShowError("ReceiveMessage", ex); } } }
private void ReceiveMessageBBO_TFEX(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { try { if (realtimeSeriesInfo != null) { string messageType = message.MessageType; if (messageType != null) { if (!(messageType == "TP")) { if (!(messageType == "LS")) { if (!(messageType == "CA8")) { if (messageType == "TCF") { if (realtimeSeriesInfo.Symbol != "") { int num = this.intzaBBO.FindIndex("stock", realtimeSeriesInfo.Symbol); if (num > -1) { TCFMessageTFEX tCFMessageTFEX = (TCFMessageTFEX)message; STIControl.ExpandTableGrid.RecordItem recordItem = this.intzaBBO.Records(num); recordItem.Fields("prior").Text = Utilities.PriceFormat(tCFMessageTFEX.PrevFixPrice, realtimeSeriesInfo.NumOfDec); if (base.IsAllowRender) { this.intzaBBO.EndUpdate(num); } } } } } else if (realtimeSeriesInfo.Symbol != "") { int num = this.intzaBBO.FindIndex("stock", realtimeSeriesInfo.Symbol); if (num > -1) { CA8MessageTFEX cA8MessageTFEX = (CA8MessageTFEX)message; STIControl.ExpandTableGrid.RecordItem recordItem = this.intzaBBO.Records(num); recordItem.Fields("prior").Text = Utilities.PriceFormat(cA8MessageTFEX.FixingPrice, realtimeSeriesInfo.NumOfDec); if (base.IsAllowRender) { this.intzaBBO.EndUpdate(num); } } } } else if (realtimeSeriesInfo.Symbol != "") { int num = this.intzaBBO.FindIndex("stock", realtimeSeriesInfo.Symbol); if (num > -1) { LSMessageTFEX lSMessageTFEX = (LSMessageTFEX)message; this.UpdateLastPriceBBO_TFEX(num, lSMessageTFEX.Price, realtimeSeriesInfo.PrevFixPrice, (long)lSMessageTFEX.AccVolume, lSMessageTFEX.AccValue, (long)lSMessageTFEX.Deals, "", realtimeSeriesInfo, lSMessageTFEX.High, lSMessageTFEX.Low, (long)lSMessageTFEX.LongQty, (long)lSMessageTFEX.ShortQty); this.ShowUnderLineBBOTFEX(num, lSMessageTFEX.Price, realtimeSeriesInfo.BidPrice1.ToString(), realtimeSeriesInfo.OfferPrice1.ToString()); if (base.IsAllowRender) { this.intzaBBO.EndUpdate(num); } } } } else if (realtimeSeriesInfo.Symbol != string.Empty) { int num = this.intzaBBO.FindIndex("stock", realtimeSeriesInfo.Symbol); if (num > -1) { TPMessageTFEX tPMessageTFEX = (TPMessageTFEX)message; if (tPMessageTFEX.Side == "B") { realtimeSeriesInfo.BidVol1 = (long)tPMessageTFEX.Vol1; realtimeSeriesInfo.BidVol2 = (long)tPMessageTFEX.Vol2; realtimeSeriesInfo.BidVol3 = (long)tPMessageTFEX.Vol3; realtimeSeriesInfo.BidVol4 = (long)tPMessageTFEX.Vol4; realtimeSeriesInfo.BidVol5 = (long)tPMessageTFEX.Vol5; } else if (tPMessageTFEX.Side == "A") { realtimeSeriesInfo.OffVol1 = (long)tPMessageTFEX.Vol1; realtimeSeriesInfo.OffVol2 = (long)tPMessageTFEX.Vol2; realtimeSeriesInfo.OffVol3 = (long)tPMessageTFEX.Vol3; realtimeSeriesInfo.OffVol4 = (long)tPMessageTFEX.Vol4; realtimeSeriesInfo.OffVol5 = (long)tPMessageTFEX.Vol5; } this.UpdateBBOTopPrice_TFEX(num, tPMessageTFEX.Side, tPMessageTFEX.Price1.ToString(), (long)tPMessageTFEX.Vol1, realtimeSeriesInfo.PrevFixPrice, realtimeSeriesInfo.LastSalePrice, realtimeSeriesInfo); this.UpdateBidOfferVolPct(num, realtimeSeriesInfo.SumBidVol, realtimeSeriesInfo.SumOffVol); if (this.intzaBBO.Records(num).Rows > 1) { this.UpdateBBOBidsTFEX(this.intzaBBO.Records(num), realtimeSeriesInfo, tPMessageTFEX.Side, tPMessageTFEX.Price2.ToString(), (long)tPMessageTFEX.Vol2, tPMessageTFEX.Price3.ToString(), (long)tPMessageTFEX.Vol3, tPMessageTFEX.Price4.ToString(), (long)tPMessageTFEX.Vol4, tPMessageTFEX.Price5.ToString(), (long)tPMessageTFEX.Vol5); } if (base.IsAllowRender) { this.intzaBBO.EndUpdate(num); } } } } } } catch (Exception ex) { this.ShowError("SecurityInfo::RecvMessage", ex); } }
public void ReceiveTfexMessage(IBroadcastMessage message, SeriesList.SeriesInformation realtimeSeriesInfo) { }
private void UpdateBBOBidsTFEX(STIControl.ExpandTableGrid.RecordItem rec, SeriesList.SeriesInformation sf, string side, string price2, long volume2, string price3, long volume3, string price4, long volume4, string price5, long volume5) { try { Color fontColor = MyColor.UnChgColor; if (side == "B") { if (volume2 != -1L) { fontColor = Utilities.ComparePriceCFColor(price2, sf); rec.SubRecord[0].Fields("bidvol").Text = volume2; rec.SubRecord[0].Fields("bidvol").FontColor = fontColor; rec.SubRecord[0].Fields("bid").Text = Utilities.BidOfferPriceFormat(price2, volume2); rec.SubRecord[0].Fields("bid").FontColor = fontColor; } if (volume3 != -1L) { fontColor = Utilities.ComparePriceCFColor(price3, sf); rec.SubRecord[1].Fields("bidvol").Text = volume3; rec.SubRecord[1].Fields("bidvol").FontColor = fontColor; rec.SubRecord[1].Fields("bid").Text = Utilities.BidOfferPriceFormat(price3, volume3); rec.SubRecord[1].Fields("bid").FontColor = fontColor; } if (rec.Rows == 5) { if (volume4 != -1L) { fontColor = Utilities.ComparePriceCFColor(price4, sf); rec.SubRecord[2].Fields("bidvol").Text = volume4; rec.SubRecord[2].Fields("bidvol").FontColor = fontColor; rec.SubRecord[2].Fields("bid").Text = Utilities.BidOfferPriceFormat(price4, volume4); rec.SubRecord[2].Fields("bid").FontColor = fontColor; } if (volume5 != -1L) { fontColor = Utilities.ComparePriceCFColor(price5, sf); rec.SubRecord[3].Fields("bidvol").Text = volume5; rec.SubRecord[3].Fields("bidvol").FontColor = fontColor; rec.SubRecord[3].Fields("bid").Text = Utilities.BidOfferPriceFormat(price5, volume5); rec.SubRecord[3].Fields("bid").FontColor = fontColor; } } } else if (side == "A") { if (volume2 != -1L) { fontColor = Utilities.ComparePriceCFColor(price2, sf); rec.SubRecord[0].Fields("offvol").Text = volume2; rec.SubRecord[0].Fields("offvol").FontColor = fontColor; rec.SubRecord[0].Fields("offer").Text = Utilities.BidOfferPriceFormat(price2, volume2); rec.SubRecord[0].Fields("offer").FontColor = fontColor; } if (volume3 != -1L) { fontColor = Utilities.ComparePriceCFColor(price3, sf); rec.SubRecord[1].Fields("offvol").Text = volume3; rec.SubRecord[1].Fields("offvol").FontColor = fontColor; rec.SubRecord[1].Fields("offer").Text = Utilities.BidOfferPriceFormat(price3, volume3); rec.SubRecord[1].Fields("offer").FontColor = fontColor; } if (rec.Rows == 5) { if (volume4 != -1L) { fontColor = Utilities.ComparePriceCFColor(price4, sf); rec.SubRecord[2].Fields("offvol").Text = volume4; rec.SubRecord[2].Fields("offvol").FontColor = fontColor; rec.SubRecord[2].Fields("offer").Text = Utilities.BidOfferPriceFormat(price4, volume4); rec.SubRecord[2].Fields("offer").FontColor = fontColor; } if (volume5 != -1L) { fontColor = Utilities.ComparePriceCFColor(price5, sf); rec.SubRecord[3].Fields("offvol").Text = volume5; rec.SubRecord[3].Fields("offvol").FontColor = fontColor; rec.SubRecord[3].Fields("offer").Text = Utilities.BidOfferPriceFormat(price5, volume5); rec.SubRecord[3].Fields("offer").FontColor = fontColor; } } } } catch (Exception ex) { this.ShowError("UpdateTopPrice", ex); } }
private void UpdateTickerTFEX(LSMessageTFEX msg, SeriesList.SeriesInformation realtimeSeriesInfo) { if (this.intzaTickerTFEX.InvokeRequired) { this.intzaTickerTFEX.Invoke(new ucTickerSlide.UpdateLastSaleTickerTFEXCallBack(this.UpdateTickerTFEX), new object[] { msg, realtimeSeriesInfo }); } else { try { if (!string.IsNullOrEmpty(realtimeSeriesInfo.Symbol)) { int num = this.intzaTickerTFEX.FocusItemIndex + 1; num++; if (num > this.intzaTickerTFEX.Rows) { num = 1; } if (num + 1 <= this.intzaTickerTFEX.Rows) { this.intzaTickerTFEX.ClearAllTextByRow(num); this.intzaTickerTFEX.EndUpdate(num); } STIControl.SortTableGrid.RecordItem recordItem = this.intzaTickerTFEX.Records(num - 1); decimal num2 = 0m; decimal num3 = 0m; if (realtimeSeriesInfo.PrevFixPrice > 0m) { num2 = msg.Price - realtimeSeriesInfo.PrevFixPrice; num3 = num2 / realtimeSeriesInfo.PrevFixPrice; } recordItem.Fields("stock").Text = realtimeSeriesInfo.Symbol; recordItem.Fields("side").Text = msg.Side; recordItem.Fields("volume").Text = msg.Vol; recordItem.Fields("price").Text = Utilities.PriceFormat(msg.Price, realtimeSeriesInfo.NumOfDec); recordItem.Fields("change").Text = num2; recordItem.Fields("pchg").Text = num3; Color fontColor = Utilities.ComparePriceCFColor(msg.Price, realtimeSeriesInfo); Color fontColor2 = Color.Yellow; if (msg.Side.ToString() == "B") { fontColor2 = MyColor.BuyColor; } else if (msg.Side.ToString() == "S") { fontColor2 = MyColor.SellColor; } recordItem.Fields("stock").FontColor = fontColor; recordItem.Fields("side").FontColor = fontColor2; recordItem.Fields("volume").FontColor = fontColor2; recordItem.Fields("price").FontColor = fontColor; recordItem.Fields("change").FontColor = fontColor; recordItem.Fields("pchg").FontColor = fontColor; this.intzaTickerTFEX.SetFocusItem(num - 1); } } catch (Exception ex) { this.ShowError("UpdateLastSaleTicker", ex); } } }
private void UpdateBBOTopPrice_Options(int rowIndex, string type, string side, string volume, string price, SeriesList.SeriesInformation seriesInfoForOptionCrtl) { if (this.intzaOption.InvokeRequired) { frmMarketWatch.UpdateBBOTopPriceOptionsCallBack method = new frmMarketWatch.UpdateBBOTopPriceOptionsCallBack(this.UpdateBBOTopPrice_Options); this.intzaOption.Invoke(method, new object[] { rowIndex, type, side, volume, price, seriesInfoForOptionCrtl }); } else { try { if (rowIndex > -1) { Color fontColor = MyColor.UnChgColor; if (volume != "-1") { if (type == "CALL") { this.intzaOption.Records(rowIndex).Fields("sSeriesOC").Text = seriesInfoForOptionCrtl.Symbol; if (side == "B") { fontColor = Utilities.ComparePriceCFColor(price, seriesInfoForOptionCrtl); this.intzaOption.Records(rowIndex).Fields("callbid").Text = Utilities.PriceFormat(price); this.intzaOption.Records(rowIndex).Fields("callbid").FontColor = fontColor; this.intzaOption.Records(rowIndex).Fields("callbidvol").Text = volume; this.intzaOption.Records(rowIndex).Fields("callbidvol").FontColor = fontColor; } else { fontColor = Utilities.ComparePriceCFColor(price, seriesInfoForOptionCrtl); this.intzaOption.Records(rowIndex).Fields("calloffer").Text = Utilities.PriceFormat(price); this.intzaOption.Records(rowIndex).Fields("calloffer").FontColor = fontColor; this.intzaOption.Records(rowIndex).Fields("calloffvol").Text = volume; this.intzaOption.Records(rowIndex).Fields("calloffvol").FontColor = fontColor; } } else { this.intzaOption.Records(rowIndex).Fields("sSeriesOP").Text = seriesInfoForOptionCrtl.Symbol; if (side == "B") { fontColor = Utilities.ComparePriceCFColor(price, seriesInfoForOptionCrtl); this.intzaOption.Records(rowIndex).Fields("putbid").Text = Utilities.PriceFormat(price); this.intzaOption.Records(rowIndex).Fields("putbid").FontColor = fontColor; this.intzaOption.Records(rowIndex).Fields("putbidvol").Text = volume; this.intzaOption.Records(rowIndex).Fields("putbidvol").FontColor = fontColor; } else { fontColor = Utilities.ComparePriceCFColor(price, seriesInfoForOptionCrtl); this.intzaOption.Records(rowIndex).Fields("putoffer").Text = Utilities.PriceFormat(price); this.intzaOption.Records(rowIndex).Fields("putoffer").FontColor = fontColor; this.intzaOption.Records(rowIndex).Fields("putoffvol").Text = volume; this.intzaOption.Records(rowIndex).Fields("putoffvol").FontColor = fontColor; } } } } this.intzaOption.Redraw(); } catch (Exception ex) { this.ShowError("UpdateTopPriceBBO_Options", ex); } } }
private void MainUpdateLastSalePrice_TFEX(decimal lastPrice, decimal high, decimal low, decimal accValue, long accVolume, SeriesList.SeriesInformation sf_TFEX) { try { decimal num = 0m; decimal num2 = 0m; Color fontColor = MyColor.UnChgColor; if (accVolume > 0L) { decimal num3 = Math.Round(accValue / accVolume, 2); this.intzaInfo.Item("tbAverage").Text = Utilities.PriceFormat(num3, sf_TFEX.NumOfDec); this.intzaInfo.Item("tbAverage").FontColor = Utilities.ComparePriceCFColor(num3, sf_TFEX); } if (sf_TFEX.PrevFixPrice > 0m && lastPrice > 0m) { num = lastPrice - sf_TFEX.PrevFixPrice; num2 = (lastPrice - sf_TFEX.PrevFixPrice) / sf_TFEX.PrevFixPrice * 100m; fontColor = Utilities.ComparePriceColor(num, 0m); } this.intzaInfo.Item("tbChange").Text = Utilities.PriceFormat(num, true, sf_TFEX.NumOfDec); this.intzaInfo.Item("tbChangePct").Text = Utilities.PriceFormat(num2, true, "%"); this.intzaInfo.Item("tbChange").FontColor = fontColor; this.intzaInfo.Item("tbChangePct").FontColor = fontColor; this.intzaInfo.Item("tbHigh").Text = Utilities.PriceFormat(high, sf_TFEX.NumOfDec); this.intzaInfo.Item("tbLow").Text = Utilities.PriceFormat(low, sf_TFEX.NumOfDec); this.intzaInfo.Item("tbHigh").FontColor = Utilities.ComparePriceCFColor(high, sf_TFEX); this.intzaInfo.Item("tbLow").FontColor = Utilities.ComparePriceCFColor(low, sf_TFEX); } catch (Exception ex) { this.ShowError("MainUpdateLastSalePrice_TFEX", ex); } }
private void UpdateBBOTopPrice_TFEX(int rowIndex, string side, string price, long volume, decimal prior, decimal lastSalePrice, SeriesList.SeriesInformation serieInfo) { if (this.intzaBBO.InvokeRequired) { this.intzaBBO.Invoke(new frmMarketWatch.UpdateBBOTopPriceTFEXCallBack(this.UpdateBBOTopPrice_TFEX), new object[] { rowIndex, side, price, volume, prior, lastSalePrice, serieInfo }); } else { try { if (rowIndex > -1) { Color fontColor = MyColor.UnChgColor; if (side == "B") { if (volume != -1L) { if (Utilities.GetTopPriceZero(volume, price)) { this.intzaBBO.Records(rowIndex).Fields("bid").Text = "0.00"; } else { this.intzaBBO.Records(rowIndex).Fields("bid").Text = Utilities.PriceFormat(price, serieInfo.NumOfDec); } this.intzaBBO.Records(rowIndex).Fields("bidvol").Text = volume; if (Utilities.PriceFormat(lastSalePrice, serieInfo.NumOfDec) == Utilities.PriceFormat(price, serieInfo.NumOfDec)) { if (ApplicationInfo.IndexInfoTfex.TXIState == "7" || ApplicationInfo.IndexInfoTfex.TXIState == "9") { this.intzaBBO.Records(rowIndex).Fields("bid").FontStyle = FontStyle.Underline; } else { this.intzaBBO.Records(rowIndex).Fields("bid").FontStyle = FontStyle.Underline; this.intzaBBO.Records(rowIndex).Fields("offer").FontStyle = FontStyle.Regular; } } else { this.intzaBBO.Records(rowIndex).Fields("bid").FontStyle = FontStyle.Regular; } fontColor = Utilities.ComparePriceCFColor(price, serieInfo); this.intzaBBO.Records(rowIndex).Fields("bid").FontColor = fontColor; this.intzaBBO.Records(rowIndex).Fields("bidvol").FontColor = fontColor; } } else if (side == "A") { if (volume != -1L) { if (Utilities.GetTopPriceZero(volume, price)) { this.intzaBBO.Records(rowIndex).Fields("offer").Text = "0.00"; } else { this.intzaBBO.Records(rowIndex).Fields("offer").Text = Utilities.PriceFormat(price, serieInfo.NumOfDec); } this.intzaBBO.Records(rowIndex).Fields("offvol").Text = volume; if (Utilities.PriceFormat(lastSalePrice, serieInfo.NumOfDec) == Utilities.PriceFormat(price, serieInfo.NumOfDec)) { if (ApplicationInfo.IndexInfoTfex.TXIState == "7" || ApplicationInfo.IndexInfoTfex.TXIState == "9") { this.intzaBBO.Records(rowIndex).Fields("offer").FontStyle = FontStyle.Underline; } else { this.intzaBBO.Records(rowIndex).Fields("bid").FontStyle = FontStyle.Regular; this.intzaBBO.Records(rowIndex).Fields("offer").FontStyle = FontStyle.Underline; } } else { this.intzaBBO.Records(rowIndex).Fields("offer").FontStyle = FontStyle.Regular; } fontColor = Utilities.ComparePriceCFColor(price, serieInfo); this.intzaBBO.Records(rowIndex).Fields("offer").FontColor = fontColor; this.intzaBBO.Records(rowIndex).Fields("offvol").FontColor = fontColor; } } } } catch (Exception ex) { this.ShowError("UpdateTopPriceBBOTFEX", ex); } } }
private void UpdateOpenOrProjectOpenPriceTFEX(string state, decimal price, SeriesList.SeriesInformation sf) { try { if (state == "7") { if (price != 0m) { this.intzaInfoTFEX.Item("open1").Text = Utilities.PriceFormat(price, sf.NumOfDec); this.intzaInfoTFEX.Item("open1").BackColor = Utilities.ComparePriceCFColor(price, sf); this.intzaInfoTFEX.Item("open1").FontColor = Color.Black; } else { this.intzaInfoTFEX.Item("open1").BackColor = this.intzaInfoTFEX.BackColor; } } else if (state == "9") { if (price != 0m) { this.intzaInfoTFEX.Item("open2").Text = Utilities.PriceFormat(price, sf.NumOfDec); this.intzaInfoTFEX.Item("open2").BackColor = Utilities.ComparePriceCFColor(price, sf); this.intzaInfoTFEX.Item("open2").FontColor = Color.Black; } else { this.intzaInfoTFEX.Item("open2").BackColor = this.intzaInfoTFEX.BackColor; } } else if (state == "11") { if (price != 0m) { this.intzaInfoTFEX.Item("open1").Text = Utilities.PriceFormat(price, sf.NumOfDec); this.intzaInfoTFEX.Item("open1").BackColor = this.intzaInfoTFEX.BackColor; this.intzaInfoTFEX.Item("open1").FontColor = Utilities.ComparePriceCFColor(price, sf); } } else if (state == "10") { if (price != 0m) { this.intzaInfoTFEX.Item("open2").Text = Utilities.PriceFormat(price, sf.NumOfDec); this.intzaInfoTFEX.Item("open2").BackColor = this.intzaInfoTFEX.BackColor; this.intzaInfoTFEX.Item("open2").FontColor = Utilities.ComparePriceCFColor(price, sf); } } else if (state == "23") { if (price != 0m) { this.intzaInfoTFEX.Item("open3").Text = Utilities.PriceFormat(price, sf.NumOfDec); this.intzaInfoTFEX.Item("open3").BackColor = Utilities.ComparePriceCFColor(price, sf); this.intzaInfoTFEX.Item("open3").FontColor = Color.Black; } else { this.intzaInfoTFEX.Item("open3").BackColor = this.intzaInfoTFEX.BackColor; } } else if (state == "24") { if (price != 0m) { this.intzaInfoTFEX.Item("open3").Text = Utilities.PriceFormat(price, sf.NumOfDec); this.intzaInfoTFEX.Item("open3").BackColor = this.intzaInfoTFEX.BackColor; this.intzaInfoTFEX.Item("open3").FontColor = Utilities.ComparePriceCFColor(price, sf); } } } catch (Exception ex) { this.ShowError("UpdateOpenOrProjectOpenPriceTFEX", ex); } }
public static Color ComparePriceCFColor(object price, SeriesList.SeriesInformation seriesInfo) { decimal price2; decimal.TryParse(price.ToString(), out price2); return Utilities.ComparePriceCFColor(price2, seriesInfo); }