docs: def eval_algorithm(closing, low, high):
          """ Evaluates the SO algorithm
  
          Args:
              closing: Float of current closing price.
              low: Float of lowest low closing price throughout some duration.
              high: Float of highest high closing price throughout some duration.
  
          Returns:
              Float SO between 0 and 100.
          """
          if high - low == 0: # High and low are the same, zero division error
              return 100 * (closing - low)
          else:
              return 100 * (closing - low) / (high - low)