Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# Data Sources

## Data Source

class lumibot.data_sources.data_source.DataSource

  Bases: `object`

  DEFAULT_PYTZ = <DstTzInfo 'America/New_York' LMT-1 day, 19:04:00 STD>
  DEFAULT_TIMEZONE = 'America/New_York'
  IS_BACKTESTING_DATA_SOURCE = False
  MIN_TIMESTEP = 'minute'
  SOURCE = ''
  TIMESTEP_MAPPING = []
  get_bars(assets, length, timestep='minute', timeshift=None, chunk_size=100, max_workers=200, quote=None, exchange=None, include_after_hours=True)

    Get bars for the list of assets

  get_datetime()
  get_datetime_range(length, timestep='minute', timeshift=None)
  get_greeks(asset, implied_volatility=False, delta=False, option_price=False, pv_dividend=False, gamma=False, vega=False, theta=False, underlying_price=False)

    Returns Greeks in backtesting.

  get_historical_prices(asset, length, timestep='', timeshift=None, quote=None, exchange=None, include_after_hours=True)

    Get bars for a given asset

  get_last_day()
  get_last_minute()
  get_last_price(asset, timestep=None, quote=None, exchange=None, **kwargs)

    Takes an asset and returns the last known price

  get_last_prices(assets, timestep=None, quote=None, exchange=None, **kwargs)

    Takes a list of assets and returns the last known prices

  get_round_day(timeshift=0)
  get_round_minute(timeshift=0)
  get_timestamp()
  get_timestep()
  get_tradable_assets(dt, length=1, timestep='minute', timeshift=0)
  get_yesterday_dividend(asset, quote=None)

    Return dividend per share for a given asset for the day before

  get_yesterday_dividends(assets, quote=None)

    Return dividend per share for a list of assets for the day before

  is_tradable(asset, dt, length=1, timestep='minute', timeshift=0)
  classmethod localize_datetime(dt)
  classmethod to_default_timezone(dt)

## Pandas

class lumibot.data_sources.pandas.PandasData(pandas_data, config=None, auto_adjust=True, **kwargs)

  Bases: `DataSource`

  IS_BACKTESTING_DATA_SOURCE = True
  MIN_TIMESTEP = 'minute'
  SOURCE = 'PANDAS'
  TIMESTEP_MAPPING = [{'representations': ['1D', 'day'], 'timestep': 'day'}, {'representations': ['1M', 'minute'], 'timestep': 'minute'}]
  clean_trading_times(dt_index, pcal)
  get_asset_by_name(name)
  get_asset_by_symbol(symbol, asset_type=None)

    Finds the assets that match the symbol. If type is specified finds the assets matching symbol and type.

    Parameters:

      - symbol (str) – The symbol of the asset.

      - type (str) – Asset type. One of: - stock - future - option - forex

    Return type:

      list of Asset

  get_assets()
  get_chain(chains, exchange='SMART')

    Returns option chain for a particular exchange.

    Takes in a full set of chains for all the exchanges and returns on chain for a given exchange. The the full chains are returned from get_chains method.

    Parameters:

      - chains (dictionary of dictionaries) – The chains dictionary created by get_chains method.

      - exchange (str optional) – The exchange such as SMART, CBOE. Default is SMART

    Returns:

      A dictionary of option chain information for one stock and for one exchange. It will contain:

      > - Underlying conId (int)

      > - TradingClass (str) eg: FB

      > - Multiplier (str) eg: 100

      > - Expirations (set of str) eg: {20230616, …}

      > - Strikes (set of floats)

    Return type:

      dictionary

  get_chains(asset)

    Returns option chains.

    Obtains option chain information for the asset (stock) from each of the exchanges the options trade on and returns a dictionary for each exchange.

    Parameters:

      asset (Asset object) – The stock whose option chain is being fetched. Represented as an asset object.

    Returns:

      - dictionary of dictionary for ‘SMART’ exchange only in

      - backtesting. Each exchange has –

        - Underlying conId (int)

        - TradingClass (str) eg: FB

        - Multiplier (str) eg: 100

        - Expirations (set of str) eg: {20230616, …}

        - Strikes (set of floats)

  get_expiration(chains, exchange='SMART')

    Returns expiration dates for an option chain for a particular exchange.

    Using the chains dictionary obtained from get_chains finds all of the expiry dates for the option chains on a given exchange. The return list is sorted.

    Parameters:

      - chains (dictionary of dictionaries) – The chains dictionary created by get_chains method.

      - exchange (str optional) – The exchange such as SMART, CBOE. Default is SMART.

    Returns:

      Sorted list of dates in the form of 20221013.

    Return type:

      list of str

  get_greeks(asset, implied_volatility=False, delta=False, option_price=False, pv_dividend=False, gamma=False, vega=False, theta=False, underlying_price=False)

    Returns Greeks in backtesting.

  get_last_price(asset, timestep=None, quote=None)

    Takes an asset and returns the last known price

  get_last_prices(assets, timestep=None, quote=None)

    Takes a list of assets and returns the last known prices

  get_multiplier(chains, exchange='SMART')

    Returns option chain for a particular exchange.

    Using the chains dictionary obtained from get_chains finds all of the multiplier for the option chains on a given exchange.

    Parameters:

      - chains (dictionary of dictionaries) – The chains dictionary created by get_chains method.

      - exchange (str optional) – The exchange such as SMART, CBOE. Default is SMART

    Returns:

      Sorted list of dates in the form of 20221013.

    Return type:

      list of str

  get_strikes(asset)

    Returns a list of strikes for a give underlying asset.

    Using the chains dictionary obtained from get_chains finds all of the multiplier for the option chains on a given exchange.

    Parameters:

      asset (Asset object) –

      Asset object as normally used for an option but without the strike information.

      Example: asset = self.create_asset(

      > ”FB”, asset_type=”option”, expiration=self.options_expiry_to_datetime_date(“20210924”), right=”CALL”, multiplier=100,

      )

      expiration can also be expressed as datetime.datetime.date()

    Returns:

      Sorted list of strikes as floats.

    Return type:

      list of floats

  get_tradable_assets(dt, length=1, timestep='minute', timeshift=0)
  get_trading_days_pandas()
  get_yesterday_dividend(asset)

    Return dividend per share for a given asset for the day before

  get_yesterday_dividends(assets)

    Return dividend per share for a list of assets for the day before

  is_tradable(asset, dt, length=1, timestep='minute', timeshift=0)
  load_data()
  update_date_index()

## Yahoo

class lumibot.data_sources.yahoo.YahooData(config=None, auto_adjust=True, **kwargs)

  Bases: `DataSource`

  MIN_TIMESTEP = 'day'
  SOURCE = 'YAHOO'
  TIMESTEP_MAPPING = [{'representations': ['1D', 'day'], 'timestep': 'day'}]

## Module contents