def eval_from_json(json):
        """ Evaluates SO from JSON (typically Poloniex API response)

        Args:
            json: List of dates where each entry is a dict of raw market data.

        Returns:
            Float SO between 0 and 100.
        """
        close  = json[-1]['close'] # Latest closing price
        low    = min(poloniex.get_attribute(json, 'low')) # Lowest low
        high   = max(poloniex.get_attribute(json, 'high')) # Highest high
        return SO.eval_algorithm(close, low, high)