Future

Future#

class sigtech.framework.instruments.futures.Future

Baseclasses: TradableInstrument

Subclasses: BondFuture, CommodityFuture, CryptocurrencyFuture, EquityIndexFuture, FXFuture, InterestRateFuture, VolatilityIndexFuture

Future instrument class.

Keyword arguments:

  • expiry_date_stored - last trading date of the future

  • first_delivery_notice_date_stored - first day on which a notice of intent to deliver can be made

  • futvalpt_raw - Value change in one tradable futures contract per 1.0 point move in the price

  • internal_ticker - internal SIG ticker

  • contract_code - future strip identifier string

  • contract_size - contract size of one tradable futures contract

  • first_delivery_date - defines start of delivery period

  • last_delivery_date - defines end of delivery period

  • first_trade_date - first date the contract got listed (optional)

  • activity fields - fields used for activity information, ie Volume, OpenInterest, etc.

For example object creation, see examples in the derived classes, e.g. CommodityFuture, EquityIndexFuture, …

activity_fields: Optional[list[str]]
property available_data_points

The data points available for this instrument

contract_code: str
property contract_month_code

The future contract code corresponding to its contract month.

property contract_sector: str

Contract sector of the future instrument.

contract_size: Optional[float]
property default_data_point

The default data point for this instrument

property exchange_close

The time of day that the instrument closes for trading on its exchange.

property expiry_date: date

Expiry date of the contract. Will get the expiry date in the following order of priority:

  1. Stored expiry date (in database).

  2. Calculated expiry date from parent group’s rules.

Group’s rules will default to last BD of month unless set otherwise.

Returns:

Expiry datetime

expiry_date_stored: Optional[date]
first_delivery_date: Optional[date]
property first_delivery_notice_date: date
Returns:

First day on which a notice of intent to deliver can be made

first_delivery_notice_date_stored: Optional[date]
first_trade_date: Optional[date]
futvalpt_raw: Optional[Union[float, int, str]]
group_name: Optional[str]
property holidays

List of holiday calendars for this instrument.

last_delivery_date: Optional[date]
tick_size: Optional[float]
property use_history_schedule: bool

Indicates if schedule is driven by data points.

property valuation_time

Valuation time for the instrument in line with settlement time.

calendar_schedule() Schedule

A calendar schedule - a schedule that is corresponding to a history schedule, but without min and max dates set.

Returns:

Calendar schedule instance for the instrument

contract_expiry_code()

The future contract expiry code.

first_delivery_notice_date_calculated() date

Calculates the first delivery notice (FND) date using the group’s FND rules.

Returns:

First day on which a notice of intent to deliver can be made

fut_val_pt(d: date) float
Parameters:

d – Reference date

Returns:

Adjusted value change by price factor for 1.0 point move in the future price

get_clip_size_for_quantity(quantity: float, market_impact: Optional[dict] = None)
Parameters:
  • quantity – traded quantity

  • market_impact – Input market impact dictionary

Returns:

Clip size used for market impact lookup

last_non_delivery_dt() date
Returns:

Datetime for last tradable datetime where no physical delivery can be made

next_available_contract() Self

Next futures contract with expiry date greater than the current expiry date.

next_contract() Self

Next contract to the one currently expiring.

prev_available_contract() Self

Previous contract with expiry date less than the current expiry date.

prev_contract() Self

Previous contract to the one currently expiring.

trade_schedule() Schedule

Schedule giving trade dates + last time at which we can trade for that date (i.e. notice time for funds).

Returns:

Trade schedule instance for the instrument

validate()

Perform validation checks on the instrument, e.g. expiry date <= contract date.

yield_to_price(quoted_price: float, **args) float

Price from yield quoted price.

Parameters:

quoted_price – Quoted price.

Returns:

Calculated price.