load_partial_data#

load_partial_data(client, execution_context, time_bucket, pairs, universe_options, liquidity=False, stop_loss_time_bucket=None, required_history_period=None, start_at=None, end_at=None, name=None)[source]#

Load pair data for given trading pairs.

A loading function designed to load data for 2-20 pairs. Instead of loading all pair data over Parquet datasets, load only specific pair data from their corresponding JSONL endpoints.

This function works in low memory environments unlike tradeexecutor.strategy.trading_strategy_universe.load_all_data().

Example:

… code-block:: python

TRADING_PAIRS = [

(ChainId.avalanche, “trader-joe”, “WAVAX”, “USDC”), # Avax (ChainId.polygon, “quickswap”, “WMATIC”, “USDC”), # Matic (ChainId.ethereum, “uniswap-v2”, “WETH”, “USDC”), # Eth (ChainId.ethereum, “uniswap-v2”, “WBTC”, “USDC”), # Btc

]

def create_trading_universe(

ts: datetime.datetime, client: Client, execution_context: ExecutionContext, universe_options: UniverseOptions,

) -> TradingStrategyUniverse:

assert not execution_context.mode.is_live_trading(), f”Only strategy backtesting supported, got {execution_context.mode}”

# Load data for our trading pair whitelist dataset = load_partial_data(

client=client, time_bucket=CANDLE_TIME_BUCKET, pairs=TRADING_PAIRS, execution_context=execution_context, universe_options=universe_options, stop_loss_time_bucket=STOP_LOSS_TIME_BUCKET, start_at=START_AT, end_at=END_AT,

)

# Filter down the dataset to the pairs we specified universe = TradingStrategyUniverse.create_multichain_universe_by_pair_descriptions(

dataset, TRADING_PAIRS, reserve_token_symbol=”USDC” # Pick any USDC - does not matter as we do not route

)

return universe

Parameters:
  • client (BaseClient) – Trading Strategy client instance

  • time_bucket (TimeBucket) – The candle time frame.

  • chain_id – Which blockchain hosts our exchange

  • exchange_slug – Which exchange hosts our trading pairs

  • exchange_slug – Which exchange hosts our trading pairs

  • pair_tickers – List of trading pair tickers as base token quote token tuples. E.g. [(‘WBNB’, ‘BUSD’), (‘Cake’, ‘BUSD’)].

  • liquidity – Set true to load liquidity data as well

  • stop_loss_time_bucket (Optional[TimeBucket]) – If set load stop loss trigger data using this candle granularity.

  • execution_context (ExecutionContext) – Defines if we are live or backtesting

  • universe_options (UniverseOptions) – Override values given the strategy file. Used in testing the framework.

  • required_history_period (Optional[timedelta]) –

    How much historical data we need to load.

    Depends on the strategy. Defaults to load all data.

  • start_at (Optional[datetime]) – Load data for a specific backtesting data range.

  • end_at (Optional[datetime]) – Load data for a specific backtesting data range.

  • name (Optional[str]) – The loading operation name used in progress bars

  • pairs (Collection[Union[Tuple[ChainId, str, str, str, float], Tuple[ChainId, str, str, str]]]) –

Returns:

Datataset containing the requested data

Return type:

Dataset