internal void checkUpdateStatus(DataGridView gridView,
                                        int row, int col, OptionSpreadExpression optionSpreadExpression)
        {
            Color backColor;

            //if (optionSpreadManager.realtimeMonitorSettings.eodAnalysis)
            if (optionSpreadExpression.instrument.eodAnalysisAtInstrument)
            {
                backColor = Color.Plum;
            }
            else if (optionSpreadExpression.minutesSinceLastUpdate > TradingSystemConstants.MINUTES_STALE_LIVE_UPDATE)
            {
                backColor = Color.Yellow;
            }
            else
            {
                backColor = Color.LightSkyBlue;
            }

            markLiveAsConnected(gridView, row,
                                col,
                                true, backColor);
        }
Beispiel #2
0
        copyToMongoDB_OptionSpreadExpression(OptionSpreadExpression ose)
        {
            MongoDB_OptionSpreadExpression mongoDB_OptionSpreadExpression =
                new MongoDB_OptionSpreadExpression();

            mongoDB_OptionSpreadExpression.cqgSymbol = ose.cqgSymbol;

            //*******
            //    idInstrument;

            //instrument;

            ////this is used for margin calculation from option payoff chart
            ////******************************************
            //public int optionMonthInt;
            //public int optionYear;

            //public int futureContractMonthInt;
            //public int futureContractYear;
            ////******************************************

            //public OPTION_EXPRESSION_TYPES optionExpressionType;

            //public OPTION_SPREAD_CONTRACT_TYPE callPutOrFuture;

            //public char callPutOrFutureChar;


            //public int optionId; //only filled if contract is an option
            //public int underlyingFutureId;

            //public int substituteOptionId; //only filled if contract is an option
            //public int substituteUnderlyingFutureId;


            //public int futureId; //only filled if contract is a future
            //public int substituteFutureId;


            //public double strikePrice;

            //public double riskFreeRate = 0.01;
            //public bool riskFreeRateFilled = false;

            //public double yearFraction;

            //public DateTime lastTimeUpdated;

            //public double minutesSinceLastUpdate = 0;

            //public DateTime lastTimeFuturePriceUpdated; //is separate b/c can get time stamp off of historical bars


            //public double ask;
            //public bool askFilled;

            //public double bid;
            //public bool bidFilled;

            //public double trade;
            //public bool tradeFilled;

            //public double settlement;
            //public bool settlementFilled;
            //public bool manuallyFilled;
            //public DateTime settlementDateTime;
            //public bool settlementIsCurrentDay;

            //public double yesterdaySettlement;
            //public bool yesterdaySettlementFilled;


            //public double defaultBidPriceBeforeTheor;
            ////public bool defaultBidPriceBeforeTheorFilled;

            //public double defaultAskPriceBeforeTheor;
            ////public bool defaultAskPriceBeforeTheorFilled;

            //public double defaultMidPriceBeforeTheor;

            //public double defaultPrice;
            //public bool defaultPriceFilled;



            //public double decisionPrice;
            //public DateTime decisionPriceTime;
            //public bool decisionPriceFilled = false;

            //public double transactionPrice;
            //public DateTime transactionPriceTime;
            //public bool transactionPriceFilled = false;


            //public double impliedVolFromSpan;


            //public double theoreticalOptionPrice;

            //public double settlementImpliedVol;

            //public double impliedVol;

            //public bool impliedVolFilled = false; //used for calculating option transaction price

            //public double delta;


            //public List<OHLCData> futureBarData;
            //public List<DateTime> futureBarTimeRef;
            //public List<TheoreticalBar> theoreticalOptionDataList;


            //public DateTime previousDateTimeBoundaryStart;

            //public OHLCData todayTransactionBar;
            //public DateTime todayTransactionTimeBoundary;
            //public bool reachedTransactionTimeBoundary = false;
            //public bool filledAfterTransactionTimeBoundary = false;

            //public OHLCData decisionBar;
            //public DateTime todayDecisionTime;
            //public bool reachedDecisionBar = false;
            //public bool reachedBarAfterDecisionBar = false;
            //public bool reached1MinAfterDecisionBarUsedForSnapshot = false;
            //*******

            return(mongoDB_OptionSpreadExpression);
        }
Beispiel #3
0
        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);
            }
        }