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, jupyter=False)#
Parameters:
Return type:

None

Methods

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

is_version_greater_or_equal_than(major, ...)

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

timed_task_context_manager(**context_info)

A simple context manger to measure the duration of different tasks.

Attributes

engine_version

What TS engine the strategy is using.

grid_search

Is this backtest run part of a grid search group

jupyter

Are we running inside Jupyter notebook.

live_trading

Are we doing live trading.

parameters

Strategy parameters

unit_test

mode

What is the current mode of the execution.

mode: ExecutionMode#

What is the current mode of the execution.

timed_task_context_manager(**context_info)#

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.

Parameters:

task_name (str) –

Return type:

AbstractContextManager[None]

engine_version: str = None#

What TS engine the strategy is using.

None means 0.1.

See tradeexecutor.strategy.engine_version.

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

Strategy parameters

For backtesting/grid search cycle.

v0.4 only

Is this backtest run part of a grid search group

jupyter: bool = False#

Are we running inside Jupyter notebook.

  • We might have HTML widgets available like HTML progress bar

  • We have interactive prompts available

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

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, jupyter=False)#
Parameters:
Return type:

None