import decimal
import enum
import typing
Ticker = typing.NewType("Ticker", str)
GSID = typing.NewType("GSID", typing.Any)
CurrencyQty = typing.NewType("CurrencyQty", decimal.Decimal)
Multiplier = typing.NewType("Multiplier", decimal.Decimal)
Size = typing.NewType("Size", decimal.Decimal)
[docs]class SecurityType(int, enum.Enum):
UNKNOWN = 0
COMMODITY = 1
CURRENCY = 2
DEBT = 3
EQUITY = 4
DERIVATIVE = 5
ALTERNATIVE = 6
INDEX = 7
STRUCTURE = 10
BASKET = 12
[docs]class SecuritySubtype(int, enum.Enum):
# Reserved 0-999
UNKNOWN = 0
DERIVED_INDEX = 10
OVERNIGHT_RATE = 80
TERM_RATE = 85
SOFT_COMMODITY = 110
ENERGY = 115
METAL = 120
GRAIN = 125
LIVESTOCK = 130
# Currencies
NATIONAL_FIAT = 505
CRYPTOCURRENCY = 510
# Equity 1000-2000
COMMON_STOCK = 1005
PREFERRED_STOCK = 1010
ETP = 1020
# Equity Derivatives
# Futures
FUTURE = 2001
SINGLE_STOCK_FUTURE = 2002
PERPETUAL_FUTURE = 2003
FORWARD = 2010
INDEX_OPTION = 2030
EQUITY_OPTION = 2040
CURRENCY_OPTION = 2050
[docs]class SettlementType(int, enum.Enum):
UNKNOWN = 0
CASH = 1
PHYSICAL = 2
[docs]class SecurityIdentifierType(int, enum.Enum):
UNKNOWN = 0
FIGI = 2
ISIN = 3
CUSIP = 4
OCC = 5
[docs]class OptionFlavor(int, enum.Enum):
UNKNOWN = 0
PUT = 1
CALL = 2
[docs]class OptionExerciseStyle(int, enum.Enum):
UNKNOWN = 0
EUROPEAN = 1
AMERICAN = 2
BERMUDAN = 3
[docs]class ExpirySeriesType(int, enum.Enum):
UNKNOWN = 0
QUARTERLY = 10
MONTHLY = 20
WEEKLY = 30
[docs]class ExpiryTimeOfDay(int, enum.Enum):
UNKNOWN = 0
OPEN = 1
EDSP = 2
CLOSE = 3
option_subtypes = (
SecuritySubtype.EQUITY_OPTION,
SecuritySubtype.INDEX_OPTION,
SecuritySubtype.CURRENCY_OPTION,
)
future_subtypes = (
SecuritySubtype.FUTURE,
SecuritySubtype.SINGLE_STOCK_FUTURE,
SecuritySubtype.PERPETUAL_FUTURE,
SecuritySubtype.FORWARD,
)