aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/process_queue.py33
1 files changed, 14 insertions, 19 deletions
diff --git a/python/process_queue.py b/python/process_queue.py
index bc0964f8..06ed0d19 100644
--- a/python/process_queue.py
+++ b/python/process_queue.py
@@ -239,26 +239,21 @@ def build_line(obj, trade_type="bond", fund="SERCGMAST"):
elif obj["SwapType"] == "SWAPTION":
for direction in ["Pay", "Receive"]:
obj[direction + "PaymentRollConvention"] = "ModifiedFollowing"
- if (obj["buysell"] and obj["option_type"] == "RECEIVER") or (
- not obj["buysell"] and obj["option_type"] == "PAYER"
- ):
- obj["ReceiveFrequency"] = "Half-Yearly"
- obj["ReceiveDaycount"] = "30/360"
- obj["PayFrequency"] = "Quarterly"
- obj["PayDaycount"] = "ACT/360"
- obj["ReceiveFixedRate"] = obj["strike"]
- obj["ReceiveLegRateType"] = "Fixed"
- obj["PayLegRateType"] = "Float"
- obj["PayFloatRate"] = "US0003M"
+ if obj["option_type"] == "RECEIVER":
+ fixed, floating = "Receive", "Pay"
else:
- obj["ReceiveFrequency"] = "Quarterly"
- obj["ReceiveDaycount"] = "ACT/360"
- obj["PayFrequency"] = "Half-Yearly"
- obj["PayDaycount"] = "30/360"
- obj["ReceiveFloatRate"] = "US0003M"
- obj["ReceiveLegRateType"] = "Float"
- obj["PayLegRateType"] = "Fixed"
- obj["PayFixedRate"] = obj["strike"]
+ fixed, floating = "Pay", "Receive"
+ # fixed leg
+ obj[fixed + "Frequency"] = "Half-Yearly"
+ obj[fixed + "Daycount"] = "30/360"
+ obj[fixed + "FixedRate"] = obj["strike"]
+ obj[fixed + "RateType"] = "Fixed"
+ # floating leg
+ obj[floating + "Frequency"] = "Quarterly"
+ obj[floating + "PayDaycount"] = "ACT/360"
+ obj[floating + "PayLegRateType"] = "Float"
+ obj[floating + "PayFloatRate"] = "US0003M"
+
else:
raise ValueError(
"'SwapType' needs to be one of 'CD_INDEX_OPTION' or 'SWAPTION'"