StrategyModuleInformation#
API documentation for tradeexecutor.strategy.strategy_module.StrategyModuleInformation Python class in Trading Strategy framework.
- class StrategyModuleInformation[source]#
Bases:
object
Describe elements that we need to have in a strategy module.
The class variables are the same name as found in the Python strategy module. They can be uppercase or lowercase - all strategy module variables are exported as lowercase.
- __init__(path, source_code, trading_strategy_engine_version, trading_strategy_type, trading_strategy_cycle, decide_trades, create_trading_universe, trade_routing=None, chain_id=None, reserve_currency=None, backtest_start=None, backtest_end=None, initial_cash=None, name=None, short_description=None, long_description=None, icon=None, tags=None)#
- Parameters:
path (Path) –
trading_strategy_engine_version (str) –
trading_strategy_type (StrategyType) –
trading_strategy_cycle (CycleDuration) –
decide_trades (tradeexecutor.strategy.strategy_module.DecideTradesProtocol | tradeexecutor.strategy.strategy_module.DecideTradesProtocol2) –
create_trading_universe (CreateTradingUniverseProtocol) –
trade_routing (Optional[TradeRouting]) –
reserve_currency (Optional[ReserveCurrency]) –
tags (Optional[Set[StrategyTag]]) –
- Return type:
None
Methods
__init__
(path, source_code, ...[, ...])What backtest range this strategy defaults to
is_version_greater_or_equal_than
(major, ...)Check strategy module for its version compatibility.
validate
()Check that the user inputted variable names look good.
Validate that the module is backtest runnable.
Attributes
Only needed for backtests
Only needed for backtests
Blockchain id on which this strategy operates
Strategy icon
Only needed for backtests
Strategy long description
Strategy name
What currency we use for the strategy.
Strategy short description
Any tags on the strategy.
Routing hinting.
Path to the module
The source code of the strategy
The engine version this strategy requires.
Enable different strategy scripts.
trading_strategy_cycle
decide_trades
If execution_context.live_trading is true then this function is called for every execution cycle.
- source_code: Optional[str]#
The source code of the strategy
Can be set None for strategies that are not public.
- trading_strategy_engine_version: str#
The engine version this strategy requires.
Function signatures and results may be changed depending on for engine version the strategy is for.
See
SUPPORTED_TRADING_STRATEGY_ENGINE_VERSIONS
.
- trading_strategy_type: StrategyType#
Enable different strategy scripts.
If not set default to
StrategyType.managed_positions
.
- create_trading_universe: CreateTradingUniverseProtocol#
If execution_context.live_trading is true then this function is called for every execution cycle. If we are backtesting, then this function is called only once at the start of backtesting and the decide_trades need to deal with new and deprecated trading pairs.
- trade_routing: Optional[TradeRouting] = None#
Routing hinting.
Legacy option: most strategies can set this in
create_trading_universe()
. Default toTradeRouting.default
.
- chain_id: Optional[ChainId] = None#
Blockchain id on which this strategy operates
Valid for single chain strategies only
- reserve_currency: Optional[ReserveCurrency] = None#
What currency we use for the strategy.
Can be left out in new versions and is set in
create_trading_universe()
- name: Optional[str] = None#
Strategy name
Note that this must be also separately configured in the frontend user interface, as name is used before the strategy metadata is loaded.
- long_description: Optional[str] = None#
Strategy long description
Two paragraph description, may contain HTML.
- tags: Optional[Set[StrategyTag]] = None#
Any tags on the strategy.
Set for
tags
attribute of a strategy module.
- is_version_greater_or_equal_than(major, minor, patch)[source]#
Check strategy module for its version compatibility.
- validate()[source]#
Check that the user inputted variable names look good.
- Raises:
StrategyModuleNotValid – If we could not load/parse strategy module for some reason
- __init__(path, source_code, trading_strategy_engine_version, trading_strategy_type, trading_strategy_cycle, decide_trades, create_trading_universe, trade_routing=None, chain_id=None, reserve_currency=None, backtest_start=None, backtest_end=None, initial_cash=None, name=None, short_description=None, long_description=None, icon=None, tags=None)#
- Parameters:
path (Path) –
trading_strategy_engine_version (str) –
trading_strategy_type (StrategyType) –
trading_strategy_cycle (CycleDuration) –
decide_trades (tradeexecutor.strategy.strategy_module.DecideTradesProtocol | tradeexecutor.strategy.strategy_module.DecideTradesProtocol2) –
create_trading_universe (CreateTradingUniverseProtocol) –
trade_routing (Optional[TradeRouting]) –
reserve_currency (Optional[ReserveCurrency]) –
tags (Optional[Set[StrategyTag]]) –
- Return type:
None