BasketConfig#

class sigtech.framework.strategies.basket_config.BasketConfig

Wrapper for discretionary strategy inputs.

This class is supposed to be a general class for strategy configuration, but at the moment it’s only being used for strategies.flexible_basket.FlexibleBasket.

Once another Config use-case comes along, you’ll want to factor out all methods (except _invent_sector and _invent_ticker) into a subclass, something like

input_dict: dict
get()

Currently, the input_dict is stored in ‘row-orientation’. Convert it to column-orientation.

static allocation_eq(left_alloc, right_alloc)

Compare two (allocation_type, allocation_list) pairs.

Allocation lists with the same values but different ordering are considered equal.

Parameters
  • left_alloc – First allocation pair.

  • right_alloc – Second allocation pair.

Returns

bool.

save_csv(output_filepath=None)

Create a CSV suitable for processing by sigtech.framework.tasks.static_changes.static_changes_handler.process_single_file().

update_allocation_for_date(date, allocation_type, allocation_list)

Update a copy of the input_dict, validate, then replace if passes.

Parameters
  • allocation_type – One of 'weight', 'weight_selective', 'variance_allocation' or 'variance_allocation_selective'.

  • allocation_list – e.g. [(0.1,  'STRAT1 STRATEGY'), (0.05, 'STRAT2 STRATEGY')].

replace_ticker(old_ticker, new_ticker)

Update a copy of the input_dict, replacing ticker, validate, then replace if passes.

Parameters
  • old_ticker – Old ticker to replace.

  • new_ticker – Replacement ticker.

full_allocation()

Calculate the fully-specified allocation from _selective (diff-style) allocation types.

as_timeseries()

Return a time-series version of the full allocation.

available_data_providers(entitled_only=True) Optional[List[str]]

Available data providers for this object. Bool to return entitled providers only

property cache_name: str

Cache name of this object.

property class_name

Class name of this object.

property class_short_name

Short name of the object class.

clear_cached_data()

Clear all the cached data of the object.

clone_object(params=None)

Return a clone of the object with amended parameters.

Parameters

params – Optional dictionary of parameters to override.

Returns

New object.

compute_dependencies(root_dependency: Optional[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency] = None)

Compute these dependencies - triggers MDS requests

static convert_dtypes(clz)

Class decorator to convert classes’ BaseType into variable annotations (PEP-526), and to generate __aliases__ based on BaseType.db_name when required.

data_dict()

Return the object attributes in a dict.

property data_source

Field used when retrieving history.

dependencies(input_dependency: Optional[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency] = None, valuation_currency: Optional[str] = None, use_start: bool = True) list[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency]

Returns a list of Dependency

Parameters
  • input_dependency – A Dependency object representing the root of the dependency tree to be returned.

  • valuation_currency – If supplied, include the dependencies required to output the data in this currency.

  • use_start – If False, return only dependencies required to calculate an earliest start date - self.start_date will be None in this case.

Returns

List of Dependency objects representing the current level in the dependency tree.

property dependency_type

Should return GraphNodeType. Return None to autodetect based on result of dependencies()

property env: sigtech.framework.config.config.ConfiguredEnvironment

Return the configured environment.

env_date_change(old_env_dt: datetime.datetime, new_env_dt: datetime.datetime, live_data_update=None)

Routine called after the environment date is changed.

Parameters
  • old_env_dt – Old datetime (tz aware).

  • new_env_dt – New datetime (tz aware).

  • live_data_update – Live streaming data associated with the environment date change.

finalize_for_comparison()

Method to call to ensure all data dict values are finalized prior to doing object comparisons.

classmethod from_dictionary(dct: dict[str, Any], cache: bool = True, identifier: Optional[sigtech.framework.infra.data_adapter.identifier.Identifier] = None, env: Optional[sigtech.framework.config.config.ConfiguredEnvironment] = None, **kwargs)

Factory method to create object using data dictionary

classmethod get_names(sort_by_group: Optional[bool] = False, include_db: Optional[bool] = True, include_local: Optional[bool] = True, include_children: Optional[bool] = False, ignore_unmapped: Optional[bool] = True) list[str]

Return an ordered list of object names associated with the class.

Parameters
  • sort_by_group – If set, the list is first ordered by sector/group, if applies, e.g. commodity or index futures (default is False).

  • include_db – If set, include objects available from the database (default is True).

  • include_local – If set, include objects available in the local environment (default is True).

  • include_children – If set, include objects available from child classes (default is False).

  • ignore_unmapped – If set, ignore errors due to unmapped database objects (default is True).

Returns

List of object names.

property identifier: sigtech.framework.infra.data_adapter.identifier.Identifier

Return the object identifier.

info() dict

Return a dictionary with useful object information.

property input_parameters

Values of initial input parameters entered when creating the instance.

property internal_id

Ticker - i.e. part of name determining content of the class. For types with saved reference data - ticker will be self._ticker. For software types - ticker should be calculated.

property is_unmapped

Check if the object is not mapped.

property live_supported: bool

Flag for live supported objects.

property name

Primary name by which the FrameworkObject is identified. If reference information (or e.g. corresponding time series) are stored in the DB, then this name will be used.

print_dependencies(root_dependency: Optional[sigtech.framework.internal.infra.mu.graph.registry.factory.Dependency] = None, resolve_future_dependencies: bool = True, fields: Optional[list] = None)

Pretty print dependency tree :param root_dependency: starting dependency of the tree. :param resolve_future_dependencies: resolve future dependencies before printing. If ‘false’ nothing get printed. :param fields: additional fields to extract from dependencies object. Default fields are product_type, currency, frequency and data_source. To get the list of available fields for an object you can use the data_dict() method.

property product_type

Return the product_type property of this object.

property sector

Sector used on BBG, or the class ID for SIG instruments.

static sort_key_static(name)

Convert a name to the sort key as of Portfolio Presentation Guidelines for performance reasons.

Parameters

name – Input name.

Returns

Tuple (sort key, length of sort key, input name).

textual_representation()

Return a printable representation of this object.

validate()

Validation routine adding checks that will be run on object creation.

instrument_id: Optional[int]