public void sendUpdateToContractSummaryLiveData(OptionRealtimeMonitor optionRealtimeMonitor) { DataGridView gridViewContractSummary = optionRealtimeMonitor.getGridViewContractSummary; try { for (int contractSummaryExpressionCnt = 0; contractSummaryExpressionCnt < optionSpreadManager.contractSummaryExpressionListIdx.Count(); contractSummaryExpressionCnt++) { CQGLibrary.CQGInstrument cqgInstrument = optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]] .cqgInstrument; if (cqgInstrument != null) { statusAndConnectedUpdates.checkUpdateStatus(gridViewContractSummary, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.TIME, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]]); //if (optionSpreadManager.realtimeMonitorSettings.eodAnalysis) if (optionSpreadManager .optionSpreadExpressionList [optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]] .instrument.eodAnalysisAtInstrument) { //gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.TIME].DefaultCellStyle.Font = new Font("Tahoma", 6); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.TIME, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]] .lastTimeUpdated.ToString("yyyy-MM-dd HH:mm", DateTimeFormatInfo.InvariantInfo), false, 0); } else { //gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.TIME].DefaultCellStyle.Font = new Font("Tahoma", 8); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.TIME, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]] .lastTimeUpdated.ToString("HH:mm", DateTimeFormatInfo.InvariantInfo), false, 0); } // gridViewContractSummary // .Rows[heldLotsExpressionCnt].Cells[(int)CONTRACTSUMMARY_DATA_COLUMNS.TOTAL_QTY].Value = // optionSpreadExpressionList[i].numberOfLotsHeldForContractSummary // * optionSpreadManager.portfolioGroupTotalMultiple; fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.ASK, cqgInstrument.ToDisplayPrice( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].ask), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].ask); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.BID, cqgInstrument.ToDisplayPrice( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].bid), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].bid); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.LAST, cqgInstrument.ToDisplayPrice( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].trade), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].trade); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.DFLT_PRICE, cqgInstrument.ToDisplayPrice( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].defaultPrice), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].defaultPrice); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.STTLE, cqgInstrument.ToDisplayPrice( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].settlement), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].settlement); if (optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]] .settlementDateTime.Date.CompareTo(DateTime.Now.Date) >= 0) { fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.SETL_TIME, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].settlementDateTime .ToString("yyyy-MM-dd HH:mm", DateTimeFormatInfo.InvariantInfo), true, 1); } else { fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.SETL_TIME, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].settlementDateTime .ToString("yyyy-MM-dd HH:mm", DateTimeFormatInfo.InvariantInfo), true, -1); } fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.YEST_STTLE, cqgInstrument.ToDisplayPrice( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].yesterdaySettlement), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].yesterdaySettlement); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.IMPL_VOL, cqgInstrument.ToDisplayPrice( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].impliedVol), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].impliedVol); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.THEOR_PRICE, cqgInstrument.ToDisplayPrice( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].theoreticalOptionPrice), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].theoreticalOptionPrice); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.SPAN_IMPL_VOL, Math.Round( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].impliedVolFromSpan, 2).ToString(), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].impliedVolFromSpan); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.SETL_IMPL_VOL, Math.Round( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].settlementImpliedVol, 2).ToString(), false, optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].settlementImpliedVol); int lots = optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]] .numberOfLotsHeldForContractSummary * optionSpreadManager.portfolioGroupTotalMultiple; fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.TOTAL_QTY, lots.ToString(), false, lots); double delta = Math.Round( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].deltaChgForContractSummary * optionSpreadManager.portfolioGroupTotalMultiple, 2); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.DELTA, delta.ToString(), true, delta); double plChg = Math.Round( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].plChgForContractSummary * optionSpreadManager.portfolioGroupTotalMultiple, 2); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.PL_DAY_CHG, plChg.ToString(), true, plChg); int numberOfOrderContracts = optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].numberOfOrderContracts * optionSpreadManager.portfolioGroupTotalMultiple; fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.ORDER_QTY, numberOfOrderContracts.ToString(), false, numberOfOrderContracts); double plChgOrders = Math.Round( optionSpreadManager.optionSpreadExpressionList[optionSpreadManager.contractSummaryExpressionListIdx[contractSummaryExpressionCnt]].plChgOrders * optionSpreadManager.portfolioGroupTotalMultiple, 2); fillContractSummaryLiveData(optionRealtimeMonitor, contractSummaryExpressionCnt, (int)CONTRACTSUMMARY_DATA_COLUMNS.ORDER_PL_CHG, plChgOrders.ToString(), true, plChgOrders); } } } catch (Exception ex) { TSErrorCatch.errorCatchOut(Convert.ToString(this), ex); } }
public void sendUpdateToADMPositionsGrid(OptionRealtimeMonitor optionRealtimeMonitor) //*eQuoteType cqgQuoteType,*/ int spreadExpressionIdx /*int colIdx*/) { //CQGQuote quote = optionSpreadExpressionList[spreadExpressionIdx].cqgInstrument.Quotes[cqgQuoteType]; DataGridView gridLiveFCMData = optionRealtimeMonitor.getGridLiveFCMData; try { List <ADMPositionImportWeb> admPositionImportWeb = optionSpreadManager.admPositionImportWeb; //int optionSpreadCounter = 0; //List<LiveADMStrategyInfo> liveADMStrategyInfoList = optionSpreadManager.liveADMStrategyInfoList; for (int admWebPositionCounter = 0; admWebPositionCounter < admPositionImportWeb.Count; admWebPositionCounter++) { // int totalLegs = liveADMStrategyInfoList[optionSpreadCounter].admLegInfo.Count; // //if (optionSpreadExpressionList[spreadExpressionIdx].cqgInstrument != null) // for (int legCounter = 0; legCounter < totalLegs; legCounter++) // { if (admPositionImportWeb[admWebPositionCounter].contractData.optionSpreadExpression != null) { CQGLibrary.CQGInstrument cqgInstrument = admPositionImportWeb[admWebPositionCounter].contractData.optionSpreadExpression.cqgInstrument; if (cqgInstrument != null) // && CQG. cqgInstrument) { OptionSpreadExpression optionSpreadExpressionList = admPositionImportWeb[admWebPositionCounter].contractData.optionSpreadExpression; //checkUpdateStatus(admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, // optionSpreadExpressionList, true); optionSpreadManager.statusAndConnectedUpdates.checkUpdateStatus(gridLiveFCMData, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.TIME, optionSpreadExpressionList); //if (optionSpreadManager.realtimeMonitorSettings.eodAnalysis) if (optionSpreadExpressionList.instrument.eodAnalysisAtInstrument) { gridLiveFCMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.TIME].DefaultCellStyle.Font = new Font("Tahoma", 6); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.TIME, optionSpreadExpressionList.lastTimeUpdated.ToString("yyyy-MM-dd HH:mm", DateTimeFormatInfo.InvariantInfo), false, 0); } else { gridLiveFCMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.TIME].DefaultCellStyle.Font = new Font("Tahoma", 8); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.TIME, optionSpreadExpressionList.lastTimeUpdated.ToString("HH:mm", DateTimeFormatInfo.InvariantInfo), false, 0); } fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.ASK, cqgInstrument.ToDisplayPrice(optionSpreadExpressionList.ask), false, optionSpreadExpressionList.ask); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.BID, cqgInstrument.ToDisplayPrice(optionSpreadExpressionList.bid), false, optionSpreadExpressionList.bid); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.LAST, cqgInstrument.ToDisplayPrice(optionSpreadExpressionList.trade), false, optionSpreadExpressionList.trade); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.DFLT_PRICE, cqgInstrument.ToDisplayPrice(optionSpreadExpressionList.defaultPrice), false, optionSpreadExpressionList.defaultPrice); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.STTLE, cqgInstrument.ToDisplayPrice(optionSpreadExpressionList.settlement), false, optionSpreadExpressionList.settlement); if (optionSpreadExpressionList.settlementDateTime.Date.CompareTo(DateTime.Now.Date) >= 0) { fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.SETL_TIME, optionSpreadExpressionList.settlementDateTime.ToString("yyyy-MM-dd HH:mm", DateTimeFormatInfo.InvariantInfo), true, 1); } else { fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.SETL_TIME, optionSpreadExpressionList.settlementDateTime.ToString("yyyy-MM-dd HH:mm", DateTimeFormatInfo.InvariantInfo), true, -1); } fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.YEST_STTLE, cqgInstrument.ToDisplayPrice(optionSpreadExpressionList.yesterdaySettlement), false, optionSpreadExpressionList.yesterdaySettlement); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.IMPL_VOL, Math.Round(optionSpreadExpressionList.impliedVol, 2).ToString(), false, optionSpreadExpressionList.impliedVol); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.THEOR_PRICE, cqgInstrument.ToDisplayPrice( optionSpreadExpressionList.theoreticalOptionPrice), false, optionSpreadExpressionList.theoreticalOptionPrice); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.SPAN_IMPL_VOL, Math.Round(optionSpreadExpressionList.impliedVolFromSpan, 2).ToString(), false, optionSpreadExpressionList.impliedVolFromSpan); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.SETL_IMPL_VOL, Math.Round(optionSpreadExpressionList.settlementImpliedVol, 2).ToString(), false, optionSpreadExpressionList.settlementImpliedVol); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.RFR, optionSpreadExpressionList.riskFreeRate.ToString(), false, optionSpreadExpressionList.riskFreeRate); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.PL_DAY_CHG, Math.Round(admPositionImportWeb[admWebPositionCounter].contractData.pAndLDay, 2).ToString(), true, admPositionImportWeb[admWebPositionCounter].contractData.pAndLDay); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.PL_TRANS, Math.Round(admPositionImportWeb[admWebPositionCounter].contractData.pAndLDayOrders, 2).ToString(), true, admPositionImportWeb[admWebPositionCounter].contractData.pAndLDayOrders); //fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, // (int)OPTION_LIVE_ADM_DATA_COLUMNS.PL_DAY_CHG, // Math.Round(admPositionImportWeb[admWebPositionCounter].contractData.pAndLDay, 2).ToString(), // true, admPositionImportWeb[admWebPositionCounter].contractData.pAndLDay); fillLiveADMDataPage(optionRealtimeMonitor, admPositionImportWeb[admWebPositionCounter].liveADMRowIdx, (int)OPTION_LIVE_ADM_DATA_COLUMNS.DELTA, Math.Round(admPositionImportWeb[admWebPositionCounter].contractData.delta, 2).ToString(), true, admPositionImportWeb[admWebPositionCounter].contractData.delta); // //int numberOfContracts = (int)optionStrategies[optionSpreadCounter].optionStrategyParameters[ // // (int)TBL_STRATEGY_STATE_FIELDS.currentPosition].stateValueParsed[legCounter]; // //fillLiveADMDataPage(liveADMStrategyInfoList[optionSpreadCounter].admLegInfo[legCounter].rowIndex, // // (int)OPTION_LIVE_ADM_DATA_COLUMNS.SPREAD_QTY, // // numberOfContracts.ToString(), true, numberOfContracts); // } } } // fillLiveADMDataPage(liveADMStrategyInfoList[optionSpreadCounter].summaryRowIdx, // (int)OPTION_LIVE_ADM_DATA_COLUMNS.PL_DAY_CHG, // Math.Round(liveADMStrategyInfoList[optionSpreadCounter].liveSpreadADMTotals.pAndLDay, 2).ToString(), // true, liveADMStrategyInfoList[optionSpreadCounter].liveSpreadADMTotals.pAndLDay); // fillLiveADMDataPage(liveADMStrategyInfoList[optionSpreadCounter].summaryRowIdx, // (int)OPTION_LIVE_ADM_DATA_COLUMNS.DELTA, // Math.Round(liveADMStrategyInfoList[optionSpreadCounter].liveSpreadADMTotals.delta, 2).ToString(), // true, liveADMStrategyInfoList[optionSpreadCounter].liveSpreadADMTotals.delta); // optionSpreadCounter++; } } catch (Exception ex) { TSErrorCatch.errorCatchOut(Convert.ToString(this), ex); } }