tastytrade.market_sessions

class tastytrade.market_sessions.ExchangeType(value)

Bases: StrEnum

Contains the valid exchanges to get futures market sessions for.

CFE = 'CFE'
CME = 'CME'
NYSE = 'Equity'
pydantic model tastytrade.market_sessions.MarketCalendar(*, half_days: list[date], holidays: list[date])

Bases: TastytradeData

Dataclass containing information about market holidays and shortened days.

Show JSON schema
{
   "title": "MarketCalendar",
   "description": "Dataclass containing information about market holidays and shortened days.",
   "type": "object",
   "properties": {
      "market-half-days": {
         "items": {
            "format": "date",
            "type": "string"
         },
         "title": "Market-Half-Days",
         "type": "array"
      },
      "market-holidays": {
         "items": {
            "format": "date",
            "type": "string"
         },
         "title": "Market-Holidays",
         "type": "array"
      }
   },
   "required": [
      "market-half-days",
      "market-holidays"
   ]
}

Fields:
field half_days : list[date] [Required] (alias 'market-half-days')
field holidays : list[date] [Required] (alias 'market-holidays')
pydantic model tastytrade.market_sessions.MarketSession(*, close_at: datetime | None = None, close_at_ext: datetime | None = None, instrument_collection: str, open_at: datetime | None = None, start_at: datetime | None = None, next_session: MarketSessionSnapshot | None = None, previous_session: MarketSessionSnapshot | None = None, state: MarketStatus)

Bases: TastytradeData

Dataclass representing the current, next, and previous sessions.

Show JSON schema
{
   "title": "MarketSession",
   "description": "Dataclass representing the current, next, and previous sessions.",
   "type": "object",
   "properties": {
      "close-at": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Close-At"
      },
      "close-at-ext": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Close-At-Ext"
      },
      "instrument-collection": {
         "title": "Instrument-Collection",
         "type": "string"
      },
      "open-at": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Open-At"
      },
      "start-at": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Start-At"
      },
      "next-session": {
         "anyOf": [
            {
               "$ref": "#/$defs/MarketSessionSnapshot"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "previous-session": {
         "anyOf": [
            {
               "$ref": "#/$defs/MarketSessionSnapshot"
            },
            {
               "type": "null"
            }
         ],
         "default": null
      },
      "state": {
         "$ref": "#/$defs/MarketStatus"
      }
   },
   "$defs": {
      "MarketSessionSnapshot": {
         "description": "Dataclass containing information about the upcoming or previous market session.",
         "properties": {
            "close-at": {
               "format": "date-time",
               "title": "Close-At",
               "type": "string"
            },
            "close-at-ext": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Close-At-Ext"
            },
            "instrument-collection": {
               "title": "Instrument-Collection",
               "type": "string"
            },
            "open-at": {
               "format": "date-time",
               "title": "Open-At",
               "type": "string"
            },
            "session-date": {
               "format": "date",
               "title": "Session-Date",
               "type": "string"
            },
            "start-at": {
               "format": "date-time",
               "title": "Start-At",
               "type": "string"
            }
         },
         "required": [
            "close-at",
            "instrument-collection",
            "open-at",
            "session-date",
            "start-at"
         ],
         "title": "MarketSessionSnapshot",
         "type": "object"
      },
      "MarketStatus": {
         "description": "Contains the valid market status values.",
         "enum": [
            "Open",
            "Closed",
            "Pre-market",
            "Extended"
         ],
         "title": "MarketStatus",
         "type": "string"
      }
   },
   "required": [
      "instrument-collection",
      "state"
   ]
}

Fields:
field close_at : datetime | None = None (alias 'close-at')
field close_at_ext : datetime | None = None (alias 'close-at-ext')
field instrument_collection : str [Required] (alias 'instrument-collection')
field next_session : MarketSessionSnapshot | None = None (alias 'next-session')
field open_at : datetime | None = None (alias 'open-at')
field previous_session : MarketSessionSnapshot | None = None (alias 'previous-session')
field start_at : datetime | None = None (alias 'start-at')
field status : MarketStatus [Required] (alias 'state')
pydantic model tastytrade.market_sessions.MarketSessionSnapshot(*, close_at: datetime, close_at_ext: datetime | None = None, instrument_collection: str, open_at: datetime, session_date: date, start_at: datetime)

Bases: TastytradeData

Dataclass containing information about the upcoming or previous market session.

Show JSON schema
{
   "title": "MarketSessionSnapshot",
   "description": "Dataclass containing information about the upcoming or previous market session.",
   "type": "object",
   "properties": {
      "close-at": {
         "format": "date-time",
         "title": "Close-At",
         "type": "string"
      },
      "close-at-ext": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Close-At-Ext"
      },
      "instrument-collection": {
         "title": "Instrument-Collection",
         "type": "string"
      },
      "open-at": {
         "format": "date-time",
         "title": "Open-At",
         "type": "string"
      },
      "session-date": {
         "format": "date",
         "title": "Session-Date",
         "type": "string"
      },
      "start-at": {
         "format": "date-time",
         "title": "Start-At",
         "type": "string"
      }
   },
   "required": [
      "close-at",
      "instrument-collection",
      "open-at",
      "session-date",
      "start-at"
   ]
}

Fields:
field close_at : datetime [Required] (alias 'close-at')
field close_at_ext : datetime | None = None (alias 'close-at-ext')
field instrument_collection : str [Required] (alias 'instrument-collection')
field open_at : datetime [Required] (alias 'open-at')
field session_date : date [Required] (alias 'session-date')
field start_at : datetime [Required] (alias 'start-at')
class tastytrade.market_sessions.MarketStatus(value)

Bases: StrEnum

Contains the valid market status values.

CLOSED = 'Closed'
EXTENDED = 'Extended'
OPEN = 'Open'
PRE_MARKET = 'Pre-market'
async tastytrade.market_sessions.get_futures_holidays(session: Session, exchange: ExchangeType) MarketCalendar

Retrieves market calendar for half days and holidays for a futures exchange.

Parameters:
session: Session

active user session to use

exchange: ExchangeType

exchange to fetch calendar for

async tastytrade.market_sessions.get_market_holidays(session: Session) MarketCalendar

Retrieves market calendar for half days and holidays.

Parameters:
session: Session

active user session to use

async tastytrade.market_sessions.get_market_sessions(session: Session, exchanges: Iterable[ExchangeType]) list[MarketSession]

Retrieves a list of session timings for the given exchanges.

Parameters:
session: Session

active user session to use

exchanges: Iterable[ExchangeType]

the list of exchanges to get market sessions for