"""
Copyright 2019 Goldman Sachs.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
"""
from gs_quant.base import *
from gs_quant.common import *
import datetime
from typing import Dict, Optional, Tuple, Union
from dataclasses import dataclass, field
from dataclasses_json import LetterCase, config, dataclass_json
from gs_quant.instrument.core import Instrument
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqSyntheticOETTerms(Instrument):
client_fee: Optional[str] = field(default=None, metadata=field_metadata)
client_notice: Optional[str] = field(default=None, metadata=field_metadata)
client_terms: Optional[str] = field(default=None, metadata=field_metadata)
firm_fee: Optional[str] = field(default=None, metadata=field_metadata)
firm_notice: Optional[str] = field(default=None, metadata=field_metadata)
firm_terms: Optional[str] = field(default=None, metadata=field_metadata)
oet_type: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.SyntheticOETTerms, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqSyntheticSchedule(Instrument):
period: Optional[str] = field(default=None, metadata=field_metadata)
delay: Optional[str] = field(default=None, metadata=field_metadata)
date_rule: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.SyntheticSchedule, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXCorrelationSwapLeg(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.CorrelationSwapLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class AssetRef(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
product_code: Optional[ProductCode] = field(default=None, metadata=field_metadata)
size: Optional[float] = field(default=None, metadata=field_metadata)
asset_id: Optional[str] = field(default=None, metadata=field_metadata)
number_of_options: Optional[float] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Cross_Asset, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Any, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class Bond(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
identifier: Optional[str] = field(default=None, metadata=field_metadata)
identifier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
size: Optional[float] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Cross_Asset, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Bond, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class Cash(Instrument):
currency: Optional[Currency] = field(default=None, metadata=field_metadata)
payment_date: Optional[datetime.date] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Cash, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Cash, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CommodOTCOptionPeriod(Instrument):
start: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
end: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
contract: Optional[str] = field(default=None, metadata=field_metadata)
quantity: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.OptionPeriod, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CommodOTCSwapLeg(Instrument):
fixing_currency: Optional[CurrencyName] = field(default=None, metadata=field_metadata)
leg_description: Optional[str] = field(default=None, metadata=field_metadata)
contract: Optional[str] = field(default=None, metadata=field_metadata)
fixing_currency_source: Optional[str] = field(default=None, metadata=field_metadata)
underlier: Optional[str] = field(default=None, metadata=field_metadata)
quantity_multiplier: Optional[int] = field(default=None, metadata=field_metadata)
fixed_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.SwapLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CommodSwap(Instrument):
commodity: Optional[str] = field(default=None, metadata=field_metadata)
quantity: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
contract: Optional[str] = field(default=None, metadata=field_metadata)
fixing_currency_source: Optional[str] = field(default=None, metadata=field_metadata)
start: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_type: Optional[str] = field(default=None, metadata=field_metadata)
number_of_periods: Optional[int] = field(default=None, metadata=field_metadata)
quantity_unit: Optional[str] = field(default=None, metadata=field_metadata)
fixed_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement: Optional[str] = field(default=None, metadata=field_metadata)
fixing_currency: Optional[str] = field(default=None, metadata=field_metadata)
fixed_price_unit: Optional[str] = field(default=None, metadata=field_metadata)
commodity_reference_price: Optional[str] = field(default=None, metadata=field_metadata)
end: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
quantity_period: Optional[Period] = field(default=None, metadata=field_metadata)
strategy: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
buy_sells: Optional[Tuple[str, ...]] = field(default=None, metadata=field_metadata)
underlier_short_name: Optional[str] = field(default=None, metadata=field_metadata)
settlement_days: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_days_type: Optional[str] = field(default=None, metadata=field_metadata)
settlement_days_from: Optional[str] = field(default=None, metadata=field_metadata)
settlement_frequency: Optional[str] = field(default=None, metadata=field_metadata)
currency_summary: Optional[CurrencyName] = field(default=None, metadata=field_metadata)
native_quantity_unit: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Swap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqAutoroll(Instrument):
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
first_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
last_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixing_frequency: Optional[str] = field(default=None, metadata=field_metadata)
trigger_level: Optional[float] = field(default=None, metadata=field_metadata)
buffer_level: Optional[float] = field(default=None, metadata=field_metadata)
local_return_cap: Optional[float] = field(default=None, metadata=field_metadata)
upside_leverage: Optional[float] = field(default=None, metadata=field_metadata)
initial_fixing_override: Optional[float] = field(default=None, metadata=field_metadata)
apply_trigger_level_shift: Optional[str] = field(default=None, metadata=field_metadata)
trigger_level_shift: Optional[float] = field(default=None, metadata=field_metadata)
notional: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
business_day_calendar: Optional[str] = field(default=None, metadata=field_metadata)
payment_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_delay: Optional[str] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
premium: Optional[float] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Autoroll, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqBinary(Instrument):
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
currency: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Binary, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqCliquet(Instrument):
return_style: Optional[ReturnStyle] = field(default=ReturnStyle.Rate_of_Return, metadata=field_metadata)
last_valuation_date: Optional[datetime.date] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
payment_frequency: Optional[PaymentFrequency] = field(default=PaymentFrequency.Maturity, metadata=field_metadata)
global_cap: Optional[float] = field(default=1000000.0, metadata=field_metadata)
first_valuation_date: Optional[datetime.date] = field(default=None, metadata=field_metadata)
currency: Optional[Currency] = field(default=None, metadata=field_metadata)
global_floor: Optional[float] = field(default=-1000000.0, metadata=field_metadata)
strike_price: Optional[float] = field(default=None, metadata=field_metadata)
return_type: Optional[ReturnType] = field(default=ReturnType.Sum, metadata=field_metadata)
valuation_period: Optional[str] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium: Optional[float] = field(default=0.0, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Cliquet, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqConvertibleBond(Instrument):
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
premium_settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
ref_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
quantity: Optional[float] = field(default=None, metadata=field_metadata)
isin: Optional[str] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
denominated: Optional[Currency] = field(default=None, metadata=field_metadata)
multiplier: Optional[float] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Convertible, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqForward(Instrument):
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
forward_price: Optional[float] = field(default=None, metadata=field_metadata)
number_of_shares: Optional[int] = field(default=1, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Forward, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqFuture(Instrument):
identifier: Optional[str] = field(default=None, metadata=field_metadata)
identifier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
underlier: Optional[str] = field(default=None, metadata=field_metadata)
multiplier: Optional[float] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
quantity: Optional[float] = field(default=None, metadata=field_metadata)
currency: Optional[Currency] = field(default=None, metadata=field_metadata)
traded_price: Optional[float] = field(default=0.0, metadata=field_metadata)
total_quantity: Optional[float] = field(default=None, metadata=field_metadata)
trade_as: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Future, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqOption(Instrument):
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
option_style: Optional[OptionStyle] = field(default=None, metadata=field_metadata)
number_of_options: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
exchange: Optional[str] = field(default=None, metadata=field_metadata)
multiplier: Optional[float] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium: Optional[float] = field(default=0.0, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
valuation_time: Optional[ValuationTime] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
trade_as: Optional[TradeAs] = field(default=None, metadata=field_metadata)
future_contract: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Option, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
def scale_in_place(self, scaling: Optional[float] = None):
if self.unresolved is None:
raise RuntimeError('Can only scale resolved instruments')
if scaling is None or scaling == 1:
return
if scaling < 0:
flip_dict = {BuySell.Buy: BuySell.Sell, BuySell.Sell: BuySell.Buy}
self.buy_sell = flip_dict[self.buy_sell]
self.number_of_options *= abs(scaling)
return
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqOptionLeg(Instrument):
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_style: Optional[OptionStyle] = field(default=None, metadata=field_metadata)
multiplier: Optional[float] = field(default=None, metadata=field_metadata)
number_of_options: Optional[float] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
valuation_time: Optional[ValuationTime] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium: Optional[float] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
trade_as: Optional[TradeAs] = field(default=None, metadata=field_metadata)
exchange: Optional[str] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.OptionLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqStock(Instrument):
identifier: Optional[str] = field(default=None, metadata=field_metadata)
identifier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
traded_price: Optional[float] = field(default=0.0, metadata=field_metadata)
currency: Optional[Currency] = field(default=None, metadata=field_metadata)
quantity: Optional[float] = field(default=None, metadata=field_metadata)
settlement_date: Optional[datetime.date] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Single_Stock, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqSyntheticLeg(Instrument):
schedule_type: Optional[str] = field(default=None, metadata=field_metadata)
first_roll_date: Optional[str] = field(default=None, metadata=field_metadata)
first_roll_date_day_of_month: Optional[float] = field(default=None, metadata=field_metadata)
payment_schedule: Optional[Tuple[EqSyntheticSchedule, ...]] = field(default=None, metadata=field_metadata)
reset_schedule: Optional[Tuple[EqSyntheticSchedule, ...]] = field(default=None, metadata=field_metadata)
valuation_schedule: Optional[Tuple[EqSyntheticSchedule, ...]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.SyntheticLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqVarianceSwap(Instrument):
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
variance_cap: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
days_in_contract: Optional[float] = field(default=None, metadata=field_metadata)
valuation_time: Optional[ValuationTime] = field(default=None, metadata=field_metadata)
denominated: Optional[Currency] = field(default=None, metadata=field_metadata)
fixing_schedule_dates: Optional[Tuple[str, ...]] = field(default=None, metadata=field_metadata)
holiday_calendar: Optional[str] = field(default=None, metadata=field_metadata)
initial_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
quantity: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
initial_spot: Optional[float] = field(default=None, metadata=field_metadata)
expiry_settlement_days: Optional[str] = field(default=None, metadata=field_metadata)
initial_spot_valuation_time: Optional[ValuationTime] = field(default=None, metadata=field_metadata)
force_forward_tradable: Optional[bool] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.VarianceSwap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqVolatilitySwap(Instrument):
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
variance_cap: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
days_in_contract: Optional[float] = field(default=None, metadata=field_metadata)
valuation_time: Optional[ValuationTime] = field(default=None, metadata=field_metadata)
denominated: Optional[Currency] = field(default=None, metadata=field_metadata)
fixing_schedule_dates: Optional[Tuple[str, ...]] = field(default=None, metadata=field_metadata)
holiday_calendar: Optional[str] = field(default=None, metadata=field_metadata)
initial_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
quantity: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
initial_spot: Optional[float] = field(default=None, metadata=field_metadata)
expiry_settlement_days: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.VolatilitySwap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXAccumulatorScheduleLeg(Instrument):
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
european_knock_in: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
knock_out_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
leverage_ratio: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.AccumulatorScheduleLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXBinary(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Binary, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXCorrelationSwap(Instrument):
legs: Tuple[FXCorrelationSwapLeg, ...] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
strike_corr: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
first_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
last_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixing_source: Optional[str] = field(default=None, metadata=field_metadata)
fixing_frequency: Optional[str] = field(default=None, metadata=field_metadata)
calculate_mean_return: Optional[float] = field(default=0.0, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=0, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.CorrelationSwap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXDoubleKnockout(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
knock_in_or_out: Optional[InOut] = field(default=None, metadata=field_metadata)
lower_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
knockout_convention: Optional[KnockoutConvention] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.DoubleKnockout, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXDoubleOneTouch(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
lower_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
payout_type: Optional[PayoutType] = field(default=None, metadata=field_metadata)
knockout_convention: Optional[KnockoutConvention] = field(default=None, metadata=field_metadata)
touch_or_no_touch: Optional[TouchNoTouch] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.DoubleTouch, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXDualDoubleKnockoutLeg(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
lower_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
knockout_convention: Optional[KnockoutConvention] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.DualDoubleKnockoutLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXEuropeanKnockout(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
expiration_date: Optional[str] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
knock_up_or_down: Optional[UpDown] = field(default=None, metadata=field_metadata)
knock_in_or_out: Optional[InOut] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.EuropeanKnockout, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXForward(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
forward_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount_in_other_currency: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Forward, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXKnockout(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
knock_in_or_out: Optional[InOut] = field(default=None, metadata=field_metadata)
knock_up_or_down: Optional[UpDown] = field(default=None, metadata=field_metadata)
barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
knockout_convention: Optional[KnockoutConvention] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Knockout, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXMultiCrossBinaryLeg(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixing_source: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.MultiCrossBinaryLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXMultiCrossDoubleBinaryLeg(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
lower_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixing_source: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.MultiCrossDoubleBinaryLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXMultiCrossDoubleOneTouchLeg(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
lower_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
knockout_convention: Optional[KnockoutConvention] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.MultiCrossDoubleTouchLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXOneTouch(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
knock_up_or_down: Optional[UpDown] = field(default=None, metadata=field_metadata)
knockout_convention: Optional[KnockoutConvention] = field(default=None, metadata=field_metadata)
touch_or_no_touch: Optional[TouchNoTouch] = field(default=None, metadata=field_metadata)
payout_type: Optional[PayoutType] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.OneTouch, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXOption(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount_in_other_currency: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
exercise_style: Optional[OptionExerciseStyle] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Option, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXOptionLeg(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount_in_other_currency: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
exercise_style: Optional[OptionExerciseStyle] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.OptionLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXPivotScheduleLeg(Instrument):
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
lower_leverage_ratio: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
lower_knock_in: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
lower_strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
pivot: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_knock_in: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_leverage_ratio: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.PivotScheduleLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXShiftingBermForward(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount_in_other_currency: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
window_start_date: Optional[str] = field(default=None, metadata=field_metadata)
exercise_decision_freq: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.ShiftingBermForward, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXTarfScheduleLeg(Instrument):
profit_strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
loss_strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
european_knock_in: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
leverage_ratio: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.TarfScheduleLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXVarianceSwap(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
strike_vol: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
first_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
last_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixing_source: Optional[str] = field(default=None, metadata=field_metadata)
fixing_frequency: Optional[str] = field(default=None, metadata=field_metadata)
annualization_factor: Optional[float] = field(default=None, metadata=field_metadata)
calculate_mean_return: Optional[float] = field(default=0.0, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=0, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.VarianceSwap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXVolatilitySwap(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
strike_vol: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
first_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
last_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixing_source: Optional[str] = field(default=None, metadata=field_metadata)
fixing_frequency: Optional[str] = field(default=None, metadata=field_metadata)
annualization_factor: Optional[float] = field(default=None, metadata=field_metadata)
calculate_mean_return: Optional[float] = field(default=0.0, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=0, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.VolatilitySwap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXWorstOfKOLeg(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
knock_up_or_down: Optional[UpDown] = field(default=None, metadata=field_metadata)
knock_in_or_out: Optional[InOut] = field(default=None, metadata=field_metadata)
barrier_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
knockout_convention: Optional[KnockoutConvention] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.WorstOfKOLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXWorstOfLeg(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
notional_scale_factor: Optional[float] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.WorstOfLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class Forward(Instrument):
currency: Optional[Currency] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Cash, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Forward, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRBondFuture(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
currency: Optional[Currency] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
exchange: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.BondFuture, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRCap(Instrument):
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
cap_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Cap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRFloor(Instrument):
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
floor_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Floor, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class InflationSwap(Instrument):
pay_or_receive: Optional[PayReceive] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
index: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fixed_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixed_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
base_cpi: Optional[float] = field(default=None, metadata=field_metadata)
clearing_house: Optional[SwapClearingHouse] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.InflationSwap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
def scale_in_place(self, scaling: Optional[float] = None):
if self.unresolved is None:
raise RuntimeError('Can only scale resolved instruments')
if scaling is None or scaling == 1:
return
if scaling < 0:
flip_dict = {PayReceive.Pay: PayReceive.Receive, PayReceive.Receive: PayReceive.Pay}
self.pay_or_receive = flip_dict[self.pay_or_receive]
self.fee *= -1
self.notional_amount *= abs(scaling)
return
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class InstrumentsRepoIRDiscreteLock(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
currency: Optional[Currency] = field(default=None, metadata=field_metadata)
spot_clean_price: Optional[float] = field(default=None, metadata=field_metadata)
settlement: Optional[str] = field(default=None, metadata=field_metadata)
repo_rate: Optional[float] = field(default=None, metadata=field_metadata)
forward_clean_price: Optional[float] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Repo, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Bond_Forward, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class MetalForward(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
delivery_location: Optional[str] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
quantity: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
quantity_unit: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Forward, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CDIndex(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
clearinghouse: Optional[SwapClearingHouse] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
first_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
first_roll_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
index_family: Optional[str] = field(default=None, metadata=field_metadata)
index_for_basis: Optional[str] = field(default=None, metadata=field_metadata)
index_series: Optional[float] = field(default=None, metadata=field_metadata)
index_version: Optional[float] = field(default=None, metadata=field_metadata)
isda_docs: Optional[str] = field(default='2014', metadata=config(field_name='ISDADocs', exclude=exclude_none))
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Credit, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Index, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CDIndexOption(Instrument):
automatic_exercise: Optional[float] = field(default=0.0, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
clearinghouse: Optional[SwapClearingHouse] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
earliest_exercise_time: Optional[str] = field(default=None, metadata=field_metadata)
earliest_exercise_time_centre: Optional[str] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
exercise_date_business_day_convention: Optional[BusinessDayConvention] = field(default='Following', metadata=field_metadata)
exercise_holidays: Optional[str] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
expiration_time_centre: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[float] = field(default=0.0, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
first_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
first_roll_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
index_family: Optional[str] = field(default=None, metadata=field_metadata)
index_for_basis: Optional[str] = field(default=None, metadata=field_metadata)
index_series: Optional[float] = field(default=None, metadata=field_metadata)
index_version: Optional[float] = field(default=None, metadata=field_metadata)
isda_docs: Optional[str] = field(default='2014', metadata=config(field_name='ISDADocs', exclude=exclude_none))
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
option_type: Optional[CDOptionType] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixed_rate: Optional[float] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
strike_type: Optional[StrikeType] = field(default=StrikeType.Spread, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Credit, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.IndexOption, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CommodOTCOptionLeg(Instrument):
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
fixing_currency: Optional[CurrencyName] = field(default=None, metadata=field_metadata)
premium: Optional[CommodPrice] = field(default=None, metadata=field_metadata)
leg_description: Optional[str] = field(default=None, metadata=field_metadata)
contract: Optional[str] = field(default=None, metadata=field_metadata)
fixing_currency_source: Optional[str] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier: Optional[str] = field(default=None, metadata=field_metadata)
premium_settlement: Optional[str] = field(default=None, metadata=field_metadata)
quantity_multiplier: Optional[int] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.OptionLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CommodOTCSwap(Instrument):
quantity: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
legs: Optional[Tuple[CommodOTCSwapLeg, ...]] = field(default=None, metadata=field_metadata)
start: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
end: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
number_of_periods: Optional[int] = field(default=None, metadata=field_metadata)
quantity_unit: Optional[str] = field(default=None, metadata=field_metadata)
quantity_period: Optional[Period] = field(default=None, metadata=field_metadata)
strategy: Optional[str] = field(default=None, metadata=field_metadata)
settlement: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.SwapStrategy, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CommodOption(Instrument):
commodity: Optional[str] = field(default=None, metadata=field_metadata)
number_of_periods: Optional[int] = field(default=None, metadata=field_metadata)
quantity_unit: Optional[str] = field(default=None, metadata=field_metadata)
currency_summary: Optional[CurrencyName] = field(default=None, metadata=field_metadata)
option_types: Optional[Tuple[str, ...]] = field(default=None, metadata=field_metadata)
option_type: Optional[str] = field(default=None, metadata=field_metadata)
strike_unit: Optional[str] = field(default=None, metadata=field_metadata)
strikes: Optional[Tuple[str, ...]] = field(default=None, metadata=field_metadata)
end: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sells: Optional[Tuple[str, ...]] = field(default=None, metadata=field_metadata)
underlier_short_name: Optional[str] = field(default=None, metadata=field_metadata)
settlement: Optional[str] = field(default=None, metadata=field_metadata)
settlement_frequency: Optional[str] = field(default=None, metadata=field_metadata)
settlement_days: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_days_type: Optional[str] = field(default=None, metadata=field_metadata)
settlement_days_from: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
strike_currency: Optional[CurrencyName] = field(default=None, metadata=field_metadata)
quantity: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
contract: Optional[str] = field(default=None, metadata=field_metadata)
fixing_currency_source: Optional[str] = field(default=None, metadata=field_metadata)
strike: Optional[str] = field(default=None, metadata=field_metadata)
start: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_type: Optional[str] = field(default=None, metadata=field_metadata)
fixing_currency: Optional[str] = field(default=None, metadata=field_metadata)
commodity_reference_price: Optional[str] = field(default=None, metadata=field_metadata)
quantity_period: Optional[str] = field(default=None, metadata=field_metadata)
strategy: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[str] = field(default=None, metadata=field_metadata)
premium_unit: Optional[str] = field(default=None, metadata=field_metadata)
premium_type: Optional[str] = field(default=None, metadata=field_metadata)
period_details: Optional[Tuple[CommodOTCOptionPeriod, ...]] = field(default=None, metadata=field_metadata)
native_quantity_unit: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Option, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CommodVolVarSwap(Instrument):
notional_currency: Optional[CurrencyName] = field(default=None, metadata=field_metadata)
notional: Optional[float] = field(default=1.0, metadata=field_metadata)
floating_rate_is_capped: Optional[str] = field(default=None, metadata=field_metadata)
end_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
margined: Optional[float] = field(default=None, metadata=field_metadata)
market_disruption_agreement: Optional[str] = field(default=None, metadata=field_metadata)
mean_rule: Optional[CommodMeanRule] = field(default=None, metadata=field_metadata)
divisor: Optional[str] = field(default=None, metadata=field_metadata)
fixed_mean: Optional[float] = field(default=None, metadata=field_metadata)
first_fixing: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
floating_rate_cap: Optional[float] = field(default=None, metadata=field_metadata)
fx_fixing_source: Optional[str] = field(default=None, metadata=field_metadata)
annualization_factor: Optional[float] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
contract: Optional[str] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
swap_type: Optional[str] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixing_currency: Optional[CurrencyName] = field(default=None, metadata=field_metadata)
asset_fixing_source: Optional[str] = field(default=None, metadata=field_metadata)
sampling_frequency: Optional[str] = field(default=None, metadata=field_metadata)
variance_convention: Optional[VarianceConvention] = field(default=None, metadata=field_metadata)
asset: Optional[str] = field(default=None, metadata=field_metadata)
start_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.VolVarSwap, metadata=config(field_name='type', exclude=exclude_none))
extra_sampling_calendars: Optional[str] = field(init=False, default='--Blank--', metadata=field_metadata)
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqOptionStrategy(Instrument):
underlier: Union[float, str] = field(default=None, metadata=field_metadata)
strategy: str = field(default=None, metadata=field_metadata)
legs: Tuple[EqOptionLeg, ...] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
option_style: Optional[OptionStyle] = field(default=None, metadata=field_metadata)
number_of_options: Optional[float] = field(default=None, metadata=field_metadata)
multiplier: Optional[float] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium: Optional[float] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
valuation_time: Optional[ValuationTime] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
exchange: Optional[str] = field(default=None, metadata=field_metadata)
trade_as: Optional[TradeAs] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.OptionStrategy, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class EqSynthetic(Instrument):
underlier: Union[float, str] = field(default=None, metadata=field_metadata)
expiry: Union[datetime.date, str] = field(default=None, metadata=field_metadata)
currency: Optional[Currency] = field(default=None, metadata=field_metadata)
swap_type: Optional[SwapType] = field(default=SwapType.Eq_Swap, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
effective_date: Optional[datetime.date] = field(default=None, metadata=field_metadata)
num_of_underlyers: Optional[float] = field(default=None, metadata=field_metadata)
rate_tenor: Optional[str] = field(default=None, metadata=field_metadata)
commission: Optional[float] = field(default=None, metadata=field_metadata)
commission_units: Optional[str] = field(default=None, metadata=field_metadata)
strike: Optional[float] = field(default=None, metadata=field_metadata)
initial_valuation_date: Optional[str] = field(default=None, metadata=field_metadata)
schedule_type: Optional[str] = field(default=None, metadata=field_metadata)
oet_terms: Optional[Tuple[EqSyntheticOETTerms, ...]] = field(default=None, metadata=field_metadata)
dividend_pay_ratio: Optional[float] = field(default=None, metadata=field_metadata)
trade_date: Optional[str] = field(default=None, metadata=field_metadata)
fx_data_source: Optional[str] = field(default=None, metadata=field_metadata)
rate_option: Optional[str] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_delay: Optional[str] = field(default=None, metadata=field_metadata)
eq_leg: Optional[Tuple[EqSyntheticLeg, ...]] = field(default=None, metadata=field_metadata)
funding_leg: Optional[Tuple[EqSyntheticLeg, ...]] = field(default=None, metadata=field_metadata)
valuation_bdc: Optional[float] = field(default=None, metadata=field_metadata)
payment_bdc: Optional[float] = field(default=None, metadata=field_metadata)
commission_type: Optional[str] = field(default=None, metadata=field_metadata)
designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
reset_delay: Optional[str] = field(default=None, metadata=field_metadata)
payment_delay: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Equity, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Synthetic, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FRA(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
clearing_house: Optional[SwapClearingHouse] = field(default=None, metadata=field_metadata)
clearing_legally_binding: Optional[float] = field(default=None, metadata=field_metadata)
day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
frequency: Optional[str] = field(default=None, metadata=field_metadata)
calendar: Optional[str] = field(default=None, metadata=field_metadata)
rate_option: Optional[str] = field(default=None, metadata=field_metadata)
maturity: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
payment_delay: Optional[str] = field(default=None, metadata=field_metadata)
roll_convention: Optional[str] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.FRA, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXAccumulator(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
new_or_unwind: Optional[NewOrUnwind] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
leverage_ratio: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
european_knock_in: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
knock_out_level: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
accum_or_decum: Optional[AccumOrDecum] = field(default=None, metadata=field_metadata)
accumulator_type: Optional[AccumulatorType] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
first_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
coupon_frequency: Optional[str] = field(default=None, metadata=field_metadata)
guaranteed_coupons: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
number_of_expiry: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixing_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
schedules: Optional[Tuple[FXAccumulatorScheduleLeg, ...]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Accumulator, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXDualDoubleKnockout(Instrument):
legs: Tuple[FXDualDoubleKnockoutLeg, ...] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.DualDoubleKnockout, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXMultiCrossBinary(Instrument):
legs: Tuple[FXMultiCrossBinaryLeg, ...] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.MultiCrossBinary, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXMultiCrossDoubleBinary(Instrument):
legs: Tuple[FXMultiCrossDoubleBinaryLeg, ...] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.MultiCrossDoubleBinary, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXMultiCrossDoubleOneTouch(Instrument):
legs: Tuple[FXMultiCrossDoubleOneTouchLeg, ...] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
payout_type: Optional[PayoutType] = field(default=None, metadata=field_metadata)
touch_or_no_touch: Optional[TouchNoTouch] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.MultiCrossDoubleTouch, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXOptionStrategy(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
strategy_name: Optional[str] = field(default=None, metadata=field_metadata)
legs: Optional[Tuple[FXOptionLeg, ...]] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount_in_other_currency: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
strike_price: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
expiration_time: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
exercise_style: Optional[OptionExerciseStyle] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.OptionStrategy, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXPivot(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
new_or_unwind: Optional[NewOrUnwind] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
lower_leverage_ratio: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
lower_knock_in: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
lower_strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
pivot: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_knock_in: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
upper_leverage_ratio: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fixing_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
number_of_expiry: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
coupon_frequency: Optional[str] = field(default=None, metadata=field_metadata)
first_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
target_type: Optional[TargetType] = field(default=None, metadata=field_metadata)
target: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
schedules: Optional[Tuple[FXPivotScheduleLeg, ...]] = field(default=None, metadata=field_metadata)
target_adj_notional_or_strike: Optional[NotionalOrStrike] = field(default=None, metadata=field_metadata)
payment_on_hitting_target: Optional[TargetPaymentType] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Pivot, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXTarf(Instrument):
pair: Optional[str] = field(default=None, metadata=field_metadata)
new_or_unwind: Optional[NewOrUnwind] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
profit_strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
loss_strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fixing_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
long_or_short: Optional[LongShort] = field(default=None, metadata=field_metadata)
european_knock_in: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
number_of_expiry: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
coupon_frequency: Optional[str] = field(default=None, metadata=field_metadata)
first_fixing_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
leverage_ratio: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
target_type: Optional[TargetType] = field(default=None, metadata=field_metadata)
target: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
schedules: Optional[Tuple[FXTarfScheduleLeg, ...]] = field(default=None, metadata=field_metadata)
target_adj_notional_or_strike: Optional[NotionalOrStrike] = field(default=None, metadata=field_metadata)
payment_on_hitting_target: Optional[TargetPaymentType] = field(default=None, metadata=field_metadata)
settlement_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Tarf, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXWorstOf(Instrument):
legs: Tuple[FXWorstOfLeg, ...] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
best_or_worst: Optional[BestWorst] = field(default=None, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.WorstOf, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class FXWorstOfKO(Instrument):
legs: Tuple[FXWorstOfKOLeg, ...] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
best_or_worst: Optional[BestWorst] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
settlement_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
method_of_settlement: Optional[OptionSettlementMethod] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.FX, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.WorstOfKO, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRAssetSwapFxdFlt(Instrument):
asw_type: Optional[AswType] = field(default=None, metadata=field_metadata)
clearing_house: Optional[SwapClearingHouse] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=None, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
fixed_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
fixed_holidays: Optional[str] = field(default=None, metadata=field_metadata)
fixed_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fixed_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
floating_rate_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_fx: Optional[float] = field(default=None, metadata=field_metadata)
floating_holidays: Optional[str] = field(default=None, metadata=field_metadata)
floating_maturity: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
identifier: Optional[str] = field(default=None, metadata=field_metadata)
identifier_type: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
pay_or_receive: Optional[PayReceive] = field(default=None, metadata=field_metadata)
roll_convention: Optional[str] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
floating_rate_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
traded_clean_price: Optional[float] = field(default=100.0, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.AssetSwapFxdFlt, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRAssetSwapFxdFxd(Instrument):
asw_type: Optional[AswType] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=None, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
fixed_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
fixed_holidays: Optional[str] = field(default=None, metadata=field_metadata)
fixed_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fixed_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
coupon: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixed_rate_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
asset_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
asset_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_frequency: Optional[str] = field(default=None, metadata=field_metadata)
asset_holidays: Optional[str] = field(default=None, metadata=field_metadata)
asset_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
identifier: Optional[str] = field(default=None, metadata=field_metadata)
identifier_type: Optional[str] = field(default=None, metadata=field_metadata)
asset_maturity: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_maturity: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
roll_convention: Optional[str] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixed_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
clean_price: Optional[float] = field(default=100.0, metadata=field_metadata)
settlement_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.AssetSwapFxdFxd, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRBasisSwap(Instrument):
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
principal_exchange: Optional[PrincipalExchange] = field(default=None, metadata=field_metadata)
payer_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
payer_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
payer_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
payer_frequency: Optional[str] = field(default=None, metadata=field_metadata)
payer_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
payer_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
receiver_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
receiver_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
receiver_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
receiver_frequency: Optional[str] = field(default=None, metadata=field_metadata)
receiver_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
receiver_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
clearing_house: Optional[SwapClearingHouse] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.BasisSwap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRBondOption(Instrument):
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
option_type: Optional[OptionType] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
strike_type: Optional[BondStrikeType] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
settlement: Optional[SettlementType] = field(default=None, metadata=field_metadata)
underlier_type: Optional[UnderlierType] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.BondOption, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRCMSOption(Instrument):
cap_floor: Optional[str] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
index: Optional[str] = field(default=None, metadata=field_metadata)
rate_option: Optional[str] = field(default=None, metadata=field_metadata)
multiplier: Optional[float] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
start_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.CMSOption, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRCMSOptionStrip(Instrument):
cap_floor: Optional[str] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
index: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
reset_delay: Optional[str] = field(default=None, metadata=field_metadata)
multiplier: Optional[float] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.CMSOptionStrip, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRCMSSpreadOption(Instrument):
cap_floor: Optional[str] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
index1_tenor: Optional[str] = field(default=None, metadata=field_metadata)
index2_tenor: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.CMSSpreadOption, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRCMSSpreadOptionStrip(Instrument):
cap_floor: Optional[str] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
index1: Optional[str] = field(default=None, metadata=field_metadata)
index2: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
reset_delay: Optional[str] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.CMSSpreadOptionStrip, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRFixedLeg(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
fixed_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
fixed_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
fixed_holidays: Optional[str] = field(default=None, metadata=field_metadata)
fixed_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fixed_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
principal_exchange: Optional[PrincipalExchange] = field(default=None, metadata=field_metadata)
roll_convention: Optional[str] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.FixedLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRFloatLeg(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
floating_rate_for_the_initial_calculation_period: Optional[float] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_holidays: Optional[str] = field(default=None, metadata=field_metadata)
floating_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
floating_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
principal_exchange: Optional[PrincipalExchange] = field(default=None, metadata=field_metadata)
roll_convention: Optional[str] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
floating_rate_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.FloatLeg, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRSwap(Instrument):
pay_or_receive: Optional[PayReceive] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
principal_exchange: Optional[PrincipalExchange] = field(default=None, metadata=field_metadata)
floating_rate_for_the_initial_calculation_period: Optional[float] = field(default=None, metadata=field_metadata)
floating_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fixed_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixed_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
fixed_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
fixed_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
clearing_house: Optional[SwapClearingHouse] = field(default=None, metadata=field_metadata)
fixed_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_holidays: Optional[str] = field(default=None, metadata=field_metadata)
floating_holidays: Optional[str] = field(default=None, metadata=field_metadata)
roll_convention: Optional[str] = field(default=None, metadata=field_metadata)
fixed_rate_accrual_convention: Optional[AccrualConvention] = field(default=None, metadata=field_metadata)
floating_rate_accrual_convention: Optional[AccrualConvention] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Swap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
def scale_in_place(self, scaling: Optional[float] = None):
if self.unresolved is None:
raise RuntimeError('Can only scale resolved instruments')
if scaling is None or scaling == 1:
return
if scaling < 0:
flip_dict = {PayReceive.Pay: PayReceive.Receive, PayReceive.Receive: PayReceive.Pay}
self.pay_or_receive = flip_dict[self.pay_or_receive]
self.fee *= -1
self.notional_amount *= abs(scaling)
return
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRSwaption(Instrument):
pay_or_receive: Optional[PayReceive] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
expiration_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_spread: Optional[float] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fixed_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
fixed_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
fixed_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
clearing_house: Optional[SwapClearingHouse] = field(default=None, metadata=field_metadata)
settlement: Optional[SwapSettlement] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.Swaption, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
def scale_in_place(self, scaling: Optional[float] = None):
if self.unresolved is None:
raise RuntimeError('Can only scale resolved instruments')
if scaling is None or scaling == 1:
return
if scaling < 0:
flip_dict = {BuySell.Buy: BuySell.Sell, BuySell.Sell: BuySell.Buy}
self.buy_sell = flip_dict[self.buy_sell]
self.fee *= -1
self.notional_amount *= abs(scaling)
return
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRXccySwap(Instrument):
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[float] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
principal_exchange: Optional[PrincipalExchange] = field(default=None, metadata=field_metadata)
payer_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
payer_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
payer_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
payer_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
payer_frequency: Optional[str] = field(default=None, metadata=field_metadata)
payer_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
payer_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
receiver_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
receiver_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
receiver_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
receiver_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
receiver_frequency: Optional[str] = field(default=None, metadata=field_metadata)
receiver_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
receiver_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
initial_fx_rate: Optional[float] = field(default=None, metadata=field_metadata)
payer_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
receiver_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
payer_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
receiver_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
payer_holidays: Optional[str] = field(default=None, metadata=field_metadata)
receiver_holidays: Optional[str] = field(default=None, metadata=field_metadata)
notional_reset_side: Optional[PayReceive] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.XccySwapMTM, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRXccySwapFixFix(Instrument):
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[float] = field(default=None, metadata=field_metadata)
receiver_notional_amount: Optional[float] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
principal_exchange: Optional[PrincipalExchange] = field(default=None, metadata=field_metadata)
payer_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
payer_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
payer_frequency: Optional[str] = field(default=None, metadata=field_metadata)
payer_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
payer_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
receiver_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
receiver_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
receiver_frequency: Optional[str] = field(default=None, metadata=field_metadata)
receiver_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
receiver_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.XccySwapFixFix, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
[docs]@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRXccySwapFixFlt(Instrument):
pay_or_receive: Optional[PayReceive] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
principal_exchange: Optional[PrincipalExchange] = field(default=None, metadata=field_metadata)
floating_rate_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
floating_rate_for_the_initial_calculation_period: Optional[float] = field(default=None, metadata=field_metadata)
floating_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
floating_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
floating_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
floating_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fixed_rate_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fixed_rate: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
fixed_rate_frequency: Optional[str] = field(default=None, metadata=field_metadata)
fixed_rate_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
fixed_rate_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
floating_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fixed_holidays: Optional[str] = field(default=None, metadata=field_metadata)
floating_holidays: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.XccySwapFixFlt, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class IRXccySwapFltFlt(Instrument):
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
principal_exchange: Optional[PrincipalExchange] = field(default=None, metadata=field_metadata)
payer_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
payer_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
payer_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
payer_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
payer_frequency: Optional[str] = field(default=None, metadata=field_metadata)
payer_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
payer_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
receiver_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
receiver_spread: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
receiver_rate_option: Optional[str] = field(default=None, metadata=field_metadata)
receiver_designated_maturity: Optional[str] = field(default=None, metadata=field_metadata)
receiver_frequency: Optional[str] = field(default=None, metadata=field_metadata)
receiver_day_count_fraction: Optional[DayCountFraction] = field(default=None, metadata=field_metadata)
receiver_business_day_convention: Optional[BusinessDayConvention] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
payer_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
receiver_first_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
payer_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
receiver_last_stub: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
payer_holidays: Optional[str] = field(default=None, metadata=field_metadata)
receiver_holidays: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.XccySwap, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class MacroBasket(Instrument):
cap_floor: Optional[str] = field(default=None, metadata=field_metadata)
termination_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
notional_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
effective_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
strike: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
index: Optional[str] = field(default=None, metadata=field_metadata)
rate_option: Optional[str] = field(default=None, metadata=field_metadata)
multiplier: Optional[float] = field(default=None, metadata=field_metadata)
premium: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
premium_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee: Optional[float] = field(default=0.0, metadata=field_metadata)
fee_currency: Optional[Currency] = field(default=None, metadata=field_metadata)
start_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
fee_payment_date: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Cross_Asset, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.MacroBasket, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CommodOTCOption(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
quantity: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
start: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
number_of_periods: Optional[int] = field(default=None, metadata=field_metadata)
quantity_unit: Optional[str] = field(default=None, metadata=field_metadata)
settlement: Optional[str] = field(default=None, metadata=field_metadata)
premium_summary: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
legs: Optional[Tuple[CommodOTCOptionLeg, ...]] = field(default=None, metadata=field_metadata)
end: Optional[Union[datetime.date, str]] = field(default=None, metadata=field_metadata)
quantity_period: Optional[Period] = field(default=None, metadata=field_metadata)
strategy: Optional[str] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Commod, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.OptionStrategy, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class InvoiceSpread(Instrument):
buy_sell: Optional[BuySell] = field(default=None, metadata=field_metadata)
notional_amount: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
underlier: Optional[Union[float, str]] = field(default=None, metadata=field_metadata)
swap: Optional[IRSwap] = field(default=None, metadata=field_metadata)
future: Optional[IRBondFuture] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Rates, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.InvoiceSpread, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)
@handle_camel_case_args
@dataclass_json(letter_case=LetterCase.CAMEL)
@dataclass(unsafe_hash=True, repr=False)
class CSLPython(Instrument):
class_name: Optional[str] = field(default=None, metadata=field_metadata)
denominated: Optional[Currency] = field(default=None, metadata=field_metadata)
double_params: Optional[Tuple[CSLDouble, ...]] = field(default=None, metadata=field_metadata)
date_params: Optional[Tuple[CSLDate, ...]] = field(default=None, metadata=field_metadata)
string_params: Optional[Tuple[CSLString, ...]] = field(default=None, metadata=field_metadata)
simple_schedule_params: Optional[Tuple[CSLSimpleSchedule, ...]] = field(default=None, metadata=field_metadata)
schedule_params: Optional[Tuple[CSLSchedule, ...]] = field(default=None, metadata=field_metadata)
currency_params: Optional[Tuple[CSLCurrency, ...]] = field(default=None, metadata=field_metadata)
stock_params: Optional[Tuple[CSLStock, ...]] = field(default=None, metadata=field_metadata)
index_params: Optional[Tuple[CSLIndex, ...]] = field(default=None, metadata=field_metadata)
fx_cross_params: Optional[Tuple[CSLFXCross, ...]] = field(default=None, metadata=field_metadata)
double_array_params: Optional[Tuple[CSLDoubleArray, ...]] = field(default=None, metadata=field_metadata)
date_array_params: Optional[Tuple[CSLDateArray, ...]] = field(default=None, metadata=field_metadata)
string_array_params: Optional[Tuple[CSLStringArray, ...]] = field(default=None, metadata=field_metadata)
simple_schedule_array_params: Optional[Tuple[CSLSimpleScheduleArray, ...]] = field(default=None, metadata=field_metadata)
schedule_array_params: Optional[Tuple[CSLScheduleArray, ...]] = field(default=None, metadata=field_metadata)
currency_array_params: Optional[Tuple[CSLCurrencyArray, ...]] = field(default=None, metadata=field_metadata)
stock_array_params: Optional[Tuple[CSLStockArray, ...]] = field(default=None, metadata=field_metadata)
index_array_params: Optional[Tuple[CSLIndexArray, ...]] = field(default=None, metadata=field_metadata)
fx_cross_array_params: Optional[Tuple[CSLFXCrossArray, ...]] = field(default=None, metadata=field_metadata)
asset_class: Optional[AssetClass] = field(init=False, default=AssetClass.Cross_Asset, metadata=field_metadata)
type_: Optional[AssetType] = field(init=False, default=AssetType.CSL, metadata=config(field_name='type', exclude=exclude_none))
name: Optional[str] = field(default=None, metadata=name_metadata)