本文整理汇总了Python中zipline.utils.factory.create_returns_from_range函数的典型用法代码示例。如果您正苦于以下问题:Python create_returns_from_range函数的具体用法?Python create_returns_from_range怎么用?Python create_returns_from_range使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了create_returns_from_range函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_treasury_returns
def test_treasury_returns(self):
returns = factory.create_returns_from_range(self.sim_params)
metrics = risk.RiskReport(returns,
self.sim_params,
trading_calendar=self.trading_calendar,
benchmark_returns=self.env.benchmark_returns)
# These values are all expected to be zero because we explicity zero
# out the treasury period returns as they are no longer actually used.
self.assertEqual(
[x.treasury_period_return for x in metrics.month_periods],
[0.0] * len(metrics.month_periods),
)
self.assertEqual(
[x.treasury_period_return for x in metrics.three_month_periods],
[0.0] * len(metrics.three_month_periods),
)
self.assertEqual(
[x.treasury_period_return for x in metrics.six_month_periods],
[0.0] * len(metrics.six_month_periods),
)
self.assertEqual(
[x.treasury_period_return for x in metrics.year_periods],
[0.0] * len(metrics.year_periods),
)
示例2: test_trading_days_06
def test_trading_days_06(self):
returns = factory.create_returns_from_range(self.trading_env)
metrics = risk.RiskReport(returns, self.trading_env)
self.assertEqual([x.trading_days for x in metrics.year_periods],
[251])
self.assertEqual([x.trading_days for x in metrics.month_periods],
[20, 19, 23, 19, 22, 22, 20, 23, 20, 22, 21, 20])
示例3: test_partial_month
def test_partial_month(self):
start_session = self.trading_calendar.minute_to_session_label(
pd.Timestamp("1993-02-01", tz='UTC')
)
# 1992 and 1996 were leap years
total_days = 365 * 5 + 2
end_session = start_session + datetime.timedelta(days=total_days)
sim_params90s = SimulationParameters(
start_session=start_session,
end_session=end_session,
trading_calendar=self.trading_calendar,
)
returns = factory.create_returns_from_range(sim_params90s)
returns = returns[:-10] # truncate the returns series to end mid-month
metrics = ClassicRiskMetrics.risk_report(
algorithm_returns=returns,
# use returns from the fixture to ensure that we have enough data.
benchmark_returns=self.BENCHMARK_RETURNS,
algorithm_leverages=pd.Series(0.0, index=returns.index)
)
total_months = 60
self.check_metrics(metrics, total_months, start_session)
示例4: test_partial_month
def test_partial_month(self):
start = datetime.datetime(
year=1991,
month=1,
day=1,
hour=0,
minute=0,
tzinfo=pytz.utc)
# 1992 and 1996 were leap years
total_days = 365 * 5 + 2
end = start + datetime.timedelta(days=total_days)
sim_params90s = SimulationParameters(
period_start=start,
period_end=end,
trading_schedule=self.trading_schedule,
)
returns = factory.create_returns_from_range(sim_params90s)
returns = returns[:-10] # truncate the returns series to end mid-month
metrics = risk.RiskReport(returns, sim_params90s,
trading_schedule=self.trading_schedule,
treasury_curves=self.env.treasury_curves,
benchmark_returns=self.env.benchmark_returns)
total_months = 60
self.check_metrics(metrics, total_months, start)
示例5: test_benchmark_volatility_06
def test_benchmark_volatility_06(self):
returns = factory.create_returns_from_range(self.sim_params)
metrics = risk.RiskReport(returns, self.sim_params)
answer_key_month_periods = ANSWER_KEY.get_values(
AnswerKey.BENCHMARK_PERIOD_VOLATILITY['Monthly'],
decimal=3)
self.assertEqual([np.round(x.benchmark_volatility, 3)
for x in metrics.month_periods],
answer_key_month_periods)
answer_key_three_month_periods = ANSWER_KEY.get_values(
AnswerKey.BENCHMARK_PERIOD_VOLATILITY['3-Month'],
decimal=3)
self.assertEqual([np.round(x.benchmark_volatility, 3)
for x in metrics.three_month_periods],
answer_key_three_month_periods)
answer_key_six_month_periods = ANSWER_KEY.get_values(
AnswerKey.BENCHMARK_PERIOD_VOLATILITY['6-month'],
decimal=3)
self.assertEqual([np.round(x.benchmark_volatility, 3)
for x in metrics.six_month_periods],
answer_key_six_month_periods)
answer_key_year_periods = ANSWER_KEY.get_values(
AnswerKey.BENCHMARK_PERIOD_VOLATILITY['year'],
decimal=3)
self.assertEqual([np.round(x.benchmark_volatility, 3)
for x in metrics.year_periods],
answer_key_year_periods)
示例6: test_trading_days_08
def test_trading_days_08(self):
returns = factory.create_returns_from_range(self.sim_params08)
metrics = risk.RiskReport(returns, self.sim_params08)
self.assertEqual([x.trading_days for x in metrics.year_periods],
[253])
self.assertEqual([x.trading_days for x in metrics.month_periods],
[21, 20, 20, 22, 21, 21, 22, 21, 21, 23, 19, 22])
示例7: check_year_range
def check_year_range(self, start_date, years):
sim_params = SimulationParameters(
period_start=start_date, period_end=start_date.replace(year=(start_date.year + years)), env=self.env
)
returns = factory.create_returns_from_range(sim_params)
metrics = risk.RiskReport(returns, self.sim_params, env=self.env)
total_months = years * 12
self.check_metrics(metrics, total_months, start_date)
示例8: test_trading_days_06
def test_trading_days_06(self):
returns = factory.create_returns_from_range(self.sim_params)
metrics = risk.RiskReport(returns, self.sim_params,
trading_calendar=self.trading_calendar,
treasury_curves=self.env.treasury_curves,
benchmark_returns=self.env.benchmark_returns)
self.assertEqual([x.num_trading_days for x in metrics.year_periods],
[251])
self.assertEqual([x.num_trading_days for x in metrics.month_periods],
[20, 19, 23, 19, 22, 22, 20, 23, 20, 22, 21, 20])
示例9: test_trading_days_08
def test_trading_days_08(self):
returns = factory.create_returns_from_range(self.sim_params08)
metrics = risk.RiskReport(returns, self.sim_params08,
trading_schedule=self.trading_schedule,
treasury_curves=self.env.treasury_curves,
benchmark_returns=self.env.benchmark_returns)
self.assertEqual([x.num_trading_days for x in metrics.year_periods],
[253])
self.assertEqual([x.num_trading_days for x in metrics.month_periods],
[21, 20, 20, 22, 21, 21, 22, 21, 21, 23, 19, 22])
示例10: check_year_range
def check_year_range(self, start_date, years):
sim_params = SimulationParameters(
period_start=start_date,
period_end=start_date.replace(year=(start_date.year + years)),
trading_schedule=self.trading_schedule,
)
returns = factory.create_returns_from_range(sim_params)
metrics = risk.RiskReport(returns, self.sim_params,
trading_schedule=self.trading_schedule,
treasury_curves=self.env.treasury_curves,
benchmark_returns=self.env.benchmark_returns)
total_months = years * 12
self.check_metrics(metrics, total_months, start_date)
示例11: test_benchmark_volatility_08
def test_benchmark_volatility_08(self):
returns = factory.create_returns_from_range(self.sim_params08)
metrics = risk.RiskReport(returns, self.sim_params08,
trading_calendar=self.trading_calendar,
treasury_curves=self.env.treasury_curves,
benchmark_returns=self.env.benchmark_returns)
self.assertEqual([round(x.benchmark_volatility, 3)
for x in metrics.month_periods],
[0.07,
0.058,
0.082,
0.054,
0.041,
0.057,
0.068,
0.06,
0.157,
0.244,
0.195,
0.145])
self.assertEqual([round(x.benchmark_volatility, 3)
for x in metrics.three_month_periods],
[0.12,
0.113,
0.105,
0.09,
0.098,
0.107,
0.179,
0.293,
0.344,
0.34])
self.assertEqual([round(x.benchmark_volatility, 3)
for x in metrics.six_month_periods],
[0.15,
0.149,
0.15,
0.2,
0.308,
0.36,
0.383])
# TODO: ugly, but I can't get the rounded float to match.
# maybe we need a different test that checks the
# difference between the numbers
self.assertEqual([round(x.benchmark_volatility, 3)
for x in metrics.year_periods],
[0.411])
示例12: test_treasury_returns
def test_treasury_returns(self):
returns = factory.create_returns_from_range(self.sim_params)
metrics = ClassicRiskMetrics.risk_report(
algorithm_returns=returns,
benchmark_returns=self.env.benchmark_returns,
algorithm_leverages=pd.Series(0.0, index=returns.index)
)
# These values are all expected to be zero because we explicity zero
# out the treasury period returns as they are no longer actually used.
for period in PERIODS:
self.assertEqual(
[x['treasury_period_return'] for x in metrics[period]],
[0.0] * len(metrics[period]),
)
示例13: test_benchmark_returns_08
def test_benchmark_returns_08(self):
returns = factory.create_returns_from_range(self.sim_params08)
metrics = risk.RiskReport(returns, self.sim_params08,
trading_calendar=self.trading_calendar,
treasury_curves=self.env.treasury_curves,
benchmark_returns=self.env.benchmark_returns)
self.assertEqual([round(x.benchmark_period_returns, 3)
for x in metrics.month_periods],
[-0.061,
-0.035,
-0.006,
0.048,
0.011,
-0.086,
-0.01,
0.012,
-0.091,
-0.169,
-0.075,
0.008])
self.assertEqual([round(x.benchmark_period_returns, 3)
for x in metrics.three_month_periods],
[-0.099,
0.005,
0.052,
-0.032,
-0.085,
-0.084,
-0.089,
-0.236,
-0.301,
-0.226])
self.assertEqual([round(x.benchmark_period_returns, 3)
for x in metrics.six_month_periods],
[-0.128,
-0.081,
-0.036,
-0.118,
-0.301,
-0.36,
-0.294])
self.assertEqual([round(x.benchmark_period_returns, 3)
for x in metrics.year_periods],
[-0.385])
示例14: test_benchmark_returns_08
def test_benchmark_returns_08(self):
returns = factory.create_returns_from_range(self.trading_env08)
metrics = risk.RiskReport(returns, self.trading_env08)
monthly = [round(x.benchmark_period_returns, 3)
for x in metrics.month_periods]
self.assertEqual(monthly,
[-0.051,
-0.039,
0.001,
0.043,
0.011,
-0.075,
-0.007,
0.026,
-0.093,
-0.160,
-0.072,
0.009])
self.assertEqual([round(x.benchmark_period_returns, 3)
for x in metrics.three_month_periods],
[-0.087,
0.003,
0.055,
-0.026,
-0.072,
-0.058,
-0.075,
-0.218,
-0.293,
-0.214])
self.assertEqual([round(x.benchmark_period_returns, 3)
for x in metrics.six_month_periods],
[-0.110,
-0.069,
-0.006,
-0.099,
-0.274,
-0.334,
-0.273])
self.assertEqual([round(x.benchmark_period_returns, 3)
for x in metrics.year_periods],
[-0.353])
示例15: test_treasury_returns
def test_treasury_returns(self):
returns = factory.create_returns_from_range(self.sim_params)
metrics = risk.RiskReport(returns, self.sim_params,
trading_calendar=self.trading_calendar,
treasury_curves=self.env.treasury_curves,
benchmark_returns=self.env.benchmark_returns)
self.assertEqual([round(x.treasury_period_return, 4)
for x in metrics.month_periods],
[0.0037,
0.0034,
0.0039,
0.0038,
0.0040,
0.0037,
0.0043,
0.0043,
0.0038,
0.0044,
0.0043,
0.004])
self.assertEqual([round(x.treasury_period_return, 4)
for x in metrics.three_month_periods],
[0.0114,
0.0116,
0.0122,
0.0125,
0.0129,
0.0127,
0.0123,
0.0128,
0.0125,
0.0127])
self.assertEqual([round(x.treasury_period_return, 4)
for x in metrics.six_month_periods],
[0.0260,
0.0257,
0.0258,
0.0252,
0.0259,
0.0256,
0.0257])
self.assertEqual([round(x.treasury_period_return, 4)
for x in metrics.year_periods],
[0.0500])