In [1]:
%matplotlib inline
In [2]:
run simplesystem.py
{'rule0': TradingRule; function: <function ewmac_forecast_with_defaults at 0x7f4e282cad08>, data: and other_args: }
{'ewmac': TradingRule; function: <function ewmac_forecast_with_defaults at 0x7f4e282cad08>, data: and other_args: }
System with .config, .data, and .stages: rules
/home/chris/src/pysystemtrade/sysdata/data.py:58: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
dailyprice = instrprice.resample("1B", how="last")
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=128,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
/home/chris/src/pysystemtrade/syscore/algos.py:136: FutureWarning: pd.ewm_std is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=35,min_periods=10).std(bias=False)
vol = pd.ewmstd(x, span=days, min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/algos.py:143: FutureWarning: pd.rolling_quantile is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=100,window=500).quantile(quantile=0.05)
vol, floor_days, floor_min_quant, floor_min_periods)
2016-11-07 0.100716
2016-11-08 -0.011247
2016-11-09 -0.237658
2016-11-10 -0.513974
2016-11-11 -0.835147
Freq: B, dtype: float64
TradingRule; function: <function ewmac_forecast_with_defaults at 0x7f4e282cad08>, data: and other_args: Lslow, Lfast
/home/chris/src/pysystemtrade/syscore/algos.py:186: FutureWarning: pd.rolling_mean is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=500,window=250000).mean()
avg_abs_value = pd.rolling_mean(x, window=window, min_periods=min_periods)
2016-11-07 2.852933
2016-11-08 2.853191
2016-11-09 2.853442
2016-11-10 2.853675
2016-11-11 2.853896
Freq: B, dtype: float64
2016-11-07 0.266898
2016-11-08 -0.029803
2016-11-09 -0.629794
2016-11-10 -1.362031
2016-11-11 -2.213139
Freq: B, dtype: float64
WARNING: No forecast weights - using equal weights of 0.5000 over all 2 trading rules in system
/home/chris/src/pysystemtrade/sysdata/data.py:58: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
dailyprice = instrprice.resample("1B", how="last")
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=128,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
/home/chris/src/pysystemtrade/syscore/algos.py:136: FutureWarning: pd.ewm_std is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=35,min_periods=10).std(bias=False)
vol = pd.ewmstd(x, span=days, min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/algos.py:143: FutureWarning: pd.rolling_quantile is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=100,window=500).quantile(quantile=0.05)
vol, floor_days, floor_min_quant, floor_min_periods)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=8,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
/home/chris/src/pysystemtrade/systems/forecast_combine.py:389: FutureWarning: pd.ewm_mean is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(adjust=True,ignore_na=False,com=125,min_periods=0).mean()
forecast_weights = pd.ewma(forecast_weights, weighting)
ewmac32 ewmac8
2016-11-07 0.5 0.5
2016-11-08 0.5 0.5
2016-11-09 0.5 0.5
2016-11-10 0.5 0.5
2016-11-11 0.5 0.5
2016-11-07 1.0
2016-11-08 1.0
2016-11-09 1.0
2016-11-10 1.0
2016-11-11 1.0
Freq: B, dtype: float64
Calculating forecast weights for EDOLLAR
Calculating raw forecast weights for EDOLLAR
Calculating capped forecast for CORN ewmac32
Calculating raw forecast CORN for ewmac32
Calculating capped forecast for EDOLLAR ewmac32
Calculating raw forecast EDOLLAR for ewmac32
Calculating capped forecast for SP500 ewmac32
Calculating raw forecast SP500 for ewmac32
Calculating capped forecast for US10 ewmac32
Calculating raw forecast US10 for ewmac32
/home/chris/src/pysystemtrade/syscore/pdutils.py:23: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
avg_daily = float(norm_x.diff().abs().resample("1B", how="sum").mean())
Calculating capped forecast for CORN ewmac8
Calculating raw forecast CORN for ewmac8
Calculating capped forecast for EDOLLAR ewmac8
Calculating raw forecast EDOLLAR for ewmac8
Calculating capped forecast for SP500 ewmac8
Calculating raw forecast SP500 for ewmac8
Calculating capped forecast for US10 ewmac8
Calculating raw forecast US10 for ewmac8
Only this set of rules ['ewmac32'] is cheap enough to trade for EDOLLAR
Only this set of rules ['ewmac32', 'ewmac8'] is cheap enough to trade for CORN
Only this set of rules ['ewmac32', 'ewmac8'] is cheap enough to trade for SP500
Only this set of rules ['ewmac32', 'ewmac8'] is cheap enough to trade for US10
Calculating raw forecast weights for EDOLLAR, over EDOLLAR
Calculating pandl for instrument rules for EDOLLAR
Calculating pandl for instrument forecast for EDOLLAR ewmac32
/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
daily_returns = returns_df.resample("1B", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
weekly_returns = returns_df.resample("W", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
monthly_returns = returns_df.resample("MS", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
annual_returns = returns_df.resample("A", how="sum")
/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
data_item in data_gross]
/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
data_item in data_costs]
Using cost multiplier on optimisation of 0.00
Optimising...
Optimising for data from 1983-10-02 00:00:00 to 1984-10-31 00:00:00
Optimising for data from 1984-10-31 00:00:00 to 1985-10-31 00:00:00
Optimising for data from 1985-10-31 00:00:00 to 1986-10-31 00:00:00
Optimising for data from 1986-10-31 00:00:00 to 1987-10-31 00:00:00
Optimising for data from 1987-10-31 00:00:00 to 1988-10-31 00:00:00
Optimising for data from 1988-10-31 00:00:00 to 1989-10-31 00:00:00
Optimising for data from 1989-10-31 00:00:00 to 1990-10-31 00:00:00
Optimising for data from 1990-10-31 00:00:00 to 1991-10-31 00:00:00
Optimising for data from 1991-10-31 00:00:00 to 1992-10-31 00:00:00
Optimising for data from 1992-10-31 00:00:00 to 1993-10-31 00:00:00
Optimising for data from 1993-10-31 00:00:00 to 1994-10-31 00:00:00
Optimising for data from 1994-10-31 00:00:00 to 1995-10-31 00:00:00
Optimising for data from 1995-10-31 00:00:00 to 1996-10-31 00:00:00
Optimising for data from 1996-10-31 00:00:00 to 1997-10-31 00:00:00
Optimising for data from 1997-10-31 00:00:00 to 1998-10-31 00:00:00
Optimising for data from 1998-10-31 00:00:00 to 1999-10-31 00:00:00
Optimising for data from 1999-10-31 00:00:00 to 2000-10-31 00:00:00
Optimising for data from 2000-10-31 00:00:00 to 2001-10-31 00:00:00
Optimising for data from 2001-10-31 00:00:00 to 2002-10-31 00:00:00
Optimising for data from 2002-10-31 00:00:00 to 2003-10-31 00:00:00
Optimising for data from 2003-10-31 00:00:00 to 2004-10-31 00:00:00
Optimising for data from 2004-10-31 00:00:00 to 2005-10-31 00:00:00
Optimising for data from 2005-10-31 00:00:00 to 2006-10-31 00:00:00
Optimising for data from 2006-10-31 00:00:00 to 2007-10-31 00:00:00
Optimising for data from 2007-10-31 00:00:00 to 2008-10-31 00:00:00
Optimising for data from 2008-10-31 00:00:00 to 2009-10-31 00:00:00
Optimising for data from 2009-10-31 00:00:00 to 2010-10-31 00:00:00
Optimising for data from 2010-10-31 00:00:00 to 2011-10-31 00:00:00
Optimising for data from 2011-10-31 00:00:00 to 2012-10-31 00:00:00
Optimising for data from 2012-10-31 00:00:00 to 2013-10-31 00:00:00
Optimising for data from 2013-10-31 00:00:00 to 2014-10-31 00:00:00
Optimising for data from 2014-10-31 00:00:00 to 2015-10-31 00:00:00
Optimising for data from 2015-10-31 00:00:00 to 2016-10-31 00:00:00
Optimising for data from 2016-10-31 00:00:00 to 2016-11-13 00:00:00
Applying cost weighting to optimisation results
/home/chris/src/pysystemtrade/systems/forecast_combine.py:389: FutureWarning: pd.ewm_mean is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(adjust=True,ignore_na=False,com=125,min_periods=0).mean()
forecast_weights = pd.ewma(forecast_weights, weighting)
/home/chris/src/pysystemtrade/syscore/correlations.py:280: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
data = data.resample(frequency, how="last")
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
ewmac32
2016-11-07 1.0
2016-11-08 1.0
2016-11-09 1.0
2016-11-10 1.0
2016-11-11 1.0
Calculating forecast div multiplier for EDOLLAR
Calculating forecast correlations over EDOLLAR
Correlation estimate
Estimating from 1983-10-02 00:00:00 to 1984-10-31 00:00:00
Estimating from 1984-10-31 00:00:00 to 1985-10-31 00:00:00
Estimating from 1985-10-31 00:00:00 to 1986-10-31 00:00:00
Estimating from 1986-10-31 00:00:00 to 1987-10-31 00:00:00
Estimating from 1987-10-31 00:00:00 to 1988-10-31 00:00:00
Estimating from 1988-10-31 00:00:00 to 1989-10-31 00:00:00
Estimating from 1989-10-31 00:00:00 to 1990-10-31 00:00:00
Estimating from 1990-10-31 00:00:00 to 1991-10-31 00:00:00
Estimating from 1991-10-31 00:00:00 to 1992-10-31 00:00:00
Estimating from 1992-10-31 00:00:00 to 1993-10-31 00:00:00
Estimating from 1993-10-31 00:00:00 to 1994-10-31 00:00:00
Estimating from 1994-10-31 00:00:00 to 1995-10-31 00:00:00
Estimating from 1995-10-31 00:00:00 to 1996-10-31 00:00:00
Estimating from 1996-10-31 00:00:00 to 1997-10-31 00:00:00
Estimating from 1997-10-31 00:00:00 to 1998-10-31 00:00:00
Estimating from 1998-10-31 00:00:00 to 1999-10-31 00:00:00
Estimating from 1999-10-31 00:00:00 to 2000-10-31 00:00:00
Estimating from 2000-10-31 00:00:00 to 2001-10-31 00:00:00
Estimating from 2001-10-31 00:00:00 to 2002-10-31 00:00:00
Estimating from 2002-10-31 00:00:00 to 2003-10-31 00:00:00
Estimating from 2003-10-31 00:00:00 to 2004-10-31 00:00:00
Estimating from 2004-10-31 00:00:00 to 2005-10-31 00:00:00
Estimating from 2005-10-31 00:00:00 to 2006-10-31 00:00:00
Estimating from 2006-10-31 00:00:00 to 2007-10-31 00:00:00
Estimating from 2007-10-31 00:00:00 to 2008-10-31 00:00:00
Estimating from 2008-10-31 00:00:00 to 2009-10-31 00:00:00
Estimating from 2009-10-31 00:00:00 to 2010-10-31 00:00:00
Estimating from 2010-10-31 00:00:00 to 2011-10-31 00:00:00
Estimating from 2011-10-31 00:00:00 to 2012-10-31 00:00:00
Estimating from 2012-10-31 00:00:00 to 2013-10-31 00:00:00
Estimating from 2013-10-31 00:00:00 to 2014-10-31 00:00:00
Estimating from 2014-10-31 00:00:00 to 2015-10-31 00:00:00
Estimating from 2015-10-31 00:00:00 to 2016-10-31 00:00:00
Estimating from 2016-10-31 00:00:00 to 2016-11-13 00:00:00
2016-11-07 1.0
2016-11-08 1.0
2016-11-09 1.0
2016-11-10 1.0
2016-11-11 1.0
Freq: B, dtype: float64
/home/chris/src/pysystemtrade/syscore/divmultipliers.py:94: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=125,min_periods=0).mean()
div_mult_df = pd.ewma(div_mult_df, span=ewma_span)
Calculating combined forecast for EDOLLAR
Calculating forecast weights for EDOLLAR
Calculating raw forecast weights for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac32
Calculating raw forecast EDOLLAR for ewmac32
Loading csv data for EDOLLAR
/home/chris/src/pysystemtrade/sysdata/data.py:58: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
dailyprice = instrprice.resample("1B", how="last")
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=128,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
/home/chris/src/pysystemtrade/syscore/algos.py:136: FutureWarning: pd.ewm_std is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=35,min_periods=10).std(bias=False)
vol = pd.ewmstd(x, span=days, min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/algos.py:143: FutureWarning: pd.rolling_quantile is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=100,window=500).quantile(quantile=0.05)
vol, floor_days, floor_min_quant, floor_min_periods)
Calculating capped forecast for EDOLLAR ewmac8
Calculating raw forecast EDOLLAR for ewmac8
Loading csv data for EDOLLAR
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=8,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
Calculating diversification multiplier for EDOLLAR
Adding config defaults
Loading csv data for EDOLLAR
2016-11-07 0.041016
2016-11-08 0.040556
2016-11-09 0.061289
2016-11-10 0.065830
2016-11-11 0.064155
Freq: B, dtype: float64
Getting block value for EDOLLAR
Loading csv data for EDOLLAR
Loading csv instrument config
2016-11-07 2464.0000
2016-11-08 2462.7500
2016-11-09 2457.3750
2016-11-10 2454.0000
2016-11-11 2452.9375
Freq: B, Name: price, dtype: float64
Loading csv data for EDOLLAR
Loading csv instrument config
(1983-09-26 71.131192
1983-09-27 71.021192
1983-09-28 70.971192
1983-09-29 70.951192
1983-09-30 70.991192
1983-10-03 71.021192
1983-10-04 71.021192
1983-10-05 71.081192
1983-10-06 71.091192
1983-10-07 71.101192
1983-10-10 71.101192
1983-10-11 70.951192
1983-10-12 70.991192
1983-10-13 70.951192
1983-10-14 71.011192
1983-10-17 71.141192
1983-10-18 71.091192
1983-10-19 71.091192
1983-10-20 71.051192
1983-10-21 71.051192
1983-10-24 70.941192
1983-10-25 70.921192
1983-10-26 70.921192
1983-10-27 70.931192
1983-10-28 70.901192
1983-10-31 70.851192
1983-11-01 70.831192
1983-11-02 70.831192
1983-11-03 70.731192
1983-11-04 70.561192
...
2016-10-03 98.700000
2016-10-04 98.645000
2016-10-05 98.625000
2016-10-06 98.580000
2016-10-07 98.610000
2016-10-10 98.545000
2016-10-11 98.560000
2016-10-12 98.575000
2016-10-13 98.610000
2016-10-14 98.575000
2016-10-17 98.605000
2016-10-18 98.632500
2016-10-19 98.645000
2016-10-20 98.610000
2016-10-21 98.630000
2016-10-24 98.590000
2016-10-25 98.590000
2016-10-26 98.555000
2016-10-27 98.505000
2016-10-28 98.535000
2016-10-31 98.545000
2016-11-01 98.575000
2016-11-02 98.600000
2016-11-03 98.595000
2016-11-04 98.625000
2016-11-07 98.560000
2016-11-08 98.510000
2016-11-09 98.295000
2016-11-10 98.160000
2016-11-11 98.117500
Freq: B, Name: price, dtype: float64, 2500)
Calculating instrument value vol for EDOLLAR
Calculating instrument currency vol for EDOLLAR
Getting fx rates for EDOLLAR
Getting vol target
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
2040-12-04 NaN
2040-12-05 NaN
2040-12-06 NaN
2040-12-07 NaN
2040-12-10 NaN
dtype: float64
Calculating volatility scalar for EDOLLAR
2040-12-04 NaN
2040-12-05 NaN
2040-12-06 NaN
2040-12-07 NaN
2040-12-10 NaN
dtype: float64
{'daily_cash_vol_target': 7812.5, 'percentage_vol_target': 25.0, 'notional_trading_capital': 500000.0, 'annual_cash_vol_target': 125000.0, 'base_currency': 'GBP'}
Calculating subsystem position for EDOLLAR
Calculating combined forecast for EDOLLAR
Calculating forecast weights for EDOLLAR
Calculating raw forecast weights for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac32
Calculating raw forecast EDOLLAR for ewmac32
Loading csv data for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac8
Calculating raw forecast EDOLLAR for ewmac8
Loading csv data for EDOLLAR
Calculating diversification multiplier for EDOLLAR
2016-11-07 -17.491603
2016-11-08 -26.428721
2016-11-09 -26.687302
2016-11-10 -39.665070
2016-11-11 -57.253173
Freq: B, dtype: float64
Adding config defaults
Calculating instrument weights
Getting raw instrument weights
Calculating raw instrument weights
Cost multiplier of 0.0 will be ignored as equalising SR in optimisation (equalise_SR=True)
Zero cost multiplier and not applying cost weightings - so costs won't be used at all
Cost multiplier of %2.f is less than one and not applying cost weightings - effect of costs may be underestimated
Getting vol target
Calculating pandl for subsystem for instrument CORN
Loading csv data for CORN
Calculating subsystem position for CORN
Calculating volatility scalar for CORN
Calculating instrument value vol for CORN
Calculating instrument currency vol for CORN
Getting block value for CORN
Loading csv data for CORN
Loading csv instrument config
Loading csv data for CORN
Getting fx rates for CORN
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for CORN
Calculating forecast weights for CORN
Calculating raw forecast weights for CORN
Calculating capped forecast for CORN ewmac32
Calculating raw forecast CORN for ewmac32
Loading csv data for CORN
Calculating capped forecast for CORN ewmac8
Calculating raw forecast CORN for ewmac8
Loading csv data for CORN
Calculating diversification multiplier for CORN
Loading csv instrument config
Loading csv cost file
/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
daily_returns = returns_df.resample("1B", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
weekly_returns = returns_df.resample("W", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
monthly_returns = returns_df.resample("MS", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
annual_returns = returns_df.resample("A", how="sum")
Calculating pandl for subsystem for instrument EDOLLAR
Loading csv data for EDOLLAR
Calculating subsystem position for EDOLLAR
Calculating volatility scalar for EDOLLAR
Calculating instrument value vol for EDOLLAR
Calculating instrument currency vol for EDOLLAR
Getting block value for EDOLLAR
Loading csv data for EDOLLAR
Loading csv instrument config
Loading csv data for EDOLLAR
Getting fx rates for EDOLLAR
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for EDOLLAR
Calculating forecast weights for EDOLLAR
Calculating raw forecast weights for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac32
Calculating raw forecast EDOLLAR for ewmac32
Loading csv data for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac8
Calculating raw forecast EDOLLAR for ewmac8
Loading csv data for EDOLLAR
Calculating diversification multiplier for EDOLLAR
Loading csv instrument config
Loading csv cost file
Calculating pandl for subsystem for instrument SP500
Loading csv data for SP500
Calculating subsystem position for SP500
Calculating volatility scalar for SP500
Calculating instrument value vol for SP500
Calculating instrument currency vol for SP500
Getting block value for SP500
Loading csv data for SP500
Loading csv instrument config
Loading csv data for SP500
Getting fx rates for SP500
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for SP500
Calculating forecast weights for SP500
Calculating raw forecast weights for SP500
Calculating capped forecast for SP500 ewmac32
Calculating raw forecast SP500 for ewmac32
Loading csv data for SP500
Calculating capped forecast for SP500 ewmac8
Calculating raw forecast SP500 for ewmac8
Loading csv data for SP500
Calculating diversification multiplier for SP500
Loading csv instrument config
Loading csv cost file
Calculating pandl for subsystem for instrument US10
Loading csv data for US10
Calculating subsystem position for US10
Calculating volatility scalar for US10
Calculating instrument value vol for US10
Calculating instrument currency vol for US10
Getting block value for US10
Loading csv data for US10
Loading csv instrument config
Loading csv data for US10
Getting fx rates for US10
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for US10
Calculating forecast weights for US10
Calculating raw forecast weights for US10
Calculating capped forecast for US10 ewmac32
Calculating raw forecast US10 for ewmac32
Loading csv data for US10
Calculating capped forecast for US10 ewmac8
Calculating raw forecast US10 for ewmac8
Loading csv data for US10
Calculating diversification multiplier for US10
Loading csv instrument config
Loading csv cost file
/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
data_item in data_gross]
/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
data_item in data_costs]
/home/chris/src/pysystemtrade/syscore/pdutils.py:23: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
avg_daily = float(norm_x.diff().abs().resample("1B", how="sum").mean())
Using cost multiplier on optimisation of 0.00
Optimising...
Optimising for data from 1981-09-27 00:00:00 to 2016-11-13 00:00:00
/home/chris/src/pysystemtrade/systems/portfolio.py:243: FutureWarning: pd.ewm_mean is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(adjust=True,ignore_na=False,com=125,min_periods=0).mean()
instrument_weights = pd.ewma(instrument_weights, weighting)
/home/chris/src/pysystemtrade/systems/portfolio.py:663: FutureWarning:
.resample() is now a deferred operation
You called diff(...) on this deferred object which materialized it into a dataframe
by implicitly taking the mean. Use .resample(...).mean() instead
pandl = pandl.cumsum().resample(frequency).diff()
/home/chris/src/pysystemtrade/syscore/correlations.py:280: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
data = data.resample(frequency, how="last")
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less
corrmat[corrmat < 0] = 0.0
CORN EDOLLAR SP500 US10
2016-11-07 0.274523 0.246297 0.279745 0.199436
2016-11-08 0.274523 0.246297 0.279745 0.199436
2016-11-09 0.274523 0.246297 0.279745 0.199436
2016-11-10 0.274523 0.246297 0.279745 0.199436
2016-11-11 0.274523 0.246297 0.279745 0.199436
Calculating instrument div. multiplier
Calculating instrument correlations
Correlation estimate
Estimating from 1981-09-27 00:00:00 to 1982-09-30 00:00:00
Estimating from 1982-09-30 00:00:00 to 1983-09-30 00:00:00
Estimating from 1983-09-30 00:00:00 to 1984-09-30 00:00:00
Estimating from 1984-09-30 00:00:00 to 1985-09-30 00:00:00
Estimating from 1985-09-30 00:00:00 to 1986-09-30 00:00:00
Estimating from 1986-09-30 00:00:00 to 1987-09-30 00:00:00
Estimating from 1987-09-30 00:00:00 to 1988-09-30 00:00:00
Estimating from 1988-09-30 00:00:00 to 1989-09-30 00:00:00
Estimating from 1989-09-30 00:00:00 to 1990-09-30 00:00:00
Estimating from 1990-09-30 00:00:00 to 1991-09-30 00:00:00
Estimating from 1991-09-30 00:00:00 to 1992-09-30 00:00:00
Estimating from 1992-09-30 00:00:00 to 1993-09-30 00:00:00
Estimating from 1993-09-30 00:00:00 to 1994-09-30 00:00:00
Estimating from 1994-09-30 00:00:00 to 1995-09-30 00:00:00
Estimating from 1995-09-30 00:00:00 to 1996-09-30 00:00:00
Estimating from 1996-09-30 00:00:00 to 1997-09-30 00:00:00
Estimating from 1997-09-30 00:00:00 to 1998-09-30 00:00:00
Estimating from 1998-09-30 00:00:00 to 1999-09-30 00:00:00
Estimating from 1999-09-30 00:00:00 to 2000-09-30 00:00:00
Estimating from 2000-09-30 00:00:00 to 2001-09-30 00:00:00
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less
corrmat[corrmat < 0] = 0.0
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less
corrmat[corrmat < 0] = 0.0
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less
corrmat[corrmat < 0] = 0.0
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less
corrmat[corrmat < 0] = 0.0
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less
corrmat[corrmat < 0] = 0.0
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less
corrmat[corrmat < 0] = 0.0
/home/chris/src/pysystemtrade/syscore/correlations.py:170: FutureWarning: pd.ewm_corr is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(span=500,ignore_na=False,min_periods=20,adjust=True).corr(pairwise=True,other=<DataFrame>)
min_periods=min_periods)
Estimating from 2001-09-30 00:00:00 to 2002-09-30 00:00:00
Estimating from 2002-09-30 00:00:00 to 2003-09-30 00:00:00
Estimating from 2003-09-30 00:00:00 to 2004-09-30 00:00:00
Estimating from 2004-09-30 00:00:00 to 2005-09-30 00:00:00
Estimating from 2005-09-30 00:00:00 to 2006-09-30 00:00:00
Estimating from 2006-09-30 00:00:00 to 2007-09-30 00:00:00
Estimating from 2007-09-30 00:00:00 to 2008-09-30 00:00:00
Estimating from 2008-09-30 00:00:00 to 2009-09-30 00:00:00
Estimating from 2009-09-30 00:00:00 to 2010-09-30 00:00:00
Estimating from 2010-09-30 00:00:00 to 2011-09-30 00:00:00
Estimating from 2011-09-30 00:00:00 to 2012-09-30 00:00:00
Estimating from 2012-09-30 00:00:00 to 2013-09-30 00:00:00
Estimating from 2013-09-30 00:00:00 to 2014-09-30 00:00:00
Estimating from 2014-09-30 00:00:00 to 2015-09-30 00:00:00
Estimating from 2015-09-30 00:00:00 to 2016-09-30 00:00:00
Estimating from 2016-09-30 00:00:00 to 2016-11-13 00:00:00
/home/chris/src/pysystemtrade/syscore/divmultipliers.py:94: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=125,min_periods=0).mean()
div_mult_df = pd.ewma(div_mult_df, span=ewma_span)
2016-11-07 1.677346
2016-11-08 1.677321
2016-11-09 1.677296
2016-11-10 1.677272
2016-11-11 1.677248
Freq: B, dtype: float64
Adding config defaults
Calculating notional position for EDOLLAR
Calculating diversification multiplier
Calculating instrument weights
Calculating raw instrument weights
Calculating subsystem position for CORN
Calculating volatility scalar for CORN
Calculating instrument value vol for CORN
Calculating instrument currency vol for CORN
Getting block value for CORN
Loading csv data for CORN
/home/chris/src/pysystemtrade/sysdata/data.py:58: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
dailyprice = instrprice.resample("1B", how="last")
Loading csv instrument config
Loading csv data for CORN
/home/chris/src/pysystemtrade/syscore/algos.py:136: FutureWarning: pd.ewm_std is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=35,min_periods=10).std(bias=False)
vol = pd.ewmstd(x, span=days, min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/algos.py:143: FutureWarning: pd.rolling_quantile is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=100,window=500).quantile(quantile=0.05)
vol, floor_days, floor_min_quant, floor_min_periods)
Getting fx rates for CORN
Getting vol target
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for CORN
Calculating forecast weights for CORN
Calculating raw forecast weights for CORN
Calculating capped forecast for CORN ewmac32
Calculating raw forecast CORN for ewmac32
Loading csv data for CORN
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=128,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
Calculating capped forecast for CORN ewmac8
Calculating raw forecast CORN for ewmac8
Loading csv data for CORN
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=8,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
/home/chris/src/pysystemtrade/systems/forecast_combine.py:389: FutureWarning: pd.ewm_mean is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(adjust=True,ignore_na=False,com=125,min_periods=0).mean()
forecast_weights = pd.ewma(forecast_weights, weighting)
Calculating diversification multiplier for CORN
Calculating subsystem position for EDOLLAR
Calculating volatility scalar for EDOLLAR
Calculating instrument value vol for EDOLLAR
Calculating instrument currency vol for EDOLLAR
Getting block value for EDOLLAR
Loading csv data for EDOLLAR
Loading csv instrument config
Loading csv data for EDOLLAR
Getting fx rates for EDOLLAR
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for EDOLLAR
Calculating forecast weights for EDOLLAR
Calculating raw forecast weights for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac32
Calculating raw forecast EDOLLAR for ewmac32
Loading csv data for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac8
Calculating raw forecast EDOLLAR for ewmac8
Loading csv data for EDOLLAR
Calculating diversification multiplier for EDOLLAR
Calculating subsystem position for SP500
Calculating volatility scalar for SP500
Calculating instrument value vol for SP500
Calculating instrument currency vol for SP500
Getting block value for SP500
Loading csv data for SP500
Loading csv instrument config
Loading csv data for SP500
Getting fx rates for SP500
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for SP500
Calculating forecast weights for SP500
Calculating raw forecast weights for SP500
Calculating capped forecast for SP500 ewmac32
Calculating raw forecast SP500 for ewmac32
Loading csv data for SP500
Calculating capped forecast for SP500 ewmac8
Calculating raw forecast SP500 for ewmac8
Loading csv data for SP500
Calculating diversification multiplier for SP500
Calculating subsystem position for US10
Calculating volatility scalar for US10
Calculating instrument value vol for US10
Calculating instrument currency vol for US10
Getting block value for US10
Loading csv data for US10
Loading csv instrument config
Loading csv data for US10
Getting fx rates for US10
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for US10
Calculating forecast weights for US10
Calculating raw forecast weights for US10
Calculating capped forecast for US10 ewmac32
Calculating raw forecast US10 for ewmac32
Loading csv data for US10
Calculating capped forecast for US10 ewmac8
Calculating raw forecast US10 for ewmac8
Loading csv data for US10
Calculating diversification multiplier for US10
/home/chris/src/pysystemtrade/systems/portfolio.py:243: FutureWarning: pd.ewm_mean is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(adjust=True,ignore_na=False,com=125,min_periods=0).mean()
instrument_weights = pd.ewma(instrument_weights, weighting)
2016-11-07 -10.494962
2016-11-08 -15.857233
2016-11-09 -16.012381
2016-11-10 -23.799042
2016-11-11 -34.351904
Freq: B, dtype: float64
Adding config defaults
Calculating pandl for portfolio
Getting vol target
Calculating pandl for instrument for CORN
Loading csv data for CORN
Calculating buffered positions
Calculating notional position for CORN
Calculating diversification multiplier
Calculating instrument weights
Calculating raw instrument weights
Calculating subsystem position for CORN
Calculating volatility scalar for CORN
Calculating instrument value vol for CORN
Calculating instrument currency vol for CORN
Getting block value for CORN
Loading csv data for CORN
Loading csv instrument config
Loading csv data for CORN
Getting fx rates for CORN
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for CORN
Calculating forecast weights for CORN
Calculating raw forecast weights for CORN
Calculating capped forecast for CORN ewmac32
Calculating raw forecast CORN for ewmac32
Loading csv data for CORN
Calculating capped forecast for CORN ewmac8
Calculating raw forecast CORN for ewmac8
Loading csv data for CORN
Calculating diversification multiplier for CORN
Calculating subsystem position for EDOLLAR
Calculating volatility scalar for EDOLLAR
Calculating instrument value vol for EDOLLAR
Calculating instrument currency vol for EDOLLAR
Getting block value for EDOLLAR
Loading csv data for EDOLLAR
Loading csv instrument config
Loading csv data for EDOLLAR
Getting fx rates for EDOLLAR
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for EDOLLAR
Calculating forecast weights for EDOLLAR
Calculating raw forecast weights for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac32
Calculating raw forecast EDOLLAR for ewmac32
Loading csv data for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac8
Calculating raw forecast EDOLLAR for ewmac8
Loading csv data for EDOLLAR
Calculating diversification multiplier for EDOLLAR
Calculating subsystem position for SP500
Calculating volatility scalar for SP500
Calculating instrument value vol for SP500
Calculating instrument currency vol for SP500
Getting block value for SP500
Loading csv data for SP500
Loading csv instrument config
Loading csv data for SP500
Getting fx rates for SP500
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for SP500
Calculating forecast weights for SP500
Calculating raw forecast weights for SP500
Calculating capped forecast for SP500 ewmac32
Calculating raw forecast SP500 for ewmac32
Loading csv data for SP500
Calculating capped forecast for SP500 ewmac8
Calculating raw forecast SP500 for ewmac8
Loading csv data for SP500
Calculating diversification multiplier for SP500
Calculating subsystem position for US10
Calculating volatility scalar for US10
Calculating instrument value vol for US10
Calculating instrument currency vol for US10
Getting block value for US10
Loading csv data for US10
Loading csv instrument config
Loading csv data for US10
Getting fx rates for US10
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for US10
Calculating forecast weights for US10
Calculating raw forecast weights for US10
Calculating capped forecast for US10 ewmac32
Calculating raw forecast US10 for ewmac32
Loading csv data for US10
Calculating capped forecast for US10 ewmac8
Calculating raw forecast US10 for ewmac8
Loading csv data for US10
Calculating diversification multiplier for US10
Calculating buffers for CORN
Calculating position method buffer for CORN
Loading csv instrument config
Loading csv cost file
/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
daily_returns = returns_df.resample("1B", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
weekly_returns = returns_df.resample("W", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
monthly_returns = returns_df.resample("MS", how="sum")
/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
annual_returns = returns_df.resample("A", how="sum")
/home/chris/src/pysystemtrade/syscore/pdutils.py:23: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).sum()
avg_daily = float(norm_x.diff().abs().resample("1B", how="sum").mean())
Calculating pandl for instrument for EDOLLAR
Loading csv data for EDOLLAR
Calculating buffered positions
Calculating notional position for EDOLLAR
Calculating buffers for EDOLLAR
Calculating position method buffer for EDOLLAR
Loading csv instrument config
Loading csv cost file
Calculating pandl for instrument for SP500
Loading csv data for SP500
Calculating buffered positions
Calculating notional position for SP500
Calculating buffers for SP500
Calculating position method buffer for SP500
Loading csv instrument config
Loading csv cost file
Calculating pandl for instrument for US10
Loading csv data for US10
Calculating buffered positions
Calculating notional position for US10
Calculating buffers for US10
Calculating position method buffer for US10
Loading csv instrument config
Loading csv cost file
/home/chris/src/pysystemtrade/syscore/pdutils.py:224: FutureWarning: pd.rolling_max is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=1,window=9166).max()
maxx = pd.rolling_max(x, len(x), min_periods=1)
/home/chris/src/pysystemtrade/syscore/pdutils.py:224: FutureWarning: pd.rolling_max is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=1,window=9166).max()
maxx = pd.rolling_max(x, len(x), min_periods=1)
/home/chris/src/pysystemtrade/syscore/pdutils.py:224: FutureWarning: pd.rolling_max is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=1,window=9166).max()
maxx = pd.rolling_max(x, len(x), min_periods=1)
/home/chris/src/pysystemtrade/syscore/pdutils.py:224: FutureWarning: pd.rolling_max is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=1,window=9166).max()
maxx = pd.rolling_max(x, len(x), min_periods=1)
[[('min', '-12.17'), ('max', '13.55'), ('median', '-0.0004523'), ('mean', '0.05236'), ('std', '1.684'), ('skew', '-0.1392'), ('ann_mean', '13.4'), ('ann_std', '26.94'), ('sharpe', '0.4975'), ('sortino', '0.6471'), ('avg_drawdown', '-20.81'), ('time_in_drawdown', '0.9682'), ('calmar', '0.2554'), ('avg_return_to_drawdown', '0.6441'), ('avg_loss', '-1.012'), ('avg_gain', '1.163'), ('gaintolossratio', '1.149'), ('profitfactor', '1.101'), ('hitrate', '0.4895'), ('t_stat', '2.546'), ('p_value', '0.01093')], ('You can also plot / print:', ['rolling_ann_std', 'drawdown', 'curve', 'percent', 'cumulative'])]
[[('min', '-12.17'), ('max', '13.55'), ('median', '0'), ('mean', '0.05285'), ('std', '1.684'), ('skew', '-0.1392'), ('ann_mean', '13.53'), ('ann_std', '26.94'), ('sharpe', '0.5021'), ('sortino', '0.642'), ('avg_drawdown', '-20.66'), ('time_in_drawdown', '0.9657'), ('calmar', '0.2602'), ('avg_return_to_drawdown', '0.655'), ('avg_loss', '-1.121'), ('avg_gain', '1.163'), ('gaintolossratio', '1.037'), ('profitfactor', '1.102'), ('hitrate', '0.5153'), ('t_stat', '2.569'), ('p_value', '0.01021')], ('You can also plot / print:', ['rolling_ann_std', 'drawdown', 'curve', 'percent', 'cumulative'])]
/home/chris/src/pysystemtrade/syscore/pdutils.py:224: FutureWarning: pd.rolling_max is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=1,window=9166).max()
maxx = pd.rolling_max(x, len(x), min_periods=1)
/home/chris/src/pysystemtrade/syscore/pdutils.py:224: FutureWarning: pd.rolling_max is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=1,window=9166).max()
maxx = pd.rolling_max(x, len(x), min_periods=1)
[[('min', '-12.17'), ('max', '13.55'), ('median', '-0.0004523'), ('mean', '0.05236'), ('std', '1.684'), ('skew', '-0.1392'), ('ann_mean', '13.4'), ('ann_std', '26.94'), ('sharpe', '0.4975'), ('sortino', '0.6471'), ('avg_drawdown', '-20.81'), ('time_in_drawdown', '0.9682'), ('calmar', '0.2554'), ('avg_return_to_drawdown', '0.6441'), ('avg_loss', '-1.012'), ('avg_gain', '1.163'), ('gaintolossratio', '1.149'), ('profitfactor', '1.101'), ('hitrate', '0.4895'), ('t_stat', '2.546'), ('p_value', '0.01093')], ('You can also plot / print:', ['rolling_ann_std', 'drawdown', 'curve', 'percent', 'cumulative'])]
Config with elements: base_currency, forecast_div_multiplier, forecast_scalars, forecast_weights, instrument_div_multiplier, instrument_weights, notional_trading_capital, percentage_vol_target, trading_rules
Calculating notional position for EDOLLAR
Calculating diversification multiplier
Calculating instrument weights
Calculating raw instrument weights
Calculating subsystem position for CORN
Calculating volatility scalar for CORN
Calculating instrument value vol for CORN
Calculating instrument currency vol for CORN
Getting block value for CORN
Loading csv data for CORN
/home/chris/src/pysystemtrade/sysdata/data.py:58: FutureWarning: how in .resample() is deprecated
the new syntax is .resample(...).last()
dailyprice = instrprice.resample("1B", how="last")
Loading csv instrument config
Loading csv data for CORN
/home/chris/src/pysystemtrade/syscore/algos.py:136: FutureWarning: pd.ewm_std is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=35,min_periods=10).std(bias=False)
vol = pd.ewmstd(x, span=days, min_periods=min_periods)
/home/chris/src/pysystemtrade/syscore/algos.py:143: FutureWarning: pd.rolling_quantile is deprecated for Series and will be removed in a future version, replace with
Series.rolling(center=False,min_periods=100,window=500).quantile(quantile=0.05)
vol, floor_days, floor_min_quant, floor_min_periods)
Getting fx rates for CORN
Getting vol target
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for CORN
Calculating forecast weights for CORN
Calculating raw forecast weights for CORN
Calculating capped forecast for CORN ewmac32
Calculating raw forecast CORN for ewmac32
Loading csv data for CORN
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=128,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
Calculating capped forecast for CORN ewmac8
Calculating raw forecast CORN for ewmac8
Loading csv data for CORN
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:37: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=8,min_periods=0).mean()
fast_ewma = pd.ewma(price, span=Lfast)
/home/chris/src/pysystemtrade/systems/provided/example/rules.py:38: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with
Series.ewm(adjust=True,ignore_na=False,span=32,min_periods=0).mean()
slow_ewma = pd.ewma(price, span=Lslow)
/home/chris/src/pysystemtrade/systems/forecast_combine.py:389: FutureWarning: pd.ewm_mean is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(adjust=True,ignore_na=False,com=125,min_periods=0).mean()
forecast_weights = pd.ewma(forecast_weights, weighting)
Calculating diversification multiplier for CORN
Calculating subsystem position for EDOLLAR
Calculating volatility scalar for EDOLLAR
Calculating instrument value vol for EDOLLAR
Calculating instrument currency vol for EDOLLAR
Getting block value for EDOLLAR
Loading csv data for EDOLLAR
Loading csv instrument config
Loading csv data for EDOLLAR
Getting fx rates for EDOLLAR
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for EDOLLAR
Calculating forecast weights for EDOLLAR
Calculating raw forecast weights for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac32
Calculating raw forecast EDOLLAR for ewmac32
Loading csv data for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac8
Calculating raw forecast EDOLLAR for ewmac8
Loading csv data for EDOLLAR
Calculating diversification multiplier for EDOLLAR
Calculating subsystem position for SP500
Calculating volatility scalar for SP500
Calculating instrument value vol for SP500
Calculating instrument currency vol for SP500
Getting block value for SP500
Loading csv data for SP500
Loading csv instrument config
Loading csv data for SP500
Getting fx rates for SP500
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for SP500
Calculating forecast weights for SP500
Calculating raw forecast weights for SP500
Calculating capped forecast for SP500 ewmac32
Calculating raw forecast SP500 for ewmac32
Loading csv data for SP500
Calculating capped forecast for SP500 ewmac8
Calculating raw forecast SP500 for ewmac8
Loading csv data for SP500
Calculating diversification multiplier for SP500
Calculating subsystem position for US10
Calculating volatility scalar for US10
Calculating instrument value vol for US10
Calculating instrument currency vol for US10
Getting block value for US10
Loading csv data for US10
Loading csv instrument config
Loading csv data for US10
Getting fx rates for US10
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for US10
Calculating forecast weights for US10
Calculating raw forecast weights for US10
Calculating capped forecast for US10 ewmac32
Calculating raw forecast US10 for ewmac32
Loading csv data for US10
Calculating capped forecast for US10 ewmac8
Calculating raw forecast US10 for ewmac8
Loading csv data for US10
Calculating diversification multiplier for US10
/home/chris/src/pysystemtrade/systems/portfolio.py:243: FutureWarning: pd.ewm_mean is deprecated for DataFrame and will be removed in a future version, replace with
DataFrame.ewm(adjust=True,ignore_na=False,com=125,min_periods=0).mean()
instrument_weights = pd.ewma(instrument_weights, weighting)
2016-11-07 -10.494962
2016-11-08 -15.857233
2016-11-09 -16.012381
2016-11-10 -23.799042
2016-11-11 -34.351904
Freq: B, dtype: float64
Config with elements: base_currency, forecast_div_multiplier, forecast_weights, instrument_div_multiplier, instrument_weights, notional_trading_capital, percentage_vol_target, trading_rules
Calculating raw forecast EDOLLAR for ewmac32
Loading csv data for EDOLLAR
2016-11-07 0.100716
2016-11-08 -0.011247
2016-11-09 -0.237658
2016-11-10 -0.513974
2016-11-11 -0.835147
Freq: B, dtype: float64
Calculating raw forecast EDOLLAR for ewmac8
Loading csv data for EDOLLAR
2016-11-07 -0.671570
2016-11-08 -0.928725
2016-11-09 -1.305111
2016-11-10 -2.007488
2016-11-11 -2.735241
Freq: B, dtype: float64
Calculating capped forecast for EDOLLAR ewmac32
2016-11-07 0.266898
2016-11-08 -0.029803
2016-11-09 -0.629794
2016-11-10 -1.362031
2016-11-11 -2.213139
Freq: B, dtype: float64
2.65
Calculating combined forecast for EDOLLAR
Calculating forecast weights for EDOLLAR
Calculating raw forecast weights for EDOLLAR
Calculating capped forecast for EDOLLAR ewmac8
Calculating diversification multiplier for EDOLLAR
2016-11-07 -1.810832
2016-11-08 -2.723625
2016-11-09 -4.150784
2016-11-10 -6.600944
2016-11-11 -9.190453
Freq: B, dtype: float64
ewmac32 ewmac8
2016-11-07 0.5 0.5
2016-11-08 0.5 0.5
2016-11-09 0.5 0.5
2016-11-10 0.5 0.5
2016-11-11 0.5 0.5
Calculating subsystem position for EDOLLAR
Calculating volatility scalar for EDOLLAR
Calculating instrument value vol for EDOLLAR
Calculating instrument currency vol for EDOLLAR
Getting block value for EDOLLAR
Loading csv data for EDOLLAR
Loading csv instrument config
Loading csv data for EDOLLAR
Getting fx rates for EDOLLAR
Getting vol target
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
2016-11-07 -17.491603
2016-11-08 -26.428721
2016-11-09 -26.687302
2016-11-10 -39.665070
2016-11-11 -57.253173
Freq: B, dtype: float64
Calculating notional position for EDOLLAR
Calculating diversification multiplier
Calculating instrument weights
Calculating raw instrument weights
Calculating subsystem position for CORN
Calculating volatility scalar for CORN
Calculating instrument value vol for CORN
Calculating instrument currency vol for CORN
Getting block value for CORN
Loading csv data for CORN
Loading csv instrument config
Loading csv data for CORN
Getting fx rates for CORN
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for CORN
Calculating forecast weights for CORN
Calculating raw forecast weights for CORN
Calculating capped forecast for CORN ewmac32
Calculating raw forecast CORN for ewmac32
Loading csv data for CORN
Calculating capped forecast for CORN ewmac8
Calculating raw forecast CORN for ewmac8
Loading csv data for CORN
Calculating diversification multiplier for CORN
Calculating subsystem position for SP500
Calculating volatility scalar for SP500
Calculating instrument value vol for SP500
Calculating instrument currency vol for SP500
Getting block value for SP500
Loading csv data for SP500
Loading csv instrument config
Loading csv data for SP500
Getting fx rates for SP500
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for SP500
Calculating forecast weights for SP500
Calculating raw forecast weights for SP500
Calculating capped forecast for SP500 ewmac32
Calculating raw forecast SP500 for ewmac32
Loading csv data for SP500
Calculating capped forecast for SP500 ewmac8
Calculating raw forecast SP500 for ewmac8
Loading csv data for SP500
Calculating diversification multiplier for SP500
Calculating subsystem position for US10
Calculating volatility scalar for US10
Calculating instrument value vol for US10
Calculating instrument currency vol for US10
Getting block value for US10
Loading csv data for US10
Loading csv instrument config
Loading csv data for US10
Getting fx rates for US10
Loading csv instrument config
Loading csv fx data
Loading csv fx data
Loading csv fx data
Calculating combined forecast for US10
Calculating forecast weights for US10
Calculating raw forecast weights for US10
Calculating capped forecast for US10 ewmac32
Calculating raw forecast US10 for ewmac32
Loading csv data for US10
Calculating capped forecast for US10 ewmac8
Calculating raw forecast US10 for ewmac8
Loading csv data for US10
Calculating diversification multiplier for US10
2016-11-07 -10.494962
2016-11-08 -15.857233
2016-11-09 -16.012381
2016-11-10 -23.799042
2016-11-11 -34.351904
Freq: B, dtype: float64
In [3]:
my_account.portfolio().plot()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-0770d84b1b8f> in <module>()
----> 1 my_account.portfolio().plot()
/home/chris/miniconda2/envs/q/lib/python3.5/site-packages/pandas/tools/plotting.py in __call__(self, kind, ax, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, label, secondary_y, **kwds)
3598 colormap=colormap, table=table, yerr=yerr,
3599 xerr=xerr, label=label, secondary_y=secondary_y,
-> 3600 **kwds)
3601 __call__.__doc__ = plot_series.__doc__
3602
/home/chris/miniconda2/envs/q/lib/python3.5/site-packages/pandas/tools/plotting.py in plot_series(data, kind, ax, figsize, use_index, title, grid, legend, style, logx, logy, loglog, xticks, yticks, xlim, ylim, rot, fontsize, colormap, table, yerr, xerr, label, secondary_y, **kwds)
2672 yerr=yerr, xerr=xerr,
2673 label=label, secondary_y=secondary_y,
-> 2674 **kwds)
2675
2676
/home/chris/miniconda2/envs/q/lib/python3.5/site-packages/pandas/tools/plotting.py in _plot(data, x, y, subplots, ax, kind, **kwds)
2468 plot_obj = klass(data, subplots=subplots, ax=ax, kind=kind, **kwds)
2469
-> 2470 plot_obj.generate()
2471 plot_obj.draw()
2472 return plot_obj.result
/home/chris/miniconda2/envs/q/lib/python3.5/site-packages/pandas/tools/plotting.py in generate(self)
1039 def generate(self):
1040 self._args_adjust()
-> 1041 self._compute_plot_data()
1042 self._setup_subplots()
1043 self._make_plot()
/home/chris/miniconda2/envs/q/lib/python3.5/site-packages/pandas/tools/plotting.py in _compute_plot_data(self)
1136 if label is None and data.name is None:
1137 label = 'None'
-> 1138 data = data.to_frame(name=label)
1139
1140 numeric_data = data._convert(datetime=True)._get_numeric_data()
TypeError: to_frame() got an unexpected keyword argument 'name'
Content source: robcarver17/pysystemtrade
Similar notebooks: