public void threadSafeFillLiveADMDataPage(OptionRealtimeMonitor optionRealtimeMonitor, int row, int col, String displayValue, bool updateColor, double value) { DataGridView gridLiveFCMData = optionRealtimeMonitor.getGridLiveFCMData; try { int rowToUpdate = row; if (gridLiveFCMData.Rows[rowToUpdate].Cells[col].Value == null || gridLiveFCMData.Rows[rowToUpdate].Cells[col].Value.ToString().CompareTo(displayValue) != 0 ) { gridLiveFCMData.Rows[rowToUpdate].Cells[col].Value = displayValue; if (updateColor) { gridLiveFCMData.Rows[rowToUpdate].Cells[col].Style.BackColor = CommonFormManipulation.plUpDownColor(value); } } } catch (Exception ex) { TSErrorCatch.errorCatchOut(Convert.ToString(this), ex); } }
public FileLoadList(OptionRealtimeMonitor optionRealtimeMonitor) { this.optionRealtimeMonitor = optionRealtimeMonitor; InitializeComponent(); listViewFileList.SmallImageList = imageList1; listViewFileList.View = View.SmallIcon; }
internal void fillGridLiveADMData(OptionRealtimeMonitor optionRealtimeMonitor) { DataGridView gridLiveFCMData = optionRealtimeMonitor.getGridLiveFCMData; if (optionRealtimeMonitor.InvokeRequired) { ThreadSafeFillGridModelADMComparison d = new ThreadSafeFillGridModelADMComparison(threadsafefillGridLiveADMData); optionRealtimeMonitor.Invoke(d, optionRealtimeMonitor); } else { threadsafefillGridLiveADMData(optionRealtimeMonitor); } }
public CMEMarginCall(List <OptionSpreadExpression> optionSpreadExpressionList, OptionStrategy[] optionStrategies, Instrument[] instruments, OptionRealtimeMonitor optionRealtimeMonitor, LiveSpreadTotals portfolioSpreadTotals, List <ADMPositionImportWeb> admPositionImportWeb, bool fileOnly) { this.optionSpreadExpressionList = optionSpreadExpressionList; this.optionStrategies = optionStrategies; this.instruments = instruments; this.optionRealtimeMonitor = optionRealtimeMonitor; this.portfolioSpreadTotals = portfolioSpreadTotals; this.admPositionImportWeb = admPositionImportWeb; this.fileOnly = fileOnly; }
public void fillLiveADMDataPage(OptionRealtimeMonitor optionRealtimeMonitor, int row, int col, String displayValue, bool updateColor, double value) { try { if (optionRealtimeMonitor.InvokeRequired) { ThreadSafeFillLiveDataPageDelegate d = new ThreadSafeFillLiveDataPageDelegate(threadSafeFillLiveADMDataPage); optionRealtimeMonitor.Invoke(d, optionRealtimeMonitor, row, col, displayValue, updateColor, value); } else { threadSafeFillLiveADMDataPage(optionRealtimeMonitor, row, col, displayValue, updateColor, value); } } 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) { 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); } }
private OptionSpreadManager optionSpreadManager;// { get; set; } //private StatusAndConnectedUpdates statusAndConnectedUpdates;// { get; set; } internal void setupGridLiveADMData(OptionRealtimeMonitor optionRealtimeMonitor) { DataGridView gridLiveFCMData = optionRealtimeMonitor.getGridLiveFCMData; try { Type liveColTypes = typeof(OPTION_LIVE_ADM_DATA_COLUMNS); Array liveColTypesArray = Enum.GetNames(liveColTypes); gridLiveFCMData.ColumnCount = liveColTypesArray.Length; gridLiveFCMData.EnableHeadersVisualStyles = false; DataGridViewCellStyle colTotalPortStyle = gridLiveFCMData.ColumnHeadersDefaultCellStyle; colTotalPortStyle.BackColor = Color.Black; colTotalPortStyle.ForeColor = Color.White; DataGridViewCellStyle rowTotalPortStyle = gridLiveFCMData.RowHeadersDefaultCellStyle; rowTotalPortStyle.BackColor = Color.Black; rowTotalPortStyle.ForeColor = Color.White; gridLiveFCMData.Columns[0].Frozen = true; StringBuilder sb = new StringBuilder(); for (int i = 0; i < gridLiveFCMData.ColumnCount; i++) { gridLiveFCMData.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; if (i != (int)OPTION_LIVE_ADM_DATA_COLUMNS.NET_EDITABLE) { gridLiveFCMData.Columns[i].ReadOnly = true; } sb.Clear(); sb.Append(liveColTypesArray.GetValue(i).ToString()); gridLiveFCMData .Columns[i] .HeaderCell.Value = sb.ToString().Replace('_', ' '); gridLiveFCMData.Columns[i].Width = 50; } //for (int i = 0; i < liveColTypesArray.Length; i++) //{ //} //************ //gridLiveADMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.CONTRACT].Width = 115; //gridLiveADMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.LEG].Width = 30; //gridLiveADMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.LEG].DefaultCellStyle.Font = new Font("Tahoma", 7); gridLiveFCMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.TIME].Width = 70; gridLiveFCMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.TIME].DefaultCellStyle.WrapMode = DataGridViewTriState.True; gridLiveFCMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.SETL_TIME].DefaultCellStyle.Font = new Font("Tahoma", 6); gridLiveFCMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.SETL_TIME].DefaultCellStyle.WrapMode = DataGridViewTriState.True; gridLiveFCMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.EXPR].DefaultCellStyle.Font = new Font("Tahoma", 6); gridLiveFCMData.Columns[(int)OPTION_LIVE_ADM_DATA_COLUMNS.EXPR].DefaultCellStyle.WrapMode = DataGridViewTriState.True; //************ //List<LiveADMStrategyInfo> liveADMStrategyInfoList = optionSpreadManager.liveADMStrategyInfoList; fillGridLiveADMData(optionRealtimeMonitor); } catch (Exception ex) { TSErrorCatch.errorCatchOut(Convert.ToString(this), ex); } }
internal void threadsafefillGridLiveADMData(OptionRealtimeMonitor optionRealtimeMonitor) { DataGridView gridLiveFCMData = optionRealtimeMonitor.getGridLiveFCMData; try { List <ADMPositionImportWeb> admPositionImportWeb = optionSpreadManager.admPositionImportWeb; gridLiveFCMData.RowCount = admPositionImportWeb.Count; int rowIdx = 0; //Color rowColor1 = Color.DarkGray; //Color rowColor2 = Color.Black; Color rowColor1 = Color.DarkGray; Color rowColor2 = Color.DarkBlue; Color currentRowColor = rowColor1; for (int instrumentCnt = 0; instrumentCnt <= optionSpreadManager.instruments.Length; instrumentCnt++) { for (int admWebPositionCounter = 0; admWebPositionCounter < admPositionImportWeb.Count; admWebPositionCounter++) { if (admPositionImportWeb[admWebPositionCounter].instrument.idxOfInstrumentInList == instrumentCnt) { admPositionImportWeb[admWebPositionCounter].liveADMRowIdx = rowIdx; switch (rowIdx % 2) { case 0: currentRowColor = rowColor1; break; case 1: currentRowColor = rowColor2; break; } gridLiveFCMData .Rows[rowIdx] .HeaderCell.Style.BackColor = currentRowColor; gridLiveFCMData .Rows[rowIdx] .HeaderCell.Value = admPositionImportWeb[admWebPositionCounter].cqgSymbol; //admPositionsCheckAndFillGrid(admPositionImportWeb[stratCounter], // rowIdx, true); DateTime currentDate = DateTime.Now; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.POFFIC].Value = admPositionImportWeb[admWebPositionCounter].POFFIC; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.PACCT].Value = admPositionImportWeb[admWebPositionCounter].PACCT; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.NET_EDITABLE].Value = admPositionImportWeb[admWebPositionCounter].netContractsEditable; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.NET_AT_ADM].Value = admPositionImportWeb[admWebPositionCounter].Net; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.LONG_TRANS].Value = admPositionImportWeb[admWebPositionCounter].transNetLong; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.SHORT_TRANS].Value = admPositionImportWeb[admWebPositionCounter].transNetShort; //gridLiveADMData.Rows[rowCounter].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.MODEL].Value = // liveADMStrategyInfo.admLegInfo[legCounter].numberOfModelContracts; TimeSpan span = admPositionImportWeb[admWebPositionCounter].contractInfo.expirationDate.Date - currentDate.Date; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.CNTDN].Value = span.Days; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.EXPR].Value = new DateTime( admPositionImportWeb[admWebPositionCounter].contractInfo.expirationDate.Year, admPositionImportWeb[admWebPositionCounter].contractInfo.expirationDate.Month, admPositionImportWeb[admWebPositionCounter].contractInfo.expirationDate.Day, admPositionImportWeb[admWebPositionCounter].contractInfo.optionExpirationTime.Hour, admPositionImportWeb[admWebPositionCounter].contractInfo.optionExpirationTime.Minute, 0 ) .ToString("yyyy-MM-dd HH:mm", DateTimeFormatInfo.InvariantInfo); gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.AVG_LONG_TRANS_PRC].Value = admPositionImportWeb[admWebPositionCounter].transAvgLongPrice; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.AVG_SHORT_TRANS_PRC].Value = admPositionImportWeb[admWebPositionCounter].transAvgShortPrice; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.STRIKE].Value = admPositionImportWeb[admWebPositionCounter].strike; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.DESCRIP].Value = admPositionImportWeb[admWebPositionCounter].Description; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.CUSIP].Value = admPositionImportWeb[admWebPositionCounter].PCUSIP; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.ADMPOSWEB_IDX].Value = admWebPositionCounter; gridLiveFCMData.Rows[rowIdx].Cells[(int)OPTION_LIVE_ADM_DATA_COLUMNS.INSTRUMENT_ID].Value = instrumentCnt; //********************************* gridLiveFCMData .Rows[rowIdx] .HeaderCell.Style.BackColor = currentRowColor; rowIdx++; //rowIdx += liveADMStrategyInfoList[stratCounter].admLegInfo.Count + 1; } } } //updateColorOfADMStrategyGrid(); } catch (Exception ex) { TSErrorCatch.errorCatchOut(Convert.ToString(this), ex); } //return liveLegRowIdexes; }
private StatusAndConnectedUpdates statusAndConnectedUpdates; // { get; set; } public void setupContractSummaryLiveData(OptionRealtimeMonitor optionRealtimeMonitor) { DataGridView gridViewContractSummary = optionRealtimeMonitor.getGridViewContractSummary; try { Type contractSummaryColTypes = typeof(CONTRACTSUMMARY_DATA_COLUMNS); Array contractSummaryColTypesArray = Enum.GetNames(contractSummaryColTypes); gridViewContractSummary.ColumnCount = contractSummaryColTypesArray.Length; gridViewContractSummary.EnableHeadersVisualStyles = false; DataGridViewCellStyle colTotalPortStyle = gridViewContractSummary.ColumnHeadersDefaultCellStyle; colTotalPortStyle.BackColor = Color.Black; colTotalPortStyle.ForeColor = Color.White; DataGridViewCellStyle rowTotalPortStyle = gridViewContractSummary.RowHeadersDefaultCellStyle; rowTotalPortStyle.BackColor = Color.Black; rowTotalPortStyle.ForeColor = Color.White; gridViewContractSummary.Columns[0].Frozen = true; for (int i = 0; i < gridViewContractSummary.ColumnCount; i++) { gridViewContractSummary.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < contractSummaryColTypesArray.Length; i++) { sb.Clear(); sb.Append(contractSummaryColTypesArray.GetValue(i).ToString()); gridViewContractSummary .Columns[i] .HeaderCell.Value = sb.ToString().Replace('_', ' '); gridViewContractSummary.Columns[i].Width = 50; } //gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.CONTRACT].Width = 115; //gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.LEG].Width = 30; //gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.LEG].DefaultCellStyle.Font = new Font("Tahoma", 7); gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.TIME].Width = 70; gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.TIME].DefaultCellStyle.WrapMode = DataGridViewTriState.True; gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.SETL_TIME].DefaultCellStyle.Font = new Font("Tahoma", 6); gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.SETL_TIME].DefaultCellStyle.WrapMode = DataGridViewTriState.True; //gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.EXPR].DefaultCellStyle.Font = new Font("Tahoma", 6); //gridViewContractSummary.Columns[(int)CONTRACTSUMMARY_DATA_COLUMNS.EXPR].DefaultCellStyle.WrapMode = DataGridViewTriState.True; int rowCount = 0; for (int i = 0; i < optionSpreadManager.optionSpreadExpressionList.Count; i++) { if (optionSpreadManager.optionSpreadExpressionList[i].optionExpressionType != OPTION_EXPRESSION_TYPES.OPTION_EXPRESSION_RISK_FREE_RATE && optionSpreadManager.optionSpreadExpressionList[i].numberOfLotsHeldForContractSummary != 0) { rowCount++; } } gridViewContractSummary.RowCount = rowCount; Color rowColor1 = Color.DarkGray; Color rowColor2 = Color.Black; Color currentRowColor = rowColor1; int heldLotsExpressionCnt = 0; for (int instrumentCnt = 0; instrumentCnt <= optionSpreadManager.instruments.Length; instrumentCnt++) { for (int i = 0; i < optionSpreadManager.optionSpreadExpressionList.Count; i++) { if (optionSpreadManager.optionSpreadExpressionList[i].optionExpressionType != OPTION_EXPRESSION_TYPES.OPTION_EXPRESSION_RISK_FREE_RATE && optionSpreadManager.optionSpreadExpressionList[i].instrument.idxOfInstrumentInList == instrumentCnt) { if (optionSpreadManager.optionSpreadExpressionList[i].numberOfLotsHeldForContractSummary != 0) { switch (heldLotsExpressionCnt % 2) { case 0: currentRowColor = rowColor1; break; case 1: currentRowColor = rowColor2; break; } optionSpreadManager.contractSummaryExpressionListIdx.Add(i); //TSErrorCatch.debugWriteOut(optionSpreadManager.optionSpreadExpressionList[i].cqgSymbol + " " + i); gridViewContractSummary .Rows[heldLotsExpressionCnt] .HeaderCell.Style.BackColor = currentRowColor; gridViewContractSummary .Rows[heldLotsExpressionCnt] .HeaderCell.Value = optionSpreadManager.optionSpreadExpressionList[i].cqgSymbol; for (int j = 0; j < gridViewContractSummary.ColumnCount; j++) { gridViewContractSummary.Rows[heldLotsExpressionCnt].Cells[j] = new CustomDataGridViewCell(true); } //gridViewContractSummary // .Rows[heldLotsExpressionCnt].Cells[(int)CONTRACTSUMMARY_DATA_COLUMNS.TOTAL_QTY].Value = // optionSpreadManager.optionSpreadExpressionList[i].numberOfLotsHeldForContractSummary; gridViewContractSummary .Rows[heldLotsExpressionCnt].Cells[(int)CONTRACTSUMMARY_DATA_COLUMNS.SETL_TIME].Value = optionSpreadManager.optionSpreadExpressionList[i].settlementDateTime; gridViewContractSummary .Rows[heldLotsExpressionCnt].Cells[(int)CONTRACTSUMMARY_DATA_COLUMNS.STRIKE_PRICE].Value = optionSpreadManager.optionSpreadExpressionList[i].strikePrice; gridViewContractSummary .Rows[heldLotsExpressionCnt].Cells[(int)CONTRACTSUMMARY_DATA_COLUMNS.INSTRUMENT_ID].Value = optionSpreadManager.optionSpreadExpressionList[i].instrument.idxOfInstrumentInList; heldLotsExpressionCnt++; } } } } } catch (Exception ex) { TSErrorCatch.errorCatchOut(Convert.ToString(this), ex); } }
public void sendUpdateToContractSummaryLiveData(OptionRealtimeMonitor optionRealtimeMonitor) { DataGridView gridViewContractSummary = optionRealtimeMonitor.getGridViewContractSummary; try { for (int contractSummaryExpressionCnt = 0; contractSummaryExpressionCnt < optionSpreadManager.contractSummaryExpressionListIdx.Count(); contractSummaryExpressionCnt++) { 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); } }
internal StatusAndConnectedUpdates(OptionRealtimeMonitor form, OptionSpreadManager optionSpreadManager) { this.form = form; this.optionSpreadManager = optionSpreadManager; }