ExecutionContext#

API documentation for tradeexecutor.strategy.execution_context.ExecutionContext Python class in Trading Strategy framework.

class ExecutionContext[source]#

Bases: object

Information about the strategy execution environment.

This is passed to create_trading_universe and couple of other functions and they can determine and take action based the mode of strategy execution. For example, we may load pair and candle data differently in live trading.

Example how to create for backtests:

from tradeexecutor.strategy.execution_context import ExecutionContext, ExecutionMode

execution_context = ExecutionContext(
    mode=ExecutionMode.backtesting,
)

See also

  • unit_test_execution_context

  • notebook_execution_context

__init__(mode, timed_task_context_manager=<function timed_task>, engine_version=None, parameters=None, grid_search=False, optimiser=False, jupyter=False, progress_bars=True)#
Parameters:
Return type:

None

Methods

__init__(mode[, timed_task_context_manager, ...])

has_visualisation()

Should backtest spend time to draw custom visualisations.

is_version_greater_or_equal_than(major, ...)

Check that we are runing engine as the minimum required version.

Attributes

mode

What is the current mode of the execution.

timed_task_context_manager

Python context manager for timed tasks.

engine_version

What TS engine the strategy is using.

parameters

Strategy parameters

grid_search

Is this backtest run part of a grid search group

optimiser

Is this backtest run part of a optimiser

jupyter

Are we running inside Jupyter notebook.

progress_bars

Render tqdm progress bars when running

live_trading

Are we doing live trading.

unit_test

mode: ExecutionMode#

What is the current mode of the execution.

timed_task_context_manager: Callable#

Python context manager for timed tasks.

Functions can use this context manager to add them to the tracing. Used for profiling the strategy code run-time performance.

Set default to tradeexecutor.utils.timer.timed_task(). which logs task duration using logging.INFO level.

engine_version: str#

What TS engine the strategy is using.

None means 0.1.

See tradeexecutor.strategy.engine_version.

parameters: tradeexecutor.strategy.parameters.StrategyParameters | None#

Strategy parameters

For backtesting/grid search cycle.

v0.4 only

Is this backtest run part of a grid search group

optimiser: bool#

Is this backtest run part of a optimiser

jupyter: bool#

Are we running inside Jupyter notebook.

  • We might have HTML widgets available like HTML progress bar

  • We have interactive prompts available

progress_bars: bool#

Render tqdm progress bars when running

Disabled in child worker process context.

is_version_greater_or_equal_than(major, minor, patch)[source]#

Check that we are runing engine as the minimum required version.

Parameters:
  • major (int) –

  • minor (int) –

  • patch (int) –

Return type:

bool

has_visualisation()[source]#

Should backtest spend time to draw custom visualisations.

  • Disabled for the grid search for the speed

Return type:

bool

property live_trading: bool#

Are we doing live trading.

This is a bit trickier, as live trading itself can have different phases with different execution modes.

Returns:

True if we doing live trading or paper trading.

False if we are operating on backtesting data.

__init__(mode, timed_task_context_manager=<function timed_task>, engine_version=None, parameters=None, grid_search=False, optimiser=False, jupyter=False, progress_bars=True)#
Parameters:
Return type:

None