GetQuotes
        (
            string symbols
        )
        {
            // Method members
            List <EquityETF>            equityList     = new List <EquityETF>();
            List <MutualFund>           mutualFundList = new List <MutualFund>();
            List <Forex>                forexList      = new List <Forex>();
            List <TDAsset>              assetList      = new List <TDAsset>();
            Dictionary <string, object> assetDict      = new Dictionary <string, object>();

            // Were symbols obtained?
            if (!string.IsNullOrEmpty(symbols))
            {
                // YES: Get the TD Ameritrade REST API object
                TDAmeritradeREST rest = new TDAmeritradeREST();

                // Call TD Ameritratde API to get current quotes for these symbols
                string result = rest.QueryApi(

                    // The TD Ameritrade API method
                    ApiMethod.GetQuotes,

                    // The data object passed to the API method
                    ApiHelper.AccountDataWithQueryString(

                        // No data in URL before query string
                        null,

                        // The query string used to get the quotes
                        symbols,

                        // Use authentication
                        true
                        )
                    );

                // Is the result not in error?
                if (!string.IsNullOrEmpty(result) && !result.StartsWith("ERROR:"))
                {
                    // NO: Create a non-data contract JSON serializer
                    JavaScriptSerializer serializer = new JavaScriptSerializer();

                    // Deserialize the result returned from TD Ameritrade into
                    // the 1st level dictionary, i.e. <string, object>
                    assetDict = (Dictionary <string, object>)serializer.Deserialize <object>(result);

                    // Iterate through each asset in the asset dictionary
                    foreach (string key in assetDict.Keys)
                    {
                        // The 2nd level object for each asset is also a
                        // <string, object> dictionary. What type of asset?
                        switch (((Dictionary <string, object>)assetDict[key])["assetType"].ToString())
                        {
                        case "EQUITY":
                        case "ETF":
                            // Convert object to an Equity/ETF class object
                            equityList.Add(Broker.JsonDictConvert <EquityETF>((Dictionary <string, object>)assetDict[key]));
                            break;

                        case "MUTUAL_FUND":
                            // Convert object to a mutual fund class object
                            mutualFundList.Add(Broker.JsonDictConvert <MutualFund>((Dictionary <string, object>)assetDict[key]));
                            break;

                        case "FOREX":
                            //*********************************************
                            // NOTE: The TD Ameritrade REST API currently
                            // does not support FOREX trading.
                            //*********************************************
                            // Convert object to a Forex class object
                            //forexList.Add(Broker.JsonDictConvert<Forex>((Dictionary<string, object>)assetDict[key]));
                            break;

                        default:
                            break;
                        }
                    }

                    // Iterate through the equities and ETFs
                    foreach (EquityETF asset in equityList)
                    {
                        // Get the ask price
                        double askPrice = Broker.GetAskPrice(asset);

                        // If no ask price can be determined, do not trade this security
                        if (askPrice < -9000.0)
                        {
                            continue;
                        }

                        // Get the bid price
                        double bidPrice = Broker.GetBidPrice(asset);

                        assetList.Add(new TDAsset
                        {
                            Symbol     = asset.Symbol,
                            Price      = asset.AskPrice,
                            Spread     = askPrice - bidPrice,
                            Volume     = 0,
                            LotAmount  = 1,
                            MarginCost = 0.00,
                            Pip        = 0.01,
                            PipCost    = 0.01
                        });
                    }

                    // Iterate through the mutual funds
                    foreach (MutualFund asset in mutualFundList)
                    {
                        // Get the ask price
                        double askPrice = Broker.GetAskPrice(asset);

                        // If no ask price can be determined, do not trade this security
                        if (askPrice < -9000.0)
                        {
                            continue;
                        }

                        // Get the bid price
                        double bidPrice = Broker.GetBidPrice(asset);

                        assetList.Add(new TDAsset
                        {
                            Symbol     = asset.Symbol,
                            Price      = asset.AskPrice,
                            Spread     = askPrice - bidPrice,
                            Volume     = 0,
                            LotAmount  = 1,
                            MarginCost = 0.00,
                            Pip        = 0.01,
                            PipCost    = 0.01
                        });
                    }

                    //*********************************************************
                    // NOTE: FOREX trading is not currently supported by the
                    // TD Ameritrade REST API.
                    //
                    // Iterate through the Forex assets. Main issue is to
                    // compute the pipCost and the Rollover interest fees:
                    //
                    // PipCost = LotAmount * Pip / ( {Counter Currency} / {Account Currency} )
                    //*********************************************************

                    /*
                     * foreach (Forex asset in forexList)
                     * {
                     *  // Get the ask price
                     *  double askPrice = Broker.GetAskPrice(asset);
                     *
                     *  // If no ask price can be determined, do not trade this security
                     *  if (askPrice < -9000.0) continue;
                     *
                     *  // Get the bid price
                     *  double bidPrice = Broker.GetBidPrice(asset);
                     *
                     *  // Get the rollover rates
                     *  double ROR = CurrencyInterestRates.ComputeRollover(asset.Symbol, askPrice);
                     *
                     *  // Round the rollover to five places
                     *  ROR = Math.Round(ROR, 5);
                     *
                     *  assetList.Add(new TDAsset
                     *  {
                     *      Symbol = asset.Symbol,
                     *      Price = asset.AskPrice,
                     *      Spread = askPrice - bidPrice,
                     *      Volume = 0,
                     *      LotAmount = 10000,
                     *      MarginCost = 0.00,
                     *      Pip = (asset.Symbol.Contains("/JPY") || asset.Symbol.Contains("JPY/")) ? 0.01 : 0.0001,
                     *      PipCost = Broker.ComputePipCost(asset.Symbol),
                     *      RolloverLong = ROR,
                     *      RolloverShort = ROR
                     *  });
                     * }
                     */
                }
            }

            // Return the asset list
            return(assetList);
        }