From cf60eeb46b2b79aa48a054b6dac48f3256342073 Mon Sep 17 00:00:00 2001 From: Eddie Hebert Date: Wed, 3 Apr 2013 15:36:01 -0400 Subject: [PATCH] MAINT: Refactors out selection of treasury duration its own function. Instead of having the duration selection logic in choose_treasury, break out duration specific logig into another function. --- zipline/finance/risk.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/zipline/finance/risk.py b/zipline/finance/risk.py index a32a14ca..4f91abd2 100644 --- a/zipline/finance/risk.py +++ b/zipline/finance/risk.py @@ -201,7 +201,7 @@ def search_day_distance(end_date, dt): return tdd -def choose_treasury(treasury_curves, start_date, end_date): +def select_treasury_duration(start_date, end_date): td = end_date - start_date if td.days <= 31: treasury_duration = '1month' @@ -224,6 +224,11 @@ def choose_treasury(treasury_curves, start_date, end_date): else: treasury_duration = '30year' + return treasury_duration + + +def choose_treasury(treasury_curves, start_date, end_date): + treasury_duration = select_treasury_duration(start_date, end_date) end_day = end_date.replace(hour=0, minute=0, second=0) search_day = None @@ -262,7 +267,7 @@ treasury history range." log.warn(message) if search_day: - treasury_curves[search_day] + td = end_date - start_date return rate * (td.days + 1) / 365 message = "No rate for end date = {dt} and term = {term}. Check \