Skip to content

FuturesChainFilterUniverse

QuantConnect.Securities.FuturesChainFilterUniverse

FuturesChainFilterUniverse(
    all_data: Sequence[
        QuantConnect_Securities_BaseFutureFilterUniverse_TData
    ],
    local_time: Union[datetime, date],
)

Bases: BaseFutureFilterUniverse[QuantConnect_Securities_FuturesChainFilterUniverse, FuturesContract]

Future contracts filter over the contracts of a FuturesChain, so chains offer the same filters as the futures universe selection (FutureFilterUniverse)

Constructs BaseFutureFilterUniverse

This Class is protected.

Parameters:

Name Type Description Default
all_data Sequence[QuantConnect_Securities_BaseFutureFilterUniverse_TData]

All data for the future contracts

required
local_time Union[datetime, date]

The current local time

required

count

count: int

The number of contracts in the universe

DEFAULT_EXPIRATION_TYPE

DEFAULT_EXPIRATION_TYPE: ContractExpirationType = ...

The default expiration type filter value

This Field is protected.

type

Expiration Types allowed through the filter Standards only by default

This Property is protected.

local_time

local_time: datetime

The local exchange current time

ContractExpirationType

Bases: IntEnum

Defines listed contract types with Flags attribute

This Class is protected.

STANDARD

STANDARD = 1

Standard contracts

WEEKLY

WEEKLY = 2

Non standard weekly contracts

create_data_instance

create_data_instance(
    symbol: Union[Symbol, str, BaseContract, Security],
) -> FuturesContract

Not supported: the chain filters only ever select contracts that are already in the chain

This Class is protected.

get_open_interest

get_open_interest(contract: FuturesContract) -> float

Gets the open interest of the given contract

This Class is protected.

get_volume

get_volume(contract: FuturesContract) -> float

Gets the volume of the given contract

This Class is protected.

expiration

expiration(
    min_expiry: timedelta, max_expiry: timedelta
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)
expiration(
    min_expiry_days: int, max_expiry_days: int
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)
expiration(
    expiries: List[datetime],
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Signature descriptions:

  • Applies filter selecting options contracts based on a range of expiration dates relative to the current day

  • Applies filter selecting contracts based on a range of expiration dates relative to the current day

  • Applies filter selecting the contracts expiring on any of the given dates. Time of day is ignored

Parameters:

Name Type Description Default
min_expiry Optional[timedelta]

The minimum time until expiry to include, for example, TimeSpan.FromDays(10)

None
max_expiry Optional[timedelta]

The maximum time until expiry to include, for example, TimeSpan.FromDays(10)

None
min_expiry_days Optional[int]

The minimum time, expressed in days, until expiry to include, for example, 10

None
max_expiry_days Optional[int]

The maximum time, expressed in days, until expiry to include, for example, 10

None
expiries Optional[List[datetime]]

The expiration dates

None

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

back_month

back_month() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Returns first of back month contracts

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

back_months

back_months() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Returns a list of back month contracts

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

expiring_after

expiring_after(
    date: Union[datetime, date],
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Applies filter selecting the contracts expiring after the given date, excluding it. Time of day is ignored

Parameters:

Name Type Description Default
date Union[datetime, date]

The date the expirations must be after

required

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

expiring_before

expiring_before(
    date: Union[datetime, date],
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Applies filter selecting the contracts expiring before the given date, excluding it. Time of day is ignored

Parameters:

Name Type Description Default
date Union[datetime, date]

The date the expirations must be before

required

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

farthest_expiration

farthest_expiration() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Returns the contracts of the farthest expiration

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

front_month

front_month() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Returns front month contract

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

oi

oi(
    min: int, max: int
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Applies filter selecting the contracts with open interest between the given range. Alias for open_interest

Parameters:

Name Type Description Default
min int

The minimum open interest value

required
max int

The maximum open interest value

required

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

open_interest

open_interest(
    min: int, max: int
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Applies filter selecting the contracts with open interest between the given range

Parameters:

Name Type Description Default
min int

The minimum open interest value

required
max int

The maximum open interest value

required

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

standards_only

standards_only() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Sets universe of standard contracts (if any) as selection Contracts by default are standards; only needed to switch back if changed

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

volume

volume(
    min: int, max: int
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Applies filter selecting the contracts with volume between the given range

Parameters:

Name Type Description Default
min int

The minimum volume

required
max int

The maximum volume

required

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

weeklys_only

weeklys_only() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Sets universe of weeklys contracts (if any) as selection

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

zero_dte

zero_dte() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Applies filter selecting the contracts expiring today

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

contract_months

contract_months(
    months: List[int],
) -> QuantConnect_Securities_BaseFutureFilterUniverse_TUniverse

Selects the contracts whose contract month is any of the given months of the year, see FutureExpirationCycles. Like expiration_cycle but by the contract month, the month the contract is named after, which for some products, e.g. crude oil, is the month after the expiration month, see FuturesExpiryUtilityFunctions.GetFutureContractMonth

Parameters:

Name Type Description Default
months List[int]

Months of the year to select contracts from

required

Returns:

Type Description
QuantConnect_Securities_BaseFutureFilterUniverse_TUniverse

Universe with filter applied.

expiration_cycle

expiration_cycle(
    months: List[int],
) -> QuantConnect_Securities_BaseFutureFilterUniverse_TUniverse

Applies filter selecting futures contracts based on expiration cycles. See FutureExpirationCycles for details

Parameters:

Name Type Description Default
months List[int]

Months to select contracts from

required

Returns:

Type Description
QuantConnect_Securities_BaseFutureFilterUniverse_TUniverse

Universe with filter applied.

__len__

__len__() -> int

contracts

contracts(
    contracts: Any,
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)
contracts(
    contracts: List[Symbol],
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)
contracts(
    contracts: List[
        QuantConnect_Securities_ContractSecurityFilterUniverse_TData
    ],
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)
contracts(
    contract_selector: Callable[
        [
            List[
                QuantConnect_Securities_ContractSecurityFilterUniverse_TData
            ]
        ],
        List[Symbol],
    ],
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)
contracts(
    contract_selector: Callable[
        [
            List[
                QuantConnect_Securities_ContractSecurityFilterUniverse_TData
            ]
        ],
        List[
            QuantConnect_Securities_ContractSecurityFilterUniverse_TData
        ],
    ],
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Signature descriptions:

  • Explicitly sets the selected contract symbols for this universe. This overrides and and all other methods of selecting symbols assuming it is called last.

  • Sets a function used to filter the set of available contract filters. The input to the 'contract_selector' function will be the already filtered list if any other filters have already been applied.

Parameters:

Name Type Description Default
contracts Optional[Any | List[Symbol] | List[QuantConnect_Securities_ContractSecurityFilterUniverse_TData]]

The option contract symbol objects to select

None
contract_selector Optional[Callable[[List[QuantConnect_Securities_ContractSecurityFilterUniverse_TData]], List[Symbol]] | Callable[[List[QuantConnect_Securities_ContractSecurityFilterUniverse_TData]], List[QuantConnect_Securities_ContractSecurityFilterUniverse_TData]]]

The option contract symbol objects to select

None

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

__iter__

__iter__() -> (
    Iterator[
        QuantConnect_Securities_ContractSecurityFilterUniverse_TData
    ]
)

adjust_expiration_reference_date

adjust_expiration_reference_date(
    reference_date: Union[datetime, date],
) -> datetime

Adjust the reference date used for expiration filtering. By default it just returns the same date.

This Class is protected.

Parameters:

Name Type Description Default
reference_date Union[datetime, date]

The reference date to be adjusted

required

Returns:

Type Description
datetime

The adjusted date.

get_enumerator

get_enumerator() -> (
    IEnumerator[
        QuantConnect_Securities_ContractSecurityFilterUniverse_TData
    ]
)

IEnumerable interface method implementation

Returns:

Type Description
IEnumerator[QuantConnect_Securities_ContractSecurityFilterUniverse_TData]

IEnumerator of Symbols in Universe.

get_last_trading_date

get_last_trading_date(
    contract: QuantConnect_Securities_ContractSecurityFilterUniverse_TData,
) -> datetime

Gets the date the given contract stops trading, used by the expiration filters. Defaults to the contract expiration date

This Class is protected.

Parameters:

Name Type Description Default
contract QuantConnect_Securities_ContractSecurityFilterUniverse_TData

The contract

required

Returns:

Type Description
datetime

The contract's last trading date.

include_weeklys

include_weeklys() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Includes universe of non-standard weeklys contracts (if any) into selection

IncludeWeeklys is obsolete because weekly contracts are now included by default.

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

in_range

in_range(
    selector: Callable[
        [
            QuantConnect_Securities_ContractSecurityFilterUniverse_TData
        ],
        float,
    ],
    min: float,
    max: float,
) -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Selects the contracts whose value, given by the selector, is within the given range. The selector runs once per contract

This Class is protected.

Parameters:

Name Type Description Default
selector Callable[[QuantConnect_Securities_ContractSecurityFilterUniverse_TData], float]

Gets the value of a contract

required
min float

The minimum value

required
max float

The maximum value

required

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

is_standard

is_standard(
    symbol: Union[Symbol, str, BaseContract, Security],
) -> bool

Determine if the given Future contract symbol is standard

This Class is protected.

Returns:

Type Description
bool

True if contract is standard.

only_apply_filter_at_market_open

only_apply_filter_at_market_open() -> (
    QuantConnect_Securities_ContractSecurityFilterUniverse_T
)

Instructs the engine to only filter contracts on the first time step of each market day.

Deprecated as of 2023-12-13. Filters are always non-dynamic as of now, which means they will only bee applied daily.

Returns:

Type Description
QuantConnect_Securities_ContractSecurityFilterUniverse_T

Universe with filter applied.

refresh

refresh(
    all_data: Sequence[
        QuantConnect_Securities_ContractSecurityFilterUniverse_TData
    ],
    local_time: Union[datetime, date],
) -> None

Refreshes this filter universe

Parameters:

Name Type Description Default
all_data Sequence[QuantConnect_Securities_ContractSecurityFilterUniverse_TData]

All data for contracts in the Universe

required
local_time Union[datetime, date]

The local exchange current time

required