aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/csv_headers/citco.py10
-rw-r--r--python/trade_dataclasses.py71
2 files changed, 37 insertions, 44 deletions
diff --git a/python/csv_headers/citco.py b/python/csv_headers/citco.py
index b038fc5c..e82f29ff 100644
--- a/python/csv_headers/citco.py
+++ b/python/csv_headers/citco.py
@@ -146,7 +146,7 @@ GIL = [
"Command",
"Group_Id",
"Unique Identifier",
- "Instrument Type",
+ "InstrumentType",
"Underlying ID Source",
"Underlying Security Id",
"Underlying ISIN",
@@ -208,9 +208,9 @@ GIL = [
"S_P_CurrencyCode",
"S_P_RateIndexID",
"S_P_AccrualMethodID",
- "S_P_Interest Rate",
- "S_P_Payment Calandar",
- "S_P_Day Convention",
+ "S_P_InterestRate",
+ "S_P_PaymentCalandarID",
+ "S_P_DayConventionID",
"S_P_ResetFreqID",
"S_P_Notional Amt",
"S_P_ResetCalandarID",
@@ -224,7 +224,7 @@ GIL = [
"S_R_CurrencyCode",
"S_R_RateIndexID",
"S_R_AccrualMethodID",
- "S_R_Interest Rate",
+ "S_R_InterestRate",
"S_R_PaymentCalandarID",
"S_R_DayConventionID",
"S_R_ResetFreqID",
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