private static BrokerErrorCode EquityRefreshStockState(
            IBroker broker,
            DateTime fromDate,
            DateTime toDate,
            EquityStockTradeStats stockInfo)
        {
            BrokerErrorCode errorCode = BrokerErrorCode.Unknown;

            if (stockInfo == null)
            {
                return(BrokerErrorCode.InValidArg);
            }
            Dictionary <string, EquityOrderBookRecord> orders = new Dictionary <string, EquityOrderBookRecord>();
            Dictionary <string, EquityTradeBookRecord> trades = new Dictionary <string, EquityTradeBookRecord>();

            // Get stock filtered Order book
            errorCode = broker.GetEquityOrderBook(fromDate, toDate, false, true, stockInfo.StockCode, out orders);

            if (errorCode == BrokerErrorCode.Success)
            {
                // Get stock filtered Trade book
                errorCode = broker.GetEquityTradeBook(fromDate, toDate, false, stockInfo.StockCode, out trades);
            }

            if (errorCode == BrokerErrorCode.Success)
            {
                // Call stock refresh method to update its state
                stockInfo.RefreshState(orders, trades);
            }

            return(errorCode);
        }
        public static BrokerErrorCode RefreshEquityStockStateToday(IBroker broker, EquityStockTradeStats stockInfo)
        {
            DateTime EarliestValidMarketOpenDate = MarketUtils.GetMarketCurrentDate();

            if (stockInfo == null)
            {
                return(BrokerErrorCode.InValidArg);
            }

            return(stockInfo.EquityRefreshStockState(broker, EarliestValidMarketOpenDate, EarliestValidMarketOpenDate));
        }
 public void UpdateTradeParams(Dictionary <string, EquityStockTradeStats> stocksInSystem)
 {
     foreach (KeyValuePair <string, EquityStockTradeStats> stockPair in stocksInSystem)
     {
         EquityStockTradeStats stockInfo = stockPair.Value;
         OrderFundLimit   += stockInfo.OrderFundLimit;
         FundLimitCurrent += stockInfo.FundLimitCurrent;
         OrderBrokerage   += stockInfo.OrderBrokerage;
         TradeBrokerage   += stockInfo.TradeBrokerage;
         BuySellGain      += stockInfo.BuySellGain;
         NetGain          += stockInfo.NetGain;
     }
 }
        ////////////////////////////////////
        //////      EQUITY STOCK STATE      //////
        //////////////////////////////////


        public static BrokerErrorCode EquityRefreshStockStateToday(IBroker broker, EquityStockTradeStats stockInfo)
        {
            DateTime EarliestValidMarketOpenDate = MarketUtils.GetMarketCurrentDate();

            return(EquityRefreshStockState(broker, EarliestValidMarketOpenDate, EarliestValidMarketOpenDate, stockInfo));
        }