Core Class Definitions
          base_class.Strategy
  The Strategy class is the highest level abstract class that stores all of the details of a Surmount trading strategy.
It is not passed any inputs on instantiation, but the concrete implementation overload to do so.
          interval: str
  
  
      abstractmethod
      property
  
  
          assets: List[str]
  
  
      abstractmethod
      property
  
  
          data
  
  
      property
  
  
          run(data)
  
  
      abstractmethod
  
  Runs the core logic of the strategy and returns a TargetAllocation object.
:param data: a dictionary identifiying OHLCV and alternative data.
          base_class.TargetAllocation
  The TargetAllocation class is a simple class that allows strategy output to be checked for validity and consistent across all strategies.
:param target_allocation: a dictionary mapping string tickers to float portfolio allocations (sum must be <= 1)