mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-07 10:38:34 +08:00
Updates flake8 to latest.
The latest flake8 release in now 1.5, which pulls in pep8: 1.3.4a0 The upgrade pep8 has changes to what it picks up as lint. Making code base compatible, so that new devs can install pep8 from PyPI and not have friction over the version difference. Currently using these ignores in the config file: ``` [pep8] ignore = E124,E125,E126 ``` Ignoring these since they are difficult to squash while maintaining an 80 char line length, and appear spurious. Should address later. Updates Travis config, README, and pip requirements to reflect change.
This commit is contained in:
+1
-1
@@ -7,6 +7,6 @@ install:
|
||||
- cat etc/requirements_dev.txt | grep -v "^#" | grep -v "^$" | grep -v ipython | grep -v nose | xargs pip install
|
||||
- etc/ordered_pip.sh etc/requirements.txt
|
||||
before_script:
|
||||
- "flake8 zipline tests"
|
||||
- "flake8 --ignore=E124,E125,E126 zipline tests"
|
||||
script:
|
||||
- nosetests
|
||||
|
||||
@@ -58,7 +58,7 @@ To ensure that changes and patches are focused on behavior changes, the zipline
|
||||
|
||||
The maintainers check the code using the flake8 script, <https://github.com/jcrocholl/pep8/>, which is included in the requirements_dev.txt.
|
||||
|
||||
Before submitting patches or pull requests, please ensure that your changes pass ```flake8 zipline tests```
|
||||
Before submitting patches or pull requests, please ensure that your changes pass ```flake8 --ignore=E124,E125,E126 zipline tests```
|
||||
|
||||
Discussion and Help
|
||||
===================
|
||||
|
||||
@@ -9,4 +9,4 @@ requests==0.14.1
|
||||
|
||||
# Linting
|
||||
|
||||
flake8==1.4
|
||||
flake8==1.5
|
||||
|
||||
@@ -55,8 +55,7 @@ class SlippageTestCase(TestCase):
|
||||
{'dt': datetime.datetime(2006, 1, 5, 14, 30, tzinfo=pytz.utc),
|
||||
'amount': 100,
|
||||
'filled': 0, 'sid': 133})
|
||||
]
|
||||
}
|
||||
]}
|
||||
|
||||
txn = slippage_model.simulate(
|
||||
event,
|
||||
@@ -69,7 +68,7 @@ class SlippageTestCase(TestCase):
|
||||
2006, 1, 5, 14, 31, tzinfo=pytz.utc),
|
||||
'amount': int(50),
|
||||
'sid': int(133)
|
||||
}
|
||||
}
|
||||
|
||||
self.assertIsNotNone(txn)
|
||||
|
||||
|
||||
@@ -83,10 +83,10 @@ class ExceptionTestCase(TestCase):
|
||||
# Simulation
|
||||
# ----------
|
||||
self.zipline_test_config['algorithm'] = \
|
||||
ExceptionAlgorithm(
|
||||
'handle_data',
|
||||
self.zipline_test_config['sid']
|
||||
)
|
||||
ExceptionAlgorithm(
|
||||
'handle_data',
|
||||
self.zipline_test_config['sid']
|
||||
)
|
||||
|
||||
zipline = simfactory.create_test_zipline(
|
||||
**self.zipline_test_config
|
||||
@@ -103,9 +103,9 @@ class ExceptionTestCase(TestCase):
|
||||
# Simulation
|
||||
# ----------
|
||||
self.zipline_test_config['algorithm'] = \
|
||||
DivByZeroAlgorithm(
|
||||
self.zipline_test_config['sid']
|
||||
)
|
||||
DivByZeroAlgorithm(
|
||||
self.zipline_test_config['sid']
|
||||
)
|
||||
|
||||
zipline = simfactory.create_test_zipline(
|
||||
**self.zipline_test_config
|
||||
|
||||
@@ -72,7 +72,7 @@ class FinanceTestCase(TestCase):
|
||||
@timed(DEFAULT_TIMEOUT)
|
||||
def test_trading_environment(self):
|
||||
benchmark_returns, treasury_curves = \
|
||||
factory.load_market_data()
|
||||
factory.load_market_data()
|
||||
|
||||
env = TradingEnvironment(
|
||||
benchmark_returns,
|
||||
@@ -270,8 +270,7 @@ class FinanceTestCase(TestCase):
|
||||
|
||||
order_date = start_date
|
||||
for i in xrange(order_count):
|
||||
order = ndict(
|
||||
{
|
||||
order = ndict({
|
||||
'sid': sid,
|
||||
'amount': order_amount * alternator ** i,
|
||||
'dt': order_date
|
||||
|
||||
@@ -30,7 +30,7 @@ class PerformanceTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.benchmark_returns, self.treasury_curves = \
|
||||
factory.load_market_data()
|
||||
factory.load_market_data()
|
||||
|
||||
for n in range(100):
|
||||
|
||||
@@ -127,8 +127,7 @@ check treasury and benchmark data in findb, and re-run the test."""
|
||||
"last sale should be same as last trade. \
|
||||
expected {exp} actual {act}".format(
|
||||
exp=trades[-1]['price'],
|
||||
act=pp.positions[1].last_sale_price
|
||||
)
|
||||
act=pp.positions[1].last_sale_price)
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
@@ -446,8 +445,7 @@ shares in position"
|
||||
pp.positions[1].last_sale_price,
|
||||
trades[-1].price,
|
||||
"should have a last sale of 12, got {val}".format(
|
||||
val=pp.positions[1].last_sale_price
|
||||
)
|
||||
val=pp.positions[1].last_sale_price)
|
||||
)
|
||||
|
||||
self.assertEqual(
|
||||
|
||||
+254
-40
@@ -38,7 +38,7 @@ class Risk(unittest.TestCase):
|
||||
year=2006, month=12, day=31, tzinfo=pytz.utc)
|
||||
|
||||
self.benchmark_returns, self.treasury_curves = \
|
||||
factory.load_market_data()
|
||||
factory.load_market_data()
|
||||
|
||||
self.trading_env = TradingEnvironment(
|
||||
self.benchmark_returns,
|
||||
@@ -768,46 +768,260 @@ class Risk(unittest.TestCase):
|
||||
period_length=period_length,
|
||||
start_date=start_date,
|
||||
end=col[-1].end_date,
|
||||
actual=len(col)
|
||||
))
|
||||
actual=len(col))
|
||||
)
|
||||
self.assert_month(start_date.month, col[-1].end_date.month)
|
||||
self.assert_last_day(col[-1].end_date)
|
||||
|
||||
RETURNS = [
|
||||
0.0093, -0.0193, 0.0351, 0.0396, 0.0338, -0.0211, 0.0389,
|
||||
0.0326, -0.0137, -0.0411, -0.0032, 0.0149, 0.0133, 0.0348,
|
||||
0.042, -0.0455, 0.0262, -0.0461, 0.0021, -0.0273, -0.0429,
|
||||
0.0427, -0.0104, 0.0346, -0.0311, 0.0003, 0.0211, 0.0248,
|
||||
-0.0215, 0.004, 0.0267, 0.0029, -0.0369, 0.0057, 0.0298,
|
||||
-0.0179, -0.0361, -0.0401, -0.0123, -0.005, 0.0203, -0.041,
|
||||
0.0011, 0.0118, 0.0103, -0.0184, -0.0437, 0.0411, -0.0242,
|
||||
-0.0054, -0.0039, -0.0273, -0.0075, 0.0064, -0.0376, 0.0424,
|
||||
0.0399, 0.019, 0.0236, -0.0284, -0.0341, 0.0266, 0.05,
|
||||
0.0069, -0.0442, -0.016, 0.0173, 0.0348, -0.0404, -0.0068,
|
||||
-0.0376, 0.0356, 0.0043, -0.0481, -0.0134, 0.0257, 0.0442,
|
||||
0.0234, 0.0394, 0.0376, -0.0147, -0.0098, 0.0474, -0.0102,
|
||||
0.0138, 0.0286, 0.0347, 0.0279, -0.0067, 0.0462, -0.0432,
|
||||
0.0247, 0.0174, -0.0305, -0.0317, -0.0068, 0.0264, -0.0257,
|
||||
-0.0328, 0.0092, 0.0288, -0.002, 0.0288, 0.028, -0.0093,
|
||||
0.0178, -0.0365, -0.0086, -0.0133, -0.0309, 0.0473, -0.0149,
|
||||
0.0378, -0.0316, -0.0292, -0.0453, -0.0451, 0.0093, 0.0397,
|
||||
-0.0361, -0.0168, -0.0494, -0.0143, -0.0405, -0.0349, 0.0069,
|
||||
0.0378, -0.0233, -0.0492, 0.018, -0.0386, 0.0339, 0.0119,
|
||||
0.0454, 0.0118, -0.011, -0.0254, 0.0266, -0.0366, -0.0211,
|
||||
0.0399, 0.0307, 0.035, -0.0402, 0.0304, -0.0031, 0.0256,
|
||||
0.0134, -0.0019, -0.0235, -0.0058, -0.0117, 0.0051, -0.0451,
|
||||
-0.0466, -0.0124, 0.0283, -0.0499, 0.0318, -0.0028, 0.0203,
|
||||
0.005, 0.0085, 0.0048, 0.0277, 0.0159, -0.0149, 0.035,
|
||||
0.0404, -0.01, 0.0377, 0.0302, 0.0046, -0.0328, -0.0469,
|
||||
0.0071, -0.0382, -0.0214, 0.0429, 0.0145, -0.0279, -0.0172,
|
||||
0.0423, 0.041, -0.0183, 0.0137, -0.0412, -0.0348, 0.0302,
|
||||
0.0248, 0.0051, -0.0298, -0.0103, -0.0333, -0.0399, 0.0485,
|
||||
-0.0166, 0.0384, 0.0259, -0.0163, 0.0357, 0.0308, -0.0386,
|
||||
0.0481, -0.0446, -0.0282, -0.0037, 0.0202, 0.0216, 0.0113,
|
||||
0.0194, 0.0392, 0.0016, 0.0268, -0.0155, -0.027, 0.02,
|
||||
0.0216, -0.0009, 0.022, 0., 0.041, 0.0133, -0.0382,
|
||||
0.0495, -0.0221, -0.0329, -0.0033, -0.0089, -0.0129, -0.0252,
|
||||
0.048, -0.0307, -0.0357, 0.0033, -0.0412, -0.0407, 0.0455,
|
||||
0.0159, -0.0051, -0.0274, -0.0213, 0.0361, 0.0051, -0.0378,
|
||||
0.0084, 0.0066, -0.0103, -0.0037, 0.0478, -0.0278
|
||||
]
|
||||
0.0093,
|
||||
-0.0193,
|
||||
0.0351,
|
||||
0.0396,
|
||||
0.0338,
|
||||
-0.0211,
|
||||
0.0389,
|
||||
0.0326,
|
||||
-0.0137,
|
||||
-0.0411,
|
||||
-0.0032,
|
||||
0.0149,
|
||||
0.0133,
|
||||
0.0348,
|
||||
0.042,
|
||||
-0.0455,
|
||||
0.0262,
|
||||
-0.0461,
|
||||
0.0021,
|
||||
-0.0273,
|
||||
-0.0429,
|
||||
0.0427,
|
||||
-0.0104,
|
||||
0.0346,
|
||||
-0.0311,
|
||||
0.0003,
|
||||
0.0211,
|
||||
0.0248,
|
||||
-0.0215,
|
||||
0.004,
|
||||
0.0267,
|
||||
0.0029,
|
||||
-0.0369,
|
||||
0.0057,
|
||||
0.0298,
|
||||
-0.0179,
|
||||
-0.0361,
|
||||
-0.0401,
|
||||
-0.0123,
|
||||
-0.005,
|
||||
0.0203,
|
||||
-0.041,
|
||||
0.0011,
|
||||
0.0118,
|
||||
0.0103,
|
||||
-0.0184,
|
||||
-0.0437,
|
||||
0.0411,
|
||||
-0.0242,
|
||||
-0.0054,
|
||||
-0.0039,
|
||||
-0.0273,
|
||||
-0.0075,
|
||||
0.0064,
|
||||
-0.0376,
|
||||
0.0424,
|
||||
0.0399,
|
||||
0.019,
|
||||
0.0236,
|
||||
-0.0284,
|
||||
-0.0341,
|
||||
0.0266,
|
||||
0.05,
|
||||
0.0069,
|
||||
-0.0442,
|
||||
-0.016,
|
||||
0.0173,
|
||||
0.0348,
|
||||
-0.0404,
|
||||
-0.0068,
|
||||
-0.0376,
|
||||
0.0356,
|
||||
0.0043,
|
||||
-0.0481,
|
||||
-0.0134,
|
||||
0.0257,
|
||||
0.0442,
|
||||
0.0234,
|
||||
0.0394,
|
||||
0.0376,
|
||||
-0.0147,
|
||||
-0.0098,
|
||||
0.0474,
|
||||
-0.0102,
|
||||
0.0138,
|
||||
0.0286,
|
||||
0.0347,
|
||||
0.0279,
|
||||
-0.0067,
|
||||
0.0462,
|
||||
-0.0432,
|
||||
0.0247,
|
||||
0.0174,
|
||||
-0.0305,
|
||||
-0.0317,
|
||||
-0.0068,
|
||||
0.0264,
|
||||
-0.0257,
|
||||
-0.0328,
|
||||
0.0092,
|
||||
0.0288,
|
||||
-0.002,
|
||||
0.0288,
|
||||
0.028,
|
||||
-0.0093,
|
||||
0.0178,
|
||||
-0.0365,
|
||||
-0.0086,
|
||||
-0.0133,
|
||||
-0.0309,
|
||||
0.0473,
|
||||
-0.0149,
|
||||
0.0378,
|
||||
-0.0316,
|
||||
-0.0292,
|
||||
-0.0453,
|
||||
-0.0451,
|
||||
0.0093,
|
||||
0.0397,
|
||||
-0.0361,
|
||||
-0.0168,
|
||||
-0.0494,
|
||||
-0.0143,
|
||||
-0.0405,
|
||||
-0.0349,
|
||||
0.0069,
|
||||
0.0378,
|
||||
-0.0233,
|
||||
-0.0492,
|
||||
0.018,
|
||||
-0.0386,
|
||||
0.0339,
|
||||
0.0119,
|
||||
0.0454,
|
||||
0.0118,
|
||||
-0.011,
|
||||
-0.0254,
|
||||
0.0266,
|
||||
-0.0366,
|
||||
-0.0211,
|
||||
0.0399,
|
||||
0.0307,
|
||||
0.035,
|
||||
-0.0402,
|
||||
0.0304,
|
||||
-0.0031,
|
||||
0.0256,
|
||||
0.0134,
|
||||
-0.0019,
|
||||
-0.0235,
|
||||
-0.0058,
|
||||
-0.0117,
|
||||
0.0051,
|
||||
-0.0451,
|
||||
-0.0466,
|
||||
-0.0124,
|
||||
0.0283,
|
||||
-0.0499,
|
||||
0.0318,
|
||||
-0.0028,
|
||||
0.0203,
|
||||
0.005,
|
||||
0.0085,
|
||||
0.0048,
|
||||
0.0277,
|
||||
0.0159,
|
||||
-0.0149,
|
||||
0.035,
|
||||
0.0404,
|
||||
-0.01,
|
||||
0.0377,
|
||||
0.0302,
|
||||
0.0046,
|
||||
-0.0328,
|
||||
-0.0469,
|
||||
0.0071,
|
||||
-0.0382,
|
||||
-0.0214,
|
||||
0.0429,
|
||||
0.0145,
|
||||
-0.0279,
|
||||
-0.0172,
|
||||
0.0423,
|
||||
0.041,
|
||||
-0.0183,
|
||||
0.0137,
|
||||
-0.0412,
|
||||
-0.0348,
|
||||
0.0302,
|
||||
0.0248,
|
||||
0.0051,
|
||||
-0.0298,
|
||||
-0.0103,
|
||||
-0.0333,
|
||||
-0.0399,
|
||||
0.0485,
|
||||
-0.0166,
|
||||
0.0384,
|
||||
0.0259,
|
||||
-0.0163,
|
||||
0.0357,
|
||||
0.0308,
|
||||
-0.0386,
|
||||
0.0481,
|
||||
-0.0446,
|
||||
-0.0282,
|
||||
-0.0037,
|
||||
0.0202,
|
||||
0.0216,
|
||||
0.0113,
|
||||
0.0194,
|
||||
0.0392,
|
||||
0.0016,
|
||||
0.0268,
|
||||
-0.0155,
|
||||
-0.027,
|
||||
0.02,
|
||||
0.0216,
|
||||
-0.0009,
|
||||
0.022,
|
||||
0.0,
|
||||
0.041,
|
||||
0.0133,
|
||||
-0.0382,
|
||||
0.0495,
|
||||
-0.0221,
|
||||
-0.0329,
|
||||
-0.0033,
|
||||
-0.0089,
|
||||
-0.0129,
|
||||
-0.0252,
|
||||
0.048,
|
||||
-0.0307,
|
||||
-0.0357,
|
||||
0.0033,
|
||||
-0.0412,
|
||||
-0.0407,
|
||||
0.0455,
|
||||
0.0159,
|
||||
-0.0051,
|
||||
-0.0274,
|
||||
-0.0213,
|
||||
0.0361,
|
||||
0.0051,
|
||||
-0.0378,
|
||||
0.0084,
|
||||
0.0066,
|
||||
-0.0103,
|
||||
-0.0037,
|
||||
0.0478,
|
||||
-0.0278]
|
||||
|
||||
@@ -44,7 +44,7 @@ class RiskCompareIterativeToBatch(unittest.TestCase):
|
||||
self.end_date = datetime.datetime(
|
||||
year=2006, month=12, day=31, tzinfo=pytz.utc)
|
||||
self.benchmark_returns, self.treasury_curves = \
|
||||
factory.load_market_data()
|
||||
factory.load_market_data()
|
||||
|
||||
self.trading_env = TradingEnvironment(
|
||||
self.benchmark_returns,
|
||||
@@ -115,8 +115,8 @@ class RiskCompareIterativeToBatch(unittest.TestCase):
|
||||
self.assertEqual(set(risk_original_dict.keys()),
|
||||
set(risk_refactor_dict.keys()))
|
||||
|
||||
err_msg_format = \
|
||||
"In update step {iter}: {measure} should be {truth} but is {returned}!"
|
||||
err_msg_format = """\
|
||||
"In update step {iter}: {measure} should be {truth} but is {returned}!"""
|
||||
|
||||
for measure in risk_original_dict.iterkeys():
|
||||
if measure == 'max_drawdown':
|
||||
|
||||
@@ -35,4 +35,4 @@ class TestDataFrameSource(TestCase):
|
||||
_, df = factory.create_test_df_source()
|
||||
source = DataFrameSource(df, sids=[0])
|
||||
assert 1 not in [event.sid for event in source], \
|
||||
"DataFrameSource should only stream selected sid 0, not sid 1."
|
||||
"DataFrameSource should only stream selected sid 0, not sid 1."
|
||||
|
||||
@@ -294,7 +294,7 @@ class FinanceTransformsTestCase(TestCase):
|
||||
np.std([10.0, 15.0], ddof=1),
|
||||
np.std([10.0, 15.0, 13.0], ddof=1),
|
||||
np.std([15.0, 13.0, 12.0], ddof=1),
|
||||
]
|
||||
]
|
||||
|
||||
# np has odd rounding behavior, cf.
|
||||
# http://docs.scipy.org/doc/np/reference/generated/np.std.html
|
||||
|
||||
+10
-11
@@ -10,29 +10,28 @@ ERRORS = ndict({
|
||||
# with a slipage object that isn't a VolumeShareSlippage or
|
||||
# FixedSlipapge
|
||||
'UNSUPPORTED_SLIPPAGE_MODEL':
|
||||
"You attempted to override slippage with an unsupported class. \
|
||||
Please use VolumeShareSlippage or FixedSlippage.",
|
||||
"You attempted to override slippage with an unsupported class. \
|
||||
Please use VolumeShareSlippage or FixedSlippage.",
|
||||
|
||||
# Raised if a users script calls override_slippage magic
|
||||
# after the initialize method has returned.
|
||||
'OVERRIDE_SLIPPAGE_POST_INIT':
|
||||
"You attempted to override slippage after the simulation has \
|
||||
started. You may only call override_slippage in your initialize \
|
||||
method.",
|
||||
"You attempted to override slippage after the simulation has \
|
||||
started. You may only call override_slippage in your initialize \
|
||||
method.",
|
||||
|
||||
# Raised if a user script calls the override_commission magic
|
||||
# with a commission object that isn't a PerShare or
|
||||
# PerTrade commission
|
||||
'UNSUPPORTED_COMMISSION_MODEL':
|
||||
"You attempted to override commission with an unsupported class. \
|
||||
Please use PerShare or PerTrade.",
|
||||
"You attempted to override commission with an unsupported class. \
|
||||
Please use PerShare or PerTrade.",
|
||||
|
||||
# Raised if a users script calls override_commission magic
|
||||
# after the initialize method has returned.
|
||||
'OVERRIDE_COMMISSION_POST_INIT':
|
||||
"You attempted to override commission after the simulation has \
|
||||
started. You may only call override_commission in your initialize \
|
||||
method.",
|
||||
|
||||
"You attempted to override commission after the simulation has \
|
||||
started. You may only call override_commission in your initialize \
|
||||
method.",
|
||||
|
||||
})
|
||||
|
||||
@@ -134,8 +134,8 @@ class TradingAlgorithm(object):
|
||||
"""
|
||||
if isinstance(source, (list, tuple)):
|
||||
assert start is not None and end is not None, \
|
||||
"""When providing a list of sources, \
|
||||
start and end date have to be specified."""
|
||||
"""When providing a list of sources, \
|
||||
start and end date have to be specified."""
|
||||
elif isinstance(source, pd.DataFrame):
|
||||
assert isinstance(source.index, pd.tseries.index.DatetimeIndex)
|
||||
# if DataFrame provided, wrap in DataFrameSource
|
||||
@@ -234,14 +234,14 @@ start and end date have to be specified."""
|
||||
|
||||
def set_slippage(self, slippage):
|
||||
assert isinstance(slippage, (VolumeShareSlippage, FixedSlippage)), \
|
||||
MESSAGES.ERRORS.UNSUPPORTED_SLIPPAGE_MODEL
|
||||
MESSAGES.ERRORS.UNSUPPORTED_SLIPPAGE_MODEL
|
||||
if self.initialized:
|
||||
raise Exception(MESSAGES.ERRORS.OVERRIDE_SLIPPAGE_POST_INIT)
|
||||
self.slippage = slippage
|
||||
|
||||
def set_commission(self, commission):
|
||||
assert isinstance(commission, (PerShare, PerTrade)), \
|
||||
MESSAGES.ERRORS.UNSUPPORTED_COMMISSION_MODEL
|
||||
MESSAGES.ERRORS.UNSUPPORTED_COMMISSION_MODEL
|
||||
|
||||
if self.initialized:
|
||||
raise Exception(MESSAGES.ERRORS.OVERRIDE_COMMISSION_POST_INIT)
|
||||
|
||||
@@ -101,7 +101,7 @@ def get_benchmark_returns():
|
||||
|
||||
for data_point in get_benchmark_data():
|
||||
returns = (data_point['close'] - data_point['open']) / \
|
||||
data_point['open']
|
||||
data_point['open']
|
||||
daily_return = DailyReturn(date=data_point['date'], returns=returns)
|
||||
benchmark_returns.append(daily_return)
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ def dump_treasury_curves():
|
||||
for curve in get_treasury_data():
|
||||
print curve
|
||||
date_as_tuple = curve['date'].timetuple()[0:6] + \
|
||||
(curve['date'].microsecond,)
|
||||
(curve['date'].microsecond,)
|
||||
# Not ideal but massaging data into expected format
|
||||
del curve['date']
|
||||
tr = (date_as_tuple, curve)
|
||||
@@ -57,13 +57,13 @@ def dump_benchmarks():
|
||||
Puts source treasury and data into zipline.
|
||||
"""
|
||||
benchmark_path = os.path.join(os.path.dirname(__file__),
|
||||
"benchmark.msgpack")
|
||||
"benchmark.msgpack")
|
||||
benchmark_fp = open(benchmark_path, "wb")
|
||||
benchmark_data = []
|
||||
for daily_return in get_benchmark_returns():
|
||||
print daily_return
|
||||
date_as_tuple = daily_return.date.timetuple()[0:6] + \
|
||||
(daily_return.date.microsecond,)
|
||||
(daily_return.date.microsecond,)
|
||||
# Not ideal but massaging data into expected format
|
||||
benchmark = (date_as_tuple, daily_return.returns)
|
||||
benchmark_data.append(benchmark)
|
||||
|
||||
@@ -127,7 +127,7 @@ def _row_cb(mapping, row):
|
||||
target: apply_mapping(mapping, row)
|
||||
for target, mapping
|
||||
in mapping.iteritems()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def make_row_cb(mapping):
|
||||
|
||||
@@ -132,10 +132,10 @@ class RiskMetricsBase(object):
|
||||
self.treasury_period_return = self.choose_treasury()
|
||||
self.sharpe = self.calculate_sharpe()
|
||||
self.beta, self.algorithm_covariance, self.benchmark_variance, \
|
||||
self.condition_number, self.eigen_values = self.calculate_beta()
|
||||
self.condition_number, self.eigen_values = self.calculate_beta()
|
||||
self.alpha = self.calculate_alpha()
|
||||
self.excess_return = self.algorithm_period_returns - \
|
||||
self.treasury_period_return
|
||||
self.treasury_period_return
|
||||
self.max_drawdown = self.calculate_max_drawdown()
|
||||
|
||||
def to_dict(self):
|
||||
@@ -203,8 +203,8 @@ class RiskMetricsBase(object):
|
||||
returns = [
|
||||
x.returns for x in daily_returns
|
||||
if x.date >= self.start_date and
|
||||
x.date <= self.end_date and
|
||||
self.trading_environment.is_trading_day(x.date)
|
||||
x.date <= self.end_date and
|
||||
self.trading_environment.is_trading_day(x.date)
|
||||
]
|
||||
|
||||
period_returns = 1.0
|
||||
@@ -226,7 +226,7 @@ class RiskMetricsBase(object):
|
||||
return 0.0
|
||||
|
||||
return ((self.algorithm_period_returns - self.treasury_period_return) /
|
||||
self.algorithm_volatility)
|
||||
self.algorithm_volatility)
|
||||
|
||||
def calculate_beta(self):
|
||||
"""
|
||||
@@ -564,7 +564,7 @@ class RiskReport(object):
|
||||
self,
|
||||
algorithm_returns,
|
||||
trading_environment,
|
||||
):
|
||||
):
|
||||
"""
|
||||
algorithm_returns needs to be a list of daily_return objects
|
||||
sorted in date ascending order
|
||||
|
||||
@@ -101,7 +101,7 @@ class VolumeShareSlippage(object):
|
||||
self.volume_limit)
|
||||
simulated_amount = int(volume_share * event.volume * direction)
|
||||
simulated_impact = (volume_share) ** 2 \
|
||||
* self.price_impact * direction * event.price
|
||||
* self.price_impact * direction * event.price
|
||||
|
||||
order.filled += (simulated_amount - total_order)
|
||||
total_order = simulated_amount
|
||||
|
||||
+5
-5
@@ -168,11 +168,11 @@ class SpecificEquityTrades(object):
|
||||
# in this context the count is the number of
|
||||
# trades per sid, not the total.
|
||||
dates = date_gen(
|
||||
count=self.count,
|
||||
start=self.start,
|
||||
delta=self.delta,
|
||||
repeats=len(self.sids),
|
||||
)
|
||||
count=self.count,
|
||||
start=self.start,
|
||||
delta=self.delta,
|
||||
repeats=len(self.sids),
|
||||
)
|
||||
else:
|
||||
dates = date_gen(
|
||||
count=self.count,
|
||||
|
||||
@@ -110,6 +110,6 @@ class MovingStandardDevWindow(EventWindow):
|
||||
else:
|
||||
average = self.sum / len(self)
|
||||
s_squared = (self.sum_sqr - self.sum * average) \
|
||||
/ (len(self) - 1)
|
||||
/ (len(self) - 1)
|
||||
stddev = sqrt(s_squared)
|
||||
return stddev
|
||||
|
||||
@@ -72,9 +72,9 @@ class StatefulTransform(object):
|
||||
"""
|
||||
def __init__(self, tnfm_class, *args, **kwargs):
|
||||
assert isinstance(tnfm_class, (types.ObjectType, types.ClassType)), \
|
||||
"Stateful transform requires a class."
|
||||
"Stateful transform requires a class."
|
||||
assert hasattr(tnfm_class, 'update'), \
|
||||
"Stateful transform requires the class to have an update method"
|
||||
"Stateful transform requires the class to have an update method"
|
||||
|
||||
# Flag set inside the Passthrough transform class to signify special
|
||||
# behavior if we are being fed to merged_transforms.
|
||||
|
||||
Reference in New Issue
Block a user