Changes to the framework environment#

This page describes changes in v9 to framework environment parameters and their default values.

All changes are breaking, i.e. they may cause material changes to the strategy outputs.

Summary of changes

Section link

Environment parameters

v8 default

v9 default

[Transaction costs][1]

IGNORE_T_COSTS

True

False

[Transaction costs][1]

INCLUDE_STRATEGY_TCOST_DEFAULT

True

False

[LIBOR benchmarking][2]

LIBOR_SWITCHOVER_DATES

See example

See example

[Trading manager][3]

TM_TIMEZONE

'Europe/London'

'UTC'

[Trading manager][3]

TM_DISPLAY_TIMEZONE

Not used

'UTC'

[History data][4]

HISTORY_DATA_CLEAN

None

False

[History data][4]

HISTORY_SCHEDULE_BUILD_FROM_DATA

False

Removed

[Roll offset][5]

ROLL_OFFSET_INCLUDE_ROLL_END

False

Removed

See the sections below for details on each change.

Transaction costs: default settings changed#

When evaluating a strategy’s performance, the inclusion of transaction costs is controlled by two environment parameters:

  • IGNORE_T_COSTS: When True, transaction costs are disabled and the include_trading_costs parameter on strategies is ignored. When False, the transaction costs are included or excluded based on the value of include_trading_costs.

  • INCLUDE_STRATEGY_TCOST_DEFAULT: The default value of the include_trading_costs strategy parameter.

In v9, transaction costs are enabled by default (i.e. IGNORE_T_COSTS is now set to False). However, the default value of the include_trading_costs strategy parameter is False (i.e. INCLUDE_STRATEGY_TCOST_DEFAULT is False).

To include transaction costs when evaluating a strategy, you now need to specify include_transaction_costs=True when you create the strategy, unless the default value of INCLUDE_STRATEGY_TCOST_DEFAULT is overridden.

LIBOR benchmarking: updated LIBOR cessation dates#

SigTech framework v9 updates the default setting for the LIBOR_SWITCHOVER_DATES parameter. This parameter tells the SigTech framework when LIBOR will cease to be used as an interest rate benchmark for various currencies, including: AUD, CAD, CHF, CNY, DKK, EUR, GBP, HKD, JPY, KRW, NOK, NZD, SEK, SGD, USD, ZAR.

Strategies created with the RollingSwapStrategy class automatically trade OIS swaps after the LIBOR switchover date for the relevant currency.

The default LIBOR_SWITCHOVER_DATES setting uses official cessation dates for LIBOR benchmarking, where available. For currencies for which an official cessation date is not available, the setting uses December 31, 2024.

To see the LIBOR switchover dates for each currency:

import sigtech.framework as sig

print('Framework version:', sig.__version__.__version__)
env = sig.init()
env.config.get('LIBOR_SWITCHOVER_DATES')

Trading manager: default timezone changed and display timezone enabled#

Trading manager environment settings (identifiable by their TM_ prefix) control a collection of trading functionalities such as calendar, transaction timezone, and market open and close times used by strategies.

In v9, the default transaction timezone (TM_TIMEZONE) has changed from the London timezone to use UTC (i.e. 'UTC'). This ensures a fixed timezone throughout the year.

Framework v9 also enables use of the TM_DISPLAY_TIMEZONE parameter, which provides a default value for the timezone used by display methods available in the inspect strategy wrapper, such as trade_timings_df() and positions_df(), when the input parameter tzinfo is not supplied.

The default value for the TM_DISPLAY_TIMEZONE setting is 'UTC'.

History data#

History schedules: legacy flag removed#

In v9, the legacy environment parameter HISTORY_SCHEDULE_BUILD_FROM_DATA has been removed.

In v8, setting HISTORY_SCHEDULE_BUILD_FROM_DATA to True allowed an instrument’s history schedule, i.e. the dates on which its history is available, to be built from the dates in an instrument’s history data.

In v9, history schedules are always built from a calendar, not from instrument data, and the HISTORY_SCHEDULE_BUILD_FROM_DATA parameter is not required.

Instrument histories use raw data by default#

The environment parameter HISTORY_DATA_CLEAN sets whether to use raw data from the data providers or to use processed data from the SigTech cleaning data pipelines.

Since these pipelines are experimental and subject to continuous improvement, the default value for HISTORY_DATA_CLEAN in v9 is False, i.e. instrument histories use raw data by default.

Temporary roll offset parameter removed#

A temporary environment parameter, ROLL_OFFSET_INCLUDE_ROLL_END, was being used for development to check whether the front offset should include the roll end day when specifying the roll days. It is no longer required, and has been deprecated.