code: def make_rotating_equity_info(num_assets,
                                first_start,
                                frequency,
                                periods_between_starts,
                                asset_lifetime,
                                exchange='TEST'):
      
      return pd.DataFrame(
          {
              'symbol': [chr(ord('A') + i) for i in range(num_assets)],
              # Start a new asset every `periods_between_starts` days.
              'start_date': pd.date_range(
                  first_start,
                  freq=(periods_between_starts * frequency),
                  periods=num_assets,
              ),
              # Each asset lasts for `asset_lifetime` days.
              'end_date': pd.date_range(
                  first_start + (asset_lifetime * frequency),
                  freq=(periods_between_starts * frequency),
                  periods=num_assets,
              ),
              'exchange': exchange,
          },
          index=range(num_assets),
      )
docs: Create a DataFrame representing lifetimes of assets that are constantly
      rotating in and out of existence.
  
      Parameters
      ----------
      num_assets : int
          How many assets to create.
      first_start : pd.Timestamp
          The start date for the first asset.
      frequency : str or pd.tseries.offsets.Offset (e.g. trading_day)
          Frequency used to interpret next two arguments.
      periods_between_starts : int
          Create a new asset every `frequency` * `periods_between_new`
      asset_lifetime : int
          Each asset exists for `frequency` * `asset_lifetime` days.
      exchange : str, optional
          The exchange name.
  
      Returns
      -------
      info : pd.DataFrame
          DataFrame representing newly-created assets.