public static MarketTicker getTicker(String marketID, String serverID, String nymID) {

        // ----------------------------------------------------------
        OTAPI_Func theRequest = new OTAPI_Func(OTAPI_Func.FT.GET_MARKET_LIST, serverID, nymID);
        String strResponse = OTAPI_Func.SendRequest(theRequest, "GET_MARKET_LIST");

        if (!Utility.VerifyStringVal(strResponse)) {
            System.out.println("IN getTicker: OTAPI_Func.SendRequest(() failed. (I give up.) ");
            return null;
        }
        // ----------------------------------------------------------

        if (otapiJNI.OTAPI_Basic_Message_GetDepth(strResponse) == 0) {
            System.out.println("getTicker: OT_API_Message_GetDepth returned zero");
            return null;
        }

        MarketList marketList = Helpers.getMarketList(serverID);

        if (marketList == null) {
            System.out.println("getTicker - marketList returns null");
            return null;
        }

        int nMarketDataCount = (int) marketList.GetMarketDataCount();

        for (int i = 0; i < nMarketDataCount; i++) {

            MarketData marketData = marketList.GetMarketData(i);
            if (marketData == null) {
                continue;
            }

            if (!Utility.VerifyStringVal(marketID)
             || (Utility.VerifyStringVal(marketID) && marketID.equals(marketData.getMarket_id()))) {

                MarketTicker marketTicker = new MarketTicker();
                marketTicker.setLastPrice(marketData.getLast_sale_price());
                marketTicker.setHighestBid(marketData.getCurrent_bid());
                marketTicker.setLowestAsk(marketData.getCurrent_ask());
                marketTicker.setHighPrice(marketData.getRecent_highest_bid());
                marketTicker.setLowPrice(marketData.getRecent_lowest_ask());
                return marketTicker;
            }
        }
        return null;
    }