diff options
| -rw-r--r-- | python/process_queue.py | 33 |
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'" |
