diff options
Diffstat (limited to 'python/trade_dataclasses.py')
| -rw-r--r-- | python/trade_dataclasses.py | 71 |
1 files changed, 32 insertions, 39 deletions
diff --git a/python/trade_dataclasses.py b/python/trade_dataclasses.py index 5557013e..fde9f965 100644 --- a/python/trade_dataclasses.py +++ b/python/trade_dataclasses.py @@ -1205,7 +1205,7 @@ class TrancheProduct( init=False, metadata={"insert": False, "citco": "Sec_Desc"} ) currency: str = field(init=False, default=None, metadata={"citco": "LocalCcy"}) - instrument_type: str = field(default="CDS", metadata={"citco": "Instrument Type"}) + instrument_type: str = field(default="CDS", metadata={"citco": "InstrumentType"}) underlying_id_source: str = field( default="RED", metadata={"citco": "Underlying ID Source"} ) @@ -1280,7 +1280,7 @@ class SwaptionProduct( init=False, metadata={"insert": False, "citco": "Sec_Desc"} ) currency: str = field(init=False, default=None, metadata={"citco": "LocalCcy"}) - instrument_type: str = field(metadata={"citco": "Instrument Type"}) + instrument_type: str = field(metadata={"citco": "InstrumentType"}) callput: bool strike: float = field(metadata={"citco": "Strike Price"}) expiration: datetime.date = field(metadata={"citco": "Expiration Date"}) @@ -1362,7 +1362,7 @@ class IRSProduct( death_date: datetime.date = field(metadata={"citco": "Death_date"}) fixed_rate: float notional: float - instrument_type: str = field(default="IRS", metadata={"citco": "Instrument Type"}) + instrument_type: str = field(default="IRS", metadata={"citco": "InstrumentType"}) active: str = field(default=True, metadata={"citco": "Active"}) fixed_daycount: str = field(default="ACT/360") fixed_payment_freq: str = field(default="Yearly") @@ -1412,13 +1412,13 @@ class IRSProduct( f"S_P_RateIndexID": 0, f"S_P_AccrualMethodID": _citco_daycount[self.fixed_daycount], f"S_P_Interest Rate": self.fixed_rate, - f"S_P_Day Convention": _citco_bdc[self.fixed_bdc], + f"S_P_DayConventionID": _citco_bdc[self.fixed_bdc], f"S_P_ResetFreqID": 0, f"S_R_CurrencyCode": self.currency, f"S_R_PaymentFreqID": _citco_frequency[self.float_payment_freq], f"S_R_RateIndexID": 28, f"S_R_AccrualMethodID": _citco_daycount[self.float_daycount], - f"S_R_Interest Rate": 0, + f"S_R_InterestRate": 0, f"S_R_DayConventionID": _citco_bdc[self.float_bdc], f"S_R_ResetFreqID": _citco_frequency[self.float_fixing_freq], f"S_R_RateSource": _citco_ratesource[self.float_index], @@ -1442,21 +1442,20 @@ class TRSProduct( ): birth_date: datetime.date = field(metadata={"citco": "Birth_date"}) death_date: datetime.date = field(metadata={"citco": "Death_date"}) - buysell: bool - underlying_security: str = field(metadata={"citco": "Instrument Type"}) + underlying_security: str = field(metadata={"citco": "Underlying Security Id"}) active: str = field(default=True, metadata={"citco": "Active"}) funding_daycount: str = field(default="ACT/360") - funding_freq: str = field(default="Yearly") + funding_freq: str = field(default="Quarterly") funding_payment_roll_convention: str = field(default="Modified Following") asset_daycount: str = field(default="ACT/360") - asset_freq: str = field(default="Yearly") + asset_freq: str = field(default="Quarterly") asset_payment_roll_convention: str = field(default="Modified Following") currency: str = field(default="USD", metadata={"citco": "LocalCcy"}) interest_calc_method: str = field(default="Compound") - compound_avg_frequency: str = field(default="TEST") - fixing_frequency: str = field(default="TEST") + compound_avg_frequency: str = field(default="Daily") + fixing_frequency: str = field(default="Daily") committed: bool = field(default=False) - instrument_type: str = field(default="TRS", metadata={"citco": "Instrument Type"}) + instrument_type: str = field(default="TRS", metadata={"citco": "InstrumentType"}) funding_index: str = field(default="SOFRRATE", metadata={}) id: int = field(default=None, metadata={"insert": False}) dealid: str = field( @@ -1464,7 +1463,7 @@ class TRSProduct( ) def get_dealid(self): - sql_str = "SELECT id, dealid, committed from citco_trs where birth_date=%s and death_date=%s and funding_index=%s and underlying_security=%s and buysell=%s" + sql_str = "SELECT id, dealid, committed from citco_trs where birth_date=%s and death_date=%s and funding_index=%s and underlying_security=%s" with self._conn.cursor() as c: c.execute( sql_str, @@ -1473,7 +1472,6 @@ class TRSProduct( self.death_date, self.funding_index, self.underlying_security, - self.buysell, ), ) if results := c.fetchone(): @@ -1490,37 +1488,32 @@ class TRSProduct( self.get_dealid() obj = self.serialize("citco") - if obj["buysell"]: - key1, key2 = "P", "R" - else: - key1, key2 = "R", "P" d = { - f"S_{key1}_CurrencyCode": self.currency, - f"S_{key1}_PaymentFreqID": _citco_frequency[self.funding_freq], - f"S_{key1}_RateIndexID": 28, - f"S_{key1}_AccrualMethodID": _citco_daycount[self.funding_daycount], - f"S_{key1}_Interest Rate": 0, - f"S_{key1}_PaymentCalandarID": 3, - f"S_{key1}_DayConventionID": _citco_bdc[ - self.funding_payment_roll_convention - ], - f"S_{key1}_ResetFreqID": 0, - f"S_{key1}_RateSource": _citco_ratesource[self.funding_index], - f"S_{key2}_CurrencyCode": self.currency, - f"S_{key2}_PaymentFreqID": _citco_frequency[self.float_payment_freq], - f"S_{key2}_RateIndexID": 28, - f"S_{key2}_AccrualMethodID": _citco_daycount[self.float_daycount], - f"S_{key2}_Interest Rate": 0, - f"S_{key2}_PaymentCalandarID": 3, - f"S_{key2}_DayConventionID": _citco_bdc[self.float_bdc], - f"S_{key2}_ResetFreqID": _citco_frequency[self.float_fixing_freq], - f"S_{key2}_RateSource": _citco_ratesource[self.float_index], + f"S_P_CurrencyCode": self.currency, + f"S_P_PaymentFreqID": _citco_frequency[self.funding_freq], + f"S_P_RateIndexID": 28, + f"S_P_AccrualMethodID": _citco_daycount[self.funding_daycount], + f"S_P_InterestRate": 0, + f"S_P_PaymentCalandarID": 3, + f"S_P_DayConventionID": _citco_bdc[self.funding_payment_roll_convention], + f"S_P_ResetFreqID": _citco_frequency[self.funding_freq], + f"S_P_RateSourceID": _citco_ratesource[self.funding_index], + f"S_R_CurrencyCode": self.currency, + f"S_R_PaymentFreqID": _citco_frequency[self.asset_freq], + f"S_R_RateIndexID": 0, + f"S_R_AccrualMethodID": _citco_daycount[self.asset_daycount], + f"S_R_InterestRate": 0, + f"S_R_PaymentCalandarID": 3, + f"S_R_DayConventionID": _citco_bdc[self.asset_payment_roll_convention], + f"S_R_ResetFreqID": _citco_frequency[self.asset_freq], + f"S_R_RateSourceID": 0, } obj.update(d) obj["Command"] = "N" obj["Active"] = "Y" if obj["Active"] else "N" - obj["General Direction"] = F + obj["General Direction"] = "F" obj["Principal Exch TypeID"] = 3 obj["Birth_date"] = obj["Birth_date"].strftime("%Y%m%d") obj["Death_date"] = obj["Death_date"].strftime("%Y%m%d") + obj["Underlying ID Source"] = "RED" return obj |
