From ee2170b8602d93e9490b45b174e78063769da60c Mon Sep 17 00:00:00 2001 From: Juan Sabuco Date: Mon, 30 Oct 2017 19:08:53 +0000 Subject: [PATCH] New contracts are reinsured first now. Also, the insurance firms reinsure all what it can at a given time step. --- insurancefirm.py | 7 +++++-- insurancesimulation.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/insurancefirm.py b/insurancefirm.py index 5c022d0..b4ac7f8 100644 --- a/insurancefirm.py +++ b/insurancefirm.py @@ -199,9 +199,12 @@ def ask_reinsurance(self): nonreinsured = [contract for contract in self.underwritten_contracts if contract.reincontract == None] - if len(nonreinsured) > (1 - self.reinsurance_limit)*len(self.underwritten_contracts): + + nonreinsured.reverse() + + if len(nonreinsured) >= (1 - self.reinsurance_limit)*len(self.underwritten_contracts): counter = 0 - limitrein = 0.1 * len(nonreinsured) # TODO: Use parameter + limitrein = len(nonreinsured) - (1 - self.reinsurance_limit)*len(self.underwritten_contracts) for contract in nonreinsured: if counter < limitrein: risk = {"value": contract.value, "category": contract.category, "owner": self, diff --git a/insurancesimulation.py b/insurancesimulation.py index d9d16f6..0f6019f 100644 --- a/insurancesimulation.py +++ b/insurancesimulation.py @@ -28,7 +28,7 @@ def __init__(self, replic_ID=None, override_no_riskmodels=False, simulation_para "acceptance_threshold_friction": 0.9, \ "initial_agent_cash": 10000, \ "initial_reinagent_cash": 50000, \ - "interest_rate": 0.001, \ + "interest_rate": 0, \ "reinsurance_limit": 0.1, \ "upper_price_limit": 1.2, \ "lower_price_limit": 0.85, \