class_docstr: Parent class representing a generic financial asset.
  
  :param data: Historical price data of the asset.
  :param name: Name of the asset.
  :param asset_type: Type of the asset (e.g., "Stock" or "Market index").
  
  The ``Asset`` class provides common functionality and attributes for financial assets.
  It represents a generic asset and serves as the parent class for specialized asset classes.
  
  Attributes:
      - ``data`` (``pandas.Series``): Historical price data of the asset.
      - ``name`` (``str``): Name of the asset.
      - ``asset_type`` (``str``): Type of the asset (e.g., "Stock" or "Market").
      - ``expected_return`` (``float``): Expected return of the asset.
      - ``volatility`` (``float``): Volatility of the asset.
      - ``skew`` (``float``): Skewness of the asset.
      - ``kurtosis`` (``float``): Kurtosis of the asset.
  
  The ``Asset`` class provides methods to compute various quantities such as expected return,
  volatility, skewness, and kurtosis based on the historical price data of the asset.
code: def __str__(self) -> str:
      # print short description
      string = (
          f"Contains information about {self.asset_type}: {self.name}."
      )
      return string
  
file_path: FinQuant/finquant/asset.py
imports: import numpy
  import pandas
  from finquant.data_types import FLOAT, INT
  from finquant.returns import daily_returns, historical_mean_return
  from finquant.type_utilities import type_validation
label_desc: Use image node_id 8 for calling the Asset obj's underlying member method code with example usage: obj.__str__() and returns: string