Path: blob/master/ invest-robot-contest_tinkoff-trading-bot-develop/app/strategies/strategy_fabric.py
5935 views
from typing import Dict12from app.strategies.interval.IntervalStrategy import IntervalStrategy3from app.strategies.base import BaseStrategy4from app.strategies.errors import UnsupportedStrategyError5from app.strategies.models import StrategyName67strategies: Dict[StrategyName, BaseStrategy.__class__] = {8StrategyName.INTERVAL: IntervalStrategy,9}101112def resolve_strategy(strategy_name: StrategyName, figi: str, *args, **kwargs) -> BaseStrategy:13"""14Creates strategy instance by strategy name. Passes all arguments to strategy constructor.1516:param strategy_name: the name of strategy. See :class:`app.strategies.models.StrategyName`17:param figi: the figi of the instrument strategy applied to18:return: strategy instance. See :class:`app.strategies.base.BaseStrategy`19:raises: :class:`app.strategies.errors.UnsupportedStrategyError` if the name is not supported20"""21if strategy_name not in strategies:22raise UnsupportedStrategyError(strategy_name)23return strategies[strategy_name](figi=figi, *args, **kwargs)242526