{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "System with .config, .data, and .stages: accounts, portfolio, positionSize, combForecast, forecastScaleCap, rules\n",
      "Calculating notional position for EDOLLAR\n",
      "Calculating diversification multiplier\n",
      "Calculating instrument weights\n",
      "Calculating raw instrument weights\n",
      "Calculating subsystem position for CORN\n",
      "Calculating volatility scalar for CORN\n",
      "Calculating instrument value vol for CORN\n",
      "Calculating instrument currency vol for CORN\n",
      "Getting block value for CORN\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/sysdata/data.py:58: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  dailyprice = instrprice.resample(\"1B\", how=\"last\")\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=10,span=35).std(bias=False)\n",
      "  vol = pd.ewmstd(x, span=days, min_periods=min_periods)\n",
      "/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 \n",
      "\tSeries.rolling(min_periods=100,window=500,center=False).quantile(quantile=0.05)\n",
      "  vol, floor_days, floor_min_quant, floor_min_periods)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Getting fx rates for CORN\n",
      "Getting vol target\n",
      "Calculating combined forecast for CORN\n",
      "Calculating forecast weights for CORN\n",
      "Calculating raw forecast weights for CORN\n",
      "Calculating capped forecast for CORN ewmac32\n",
      "Calculating raw forecast CORN for ewmac32\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=32).mean()\n",
      "  fast_ewma = pd.ewma(price, span=Lfast)\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=128).mean()\n",
      "  slow_ewma = pd.ewma(price, span=Lslow)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating capped forecast for CORN ewmac8\n",
      "Calculating raw forecast CORN for ewmac8\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=8).mean()\n",
      "  fast_ewma = pd.ewma(price, span=Lfast)\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=32).mean()\n",
      "  slow_ewma = pd.ewma(price, span=Lslow)\n",
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  forecast_weights = pd.ewma(forecast_weights, weighting)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating diversification multiplier for CORN\n",
      "Calculating subsystem position for EDOLLAR\n",
      "Calculating volatility scalar for EDOLLAR\n",
      "Calculating instrument value vol for EDOLLAR\n",
      "Calculating instrument currency vol for EDOLLAR\n",
      "Getting block value for EDOLLAR\n",
      "Getting fx rates for EDOLLAR\n",
      "Calculating combined forecast for EDOLLAR\n",
      "Calculating forecast weights for EDOLLAR\n",
      "Calculating raw forecast weights for EDOLLAR\n",
      "Calculating capped forecast for EDOLLAR ewmac32\n",
      "Calculating raw forecast EDOLLAR for ewmac32\n",
      "Calculating capped forecast for EDOLLAR ewmac8\n",
      "Calculating raw forecast EDOLLAR for ewmac8\n",
      "Calculating diversification multiplier for EDOLLAR\n",
      "Calculating subsystem position for SP500\n",
      "Calculating volatility scalar for SP500\n",
      "Calculating instrument value vol for SP500\n",
      "Calculating instrument currency vol for SP500\n",
      "Getting block value for SP500\n",
      "Getting fx rates for SP500\n",
      "Calculating combined forecast for SP500\n",
      "Calculating forecast weights for SP500\n",
      "Calculating raw forecast weights for SP500\n",
      "Calculating capped forecast for SP500 ewmac32\n",
      "Calculating raw forecast SP500 for ewmac32\n",
      "Calculating capped forecast for SP500 ewmac8\n",
      "Calculating raw forecast SP500 for ewmac8\n",
      "Calculating diversification multiplier for SP500\n",
      "Calculating subsystem position for US10\n",
      "Calculating volatility scalar for US10\n",
      "Calculating instrument value vol for US10\n",
      "Calculating instrument currency vol for US10\n",
      "Getting block value for US10\n",
      "Getting fx rates for US10\n",
      "Calculating combined forecast for US10\n",
      "Calculating forecast weights for US10\n",
      "Calculating raw forecast weights for US10\n",
      "Calculating capped forecast for US10 ewmac32\n",
      "Calculating raw forecast US10 for ewmac32\n",
      "Calculating capped forecast for US10 ewmac8\n",
      "Calculating raw forecast US10 for ewmac8\n",
      "Calculating diversification multiplier for US10\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  instrument_weights = pd.ewma(instrument_weights, weighting)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2016-11-07   -10.494962\n",
      "2016-11-08   -15.857233\n",
      "2016-11-09   -16.012381\n",
      "2016-11-10   -23.799042\n",
      "2016-11-11   -34.351904\n",
      "Freq: B, dtype: float64\n",
      "Calculating notional position for EDOLLAR\n",
      "Calculating diversification multiplier\n",
      "Calculating instrument weights\n",
      "Calculating raw instrument weights\n",
      "Calculating subsystem position for CORN\n",
      "Calculating volatility scalar for CORN\n",
      "Calculating instrument value vol for CORN\n",
      "Calculating instrument currency vol for CORN\n",
      "Getting block value for CORN\n",
      "Loading csv data for CORN\n",
      "Loading csv instrument config\n",
      "Loading csv data for CORN\n",
      "Getting fx rates for CORN\n",
      "Getting vol target\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Loading csv fx data\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for CORN\n",
      "Calculating forecast weights for CORN\n",
      "Calculating raw forecast weights for CORN\n",
      "Calculating capped forecast for CORN ewmac32\n",
      "Calculating raw forecast CORN for ewmac32\n",
      "Loading csv data for CORN\n",
      "Calculating capped forecast for CORN ewmac8\n",
      "Calculating raw forecast CORN for ewmac8\n",
      "Loading csv data for CORN\n",
      "Calculating diversification multiplier for CORN\n",
      "Calculating subsystem position for EDOLLAR\n",
      "Calculating volatility scalar for EDOLLAR\n",
      "Calculating instrument value vol for EDOLLAR\n",
      "Calculating instrument currency vol for EDOLLAR\n",
      "Getting block value for EDOLLAR\n",
      "Loading csv data for EDOLLAR\n",
      "Loading csv instrument config\n",
      "Loading csv data for EDOLLAR\n",
      "Getting fx rates for EDOLLAR\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Loading csv fx data\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for EDOLLAR\n",
      "Calculating forecast weights for EDOLLAR\n",
      "Calculating raw forecast weights for EDOLLAR\n",
      "Calculating capped forecast for EDOLLAR ewmac32\n",
      "Calculating raw forecast EDOLLAR for ewmac32\n",
      "Loading csv data for EDOLLAR\n",
      "Calculating capped forecast for EDOLLAR ewmac8\n",
      "Calculating raw forecast EDOLLAR for ewmac8\n",
      "Loading csv data for EDOLLAR\n",
      "Calculating diversification multiplier for EDOLLAR\n",
      "Calculating subsystem position for SP500\n",
      "Calculating volatility scalar for SP500\n",
      "Calculating instrument value vol for SP500\n",
      "Calculating instrument currency vol for SP500\n",
      "Getting block value for SP500\n",
      "Loading csv data for SP500\n",
      "Loading csv instrument config\n",
      "Loading csv data for SP500\n",
      "Getting fx rates for SP500\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Loading csv fx data\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for SP500\n",
      "Calculating forecast weights for SP500\n",
      "Calculating raw forecast weights for SP500\n",
      "Calculating capped forecast for SP500 ewmac32\n",
      "Calculating raw forecast SP500 for ewmac32\n",
      "Loading csv data for SP500\n",
      "Calculating capped forecast for SP500 ewmac8\n",
      "Calculating raw forecast SP500 for ewmac8\n",
      "Loading csv data for SP500\n",
      "Calculating diversification multiplier for SP500\n",
      "Calculating subsystem position for US10\n",
      "Calculating volatility scalar for US10\n",
      "Calculating instrument value vol for US10\n",
      "Calculating instrument currency vol for US10\n",
      "Getting block value for US10\n",
      "Loading csv data for US10\n",
      "Loading csv instrument config\n",
      "Loading csv data for US10\n",
      "Getting fx rates for US10\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Loading csv fx data\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for US10\n",
      "Calculating forecast weights for US10\n",
      "Calculating raw forecast weights for US10\n",
      "Calculating capped forecast for US10 ewmac32\n",
      "Calculating raw forecast US10 for ewmac32\n",
      "Loading csv data for US10\n",
      "Calculating capped forecast for US10 ewmac8\n",
      "Calculating raw forecast US10 for ewmac8\n",
      "Loading csv data for US10\n",
      "Calculating diversification multiplier for US10\n",
      "2016-11-07   -10.494962\n",
      "2016-11-08   -15.857233\n",
      "2016-11-09   -16.012381\n",
      "2016-11-10   -23.799042\n",
      "2016-11-11   -34.351904\n",
      "Freq: B, dtype: float64\n",
      "Calculating pandl for portfolio\n",
      "Getting vol target\n",
      "Calculating pandl for instrument for CORN\n",
      "Loading csv data for CORN\n",
      "Calculating buffered positions\n",
      "Calculating notional position for CORN\n",
      "Calculating diversification multiplier\n",
      "Calculating instrument weights\n",
      "Calculating raw instrument weights\n",
      "Calculating subsystem position for CORN\n",
      "Calculating volatility scalar for CORN\n",
      "Calculating instrument value vol for CORN\n",
      "Calculating instrument currency vol for CORN\n",
      "Getting block value for CORN\n",
      "Loading csv carry data for CORN\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/futures/rawdata.py:236: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  daily_prices = prices.resample(\"1B\", how=\"last\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loading csv instrument config\n",
      "Calculating daily volatility for CORN\n",
      "Calculating daily prices for CORN\n",
      "Loading csv data for CORN\n",
      "Getting fx rates for CORN\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for CORN\n",
      "Calculating forecast weights for CORN\n",
      "Calculating raw forecast weights for CORN\n",
      "Calculating capped forecast for CORN carry\n",
      "Calculating raw forecast CORN for carry\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/futures/rawdata.py:203: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).mean()\n",
      "  annroll = annroll.resample(\"1B\", how=\"mean\")\n",
      "/home/chris/src/pysystemtrade/systems/provided/futures_chapter15/rules.py:81: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with \n",
      "\tSeries.ewm(com=90,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  smooth_carry = pd.ewma(raw_carry, smooth_days)\n",
      "/home/chris/src/pysystemtrade/systems/provided/futures_chapter15/rules.py:49: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=16).mean()\n",
      "  fast_ewma = pd.ewma(price, span=Lfast)\n",
      "/home/chris/src/pysystemtrade/systems/provided/futures_chapter15/rules.py:50: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=64).mean()\n",
      "  slow_ewma = pd.ewma(price, span=Lslow)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating capped forecast for CORN ewmac16_64\n",
      "Calculating raw forecast CORN for ewmac16_64\n",
      "Calculating capped forecast for CORN ewmac32_128\n",
      "Calculating raw forecast CORN for ewmac32_128\n",
      "Calculating capped forecast for CORN ewmac64_256\n",
      "Calculating raw forecast CORN for ewmac64_256\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/provided/futures_chapter15/rules.py:49: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=32).mean()\n",
      "  fast_ewma = pd.ewma(price, span=Lfast)\n",
      "/home/chris/src/pysystemtrade/systems/provided/futures_chapter15/rules.py:50: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=128).mean()\n",
      "  slow_ewma = pd.ewma(price, span=Lslow)\n",
      "/home/chris/src/pysystemtrade/systems/provided/futures_chapter15/rules.py:49: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=64).mean()\n",
      "  fast_ewma = pd.ewma(price, span=Lfast)\n",
      "/home/chris/src/pysystemtrade/systems/provided/futures_chapter15/rules.py:50: FutureWarning: pd.ewm_mean is deprecated for Series and will be removed in a future version, replace with \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=256).mean()\n",
      "  slow_ewma = pd.ewma(price, span=Lslow)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating diversification multiplier for CORN\n",
      "Calculating subsystem position for EDOLLAR\n",
      "Calculating volatility scalar for EDOLLAR\n",
      "Calculating instrument value vol for EDOLLAR\n",
      "Calculating instrument currency vol for EDOLLAR\n",
      "Getting block value for EDOLLAR\n",
      "Loading csv carry data for EDOLLAR\n",
      "Loading csv instrument config\n",
      "Calculating daily volatility for EDOLLAR\n",
      "Calculating daily prices for EDOLLAR\n",
      "Loading csv data for EDOLLAR\n",
      "Getting fx rates for EDOLLAR\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for EDOLLAR\n",
      "Calculating forecast weights for EDOLLAR\n",
      "Calculating raw forecast weights for EDOLLAR\n",
      "Calculating capped forecast for EDOLLAR carry\n",
      "Calculating raw forecast EDOLLAR for carry\n",
      "Calculating capped forecast for EDOLLAR ewmac16_64\n",
      "Calculating raw forecast EDOLLAR for ewmac16_64\n",
      "Calculating capped forecast for EDOLLAR ewmac32_128\n",
      "Calculating raw forecast EDOLLAR for ewmac32_128\n",
      "Calculating capped forecast for EDOLLAR ewmac64_256\n",
      "Calculating raw forecast EDOLLAR for ewmac64_256\n",
      "Calculating diversification multiplier for EDOLLAR\n",
      "Calculating subsystem position for EUROSTX\n",
      "Calculating volatility scalar for EUROSTX\n",
      "Calculating instrument value vol for EUROSTX\n",
      "Calculating instrument currency vol for EUROSTX\n",
      "Getting block value for EUROSTX\n",
      "Loading csv carry data for EUROSTX\n",
      "Loading csv instrument config\n",
      "Calculating daily volatility for EUROSTX\n",
      "Calculating daily prices for EUROSTX\n",
      "Loading csv data for EUROSTX\n",
      "Getting fx rates for EUROSTX\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for EUROSTX\n",
      "Calculating forecast weights for EUROSTX\n",
      "Calculating raw forecast weights for EUROSTX\n",
      "Calculating capped forecast for EUROSTX carry\n",
      "Calculating raw forecast EUROSTX for carry\n",
      "Calculating capped forecast for EUROSTX ewmac16_64\n",
      "Calculating raw forecast EUROSTX for ewmac16_64\n",
      "Calculating capped forecast for EUROSTX ewmac32_128\n",
      "Calculating raw forecast EUROSTX for ewmac32_128\n",
      "Calculating capped forecast for EUROSTX ewmac64_256\n",
      "Calculating raw forecast EUROSTX for ewmac64_256\n",
      "Calculating diversification multiplier for EUROSTX\n",
      "Calculating subsystem position for MXP\n",
      "Calculating volatility scalar for MXP\n",
      "Calculating instrument value vol for MXP\n",
      "Calculating instrument currency vol for MXP\n",
      "Getting block value for MXP\n",
      "Loading csv carry data for MXP\n",
      "Loading csv instrument config\n",
      "Calculating daily volatility for MXP\n",
      "Calculating daily prices for MXP\n",
      "Loading csv data for MXP\n",
      "Getting fx rates for MXP\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for MXP\n",
      "Calculating forecast weights for MXP\n",
      "Calculating raw forecast weights for MXP\n",
      "Calculating capped forecast for MXP carry\n",
      "Calculating raw forecast MXP for carry\n",
      "Calculating capped forecast for MXP ewmac16_64\n",
      "Calculating raw forecast MXP for ewmac16_64\n",
      "Calculating capped forecast for MXP ewmac32_128\n",
      "Calculating raw forecast MXP for ewmac32_128\n",
      "Calculating capped forecast for MXP ewmac64_256\n",
      "Calculating raw forecast MXP for ewmac64_256\n",
      "Calculating diversification multiplier for MXP\n",
      "Calculating subsystem position for US10\n",
      "Calculating volatility scalar for US10\n",
      "Calculating instrument value vol for US10\n",
      "Calculating instrument currency vol for US10\n",
      "Getting block value for US10\n",
      "Loading csv carry data for US10\n",
      "Loading csv instrument config\n",
      "Calculating daily volatility for US10\n",
      "Calculating daily prices for US10\n",
      "Loading csv data for US10\n",
      "Getting fx rates for US10\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for US10\n",
      "Calculating forecast weights for US10\n",
      "Calculating raw forecast weights for US10\n",
      "Calculating capped forecast for US10 carry\n",
      "Calculating raw forecast US10 for carry\n",
      "Calculating capped forecast for US10 ewmac16_64\n",
      "Calculating raw forecast US10 for ewmac16_64\n",
      "Calculating capped forecast for US10 ewmac32_128\n",
      "Calculating raw forecast US10 for ewmac32_128\n",
      "Calculating capped forecast for US10 ewmac64_256\n",
      "Calculating raw forecast US10 for ewmac64_256\n",
      "Calculating diversification multiplier for US10\n",
      "Calculating subsystem position for V2X\n",
      "Calculating volatility scalar for V2X\n",
      "Calculating instrument value vol for V2X\n",
      "Calculating instrument currency vol for V2X\n",
      "Getting block value for V2X\n",
      "Loading csv carry data for V2X\n",
      "Loading csv instrument config\n",
      "Calculating daily volatility for V2X\n",
      "Calculating daily prices for V2X\n",
      "Loading csv data for V2X\n",
      "Getting fx rates for V2X\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for V2X\n",
      "Calculating forecast weights for V2X\n",
      "Calculating raw forecast weights for V2X\n",
      "Calculating capped forecast for V2X carry\n",
      "Calculating raw forecast V2X for carry\n",
      "Calculating capped forecast for V2X ewmac16_64\n",
      "Calculating raw forecast V2X for ewmac16_64\n",
      "Calculating capped forecast for V2X ewmac32_128\n",
      "Calculating raw forecast V2X for ewmac32_128\n",
      "Calculating capped forecast for V2X ewmac64_256\n",
      "Calculating raw forecast V2X for ewmac64_256\n",
      "Calculating diversification multiplier for V2X\n",
      "Calculating buffers for CORN\n",
      "Calculating position method buffer for CORN\n",
      "Loading csv instrument config\n",
      "Loading csv cost file\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  daily_returns = returns_df.resample(\"1B\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  weekly_returns = returns_df.resample(\"W\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  monthly_returns = returns_df.resample(\"MS\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  annual_returns = returns_df.resample(\"A\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/pdutils.py:23: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  avg_daily = float(norm_x.diff().abs().resample(\"1B\", how=\"sum\").mean())\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating pandl for instrument for EDOLLAR\n",
      "Loading csv data for EDOLLAR\n",
      "Calculating buffered positions\n",
      "Calculating notional position for EDOLLAR\n",
      "Calculating buffers for EDOLLAR\n",
      "Calculating position method buffer for EDOLLAR\n",
      "Loading csv instrument config\n",
      "Loading csv cost file\n",
      "Calculating pandl for instrument for EUROSTX\n",
      "Loading csv data for EUROSTX\n",
      "Calculating buffered positions\n",
      "Calculating notional position for EUROSTX\n",
      "Calculating buffers for EUROSTX\n",
      "Calculating position method buffer for EUROSTX\n",
      "Loading csv instrument config\n",
      "Loading csv cost file\n",
      "Calculating pandl for instrument for MXP\n",
      "Loading csv data for MXP\n",
      "Calculating buffered positions\n",
      "Calculating notional position for MXP\n",
      "Calculating buffers for MXP\n",
      "Calculating position method buffer for MXP\n",
      "Loading csv instrument config\n",
      "Loading csv cost file\n",
      "Calculating pandl for instrument for US10\n",
      "Loading csv data for US10\n",
      "Calculating buffered positions\n",
      "Calculating notional position for US10\n",
      "Calculating buffers for US10\n",
      "Calculating position method buffer for US10\n",
      "Loading csv instrument config\n",
      "Loading csv cost file\n",
      "Calculating pandl for instrument for V2X\n",
      "Loading csv data for V2X\n",
      "Calculating buffered positions\n",
      "Calculating notional position for V2X\n",
      "Calculating buffers for V2X\n",
      "Calculating position method buffer for V2X\n",
      "Loading csv instrument config\n",
      "Loading csv cost file\n",
      "0.43920717096200507\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb2cc71b780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating pandl for portfolio\n",
      "Getting vol target\n",
      "Calculating pandl for instrument for CORN\n",
      "Loading csv data for CORN\n",
      "Calculating buffered positions\n",
      "Calculating notional position for CORN\n",
      "Calculating instrument div. multiplier\n",
      "Calculating instrument correlations\n",
      "Calculating pandl for subsystem for instrument CORN\n",
      "Calculating subsystem position for CORN\n",
      "Calculating volatility scalar for CORN\n",
      "Calculating instrument value vol for CORN\n",
      "Calculating instrument currency vol for CORN\n",
      "Getting block value for CORN\n",
      "Loading csv carry data for CORN\n",
      "Loading csv instrument config\n",
      "Calculating daily volatility for CORN\n",
      "Calculating daily prices for CORN\n",
      "Loading csv data for CORN\n",
      "Getting fx rates for CORN\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for CORN\n",
      "Calculating forecast weights for CORN\n",
      "Calculating raw forecast weights for CORN\n",
      "Calculating capped forecast for CORN carry\n",
      "Calculating raw forecast CORN for carry\n",
      "Getting forecast scalar for carry over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n",
      "Calculating raw forecast EDOLLAR for carry\n",
      "Loading csv carry data for EDOLLAR\n",
      "Calculating daily volatility for EDOLLAR\n",
      "Calculating daily prices for EDOLLAR\n",
      "Loading csv data for EDOLLAR\n",
      "Calculating raw forecast EUROSTX for carry\n",
      "Loading csv carry data for EUROSTX\n",
      "Calculating daily volatility for EUROSTX\n",
      "Calculating daily prices for EUROSTX\n",
      "Loading csv data for EUROSTX\n",
      "Calculating raw forecast MXP for carry\n",
      "Loading csv carry data for MXP\n",
      "Calculating daily volatility for MXP\n",
      "Calculating daily prices for MXP\n",
      "Loading csv data for MXP\n",
      "Calculating raw forecast US10 for carry\n",
      "Loading csv carry data for US10\n",
      "Calculating daily volatility for US10\n",
      "Calculating daily prices for US10\n",
      "Loading csv data for US10\n",
      "Calculating raw forecast V2X for carry\n",
      "Loading csv carry data for V2X\n",
      "Calculating daily volatility for V2X\n",
      "Calculating daily prices for V2X\n",
      "Loading csv data for V2X\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tSeries.rolling(min_periods=500,center=False,window=250000).mean()\n",
      "  avg_abs_value = pd.rolling_mean(x, window=window, min_periods=min_periods)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating capped forecast for EDOLLAR carry\n",
      "Calculating capped forecast for EUROSTX carry\n",
      "Calculating capped forecast for MXP carry\n",
      "Calculating capped forecast for US10 carry\n",
      "Calculating capped forecast for V2X carry\n",
      "Loading csv cost file\n",
      "Loading csv instrument config\n",
      "Calculating capped forecast for CORN ewmac16_64\n",
      "Calculating raw forecast CORN for ewmac16_64\n",
      "Getting forecast scalar for ewmac16_64 over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n",
      "Calculating raw forecast EDOLLAR for ewmac16_64\n",
      "Calculating raw forecast EUROSTX for ewmac16_64\n",
      "Calculating raw forecast MXP for ewmac16_64\n",
      "Calculating raw forecast US10 for ewmac16_64\n",
      "Calculating raw forecast V2X for ewmac16_64\n",
      "Calculating capped forecast for EDOLLAR ewmac16_64\n",
      "Calculating capped forecast for EUROSTX ewmac16_64\n",
      "Calculating capped forecast for MXP ewmac16_64\n",
      "Calculating capped forecast for US10 ewmac16_64\n",
      "Calculating capped forecast for V2X ewmac16_64\n",
      "Calculating capped forecast for CORN ewmac32_128\n",
      "Calculating raw forecast CORN for ewmac32_128\n",
      "Getting forecast scalar for ewmac32_128 over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n",
      "Calculating raw forecast EDOLLAR for ewmac32_128\n",
      "Calculating raw forecast EUROSTX for ewmac32_128\n",
      "Calculating raw forecast MXP for ewmac32_128\n",
      "Calculating raw forecast US10 for ewmac32_128\n",
      "Calculating raw forecast V2X for ewmac32_128\n",
      "Calculating capped forecast for EDOLLAR ewmac32_128\n",
      "Calculating capped forecast for EUROSTX ewmac32_128\n",
      "Calculating capped forecast for MXP ewmac32_128\n",
      "Calculating capped forecast for US10 ewmac32_128\n",
      "Calculating capped forecast for V2X ewmac32_128\n",
      "Calculating capped forecast for CORN ewmac64_256\n",
      "Calculating raw forecast CORN for ewmac64_256\n",
      "Getting forecast scalar for ewmac64_256 over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n",
      "Calculating raw forecast EDOLLAR for ewmac64_256\n",
      "Calculating raw forecast EUROSTX for ewmac64_256\n",
      "Calculating raw forecast MXP for ewmac64_256\n",
      "Calculating raw forecast US10 for ewmac64_256\n",
      "Calculating raw forecast V2X for ewmac64_256\n",
      "Calculating capped forecast for EDOLLAR ewmac64_256\n",
      "Calculating capped forecast for EUROSTX ewmac64_256\n",
      "Calculating capped forecast for MXP ewmac64_256\n",
      "Calculating capped forecast for US10 ewmac64_256\n",
      "Calculating capped forecast for V2X ewmac64_256\n",
      "Only this set of rules ['carry', 'ewmac16_64', 'ewmac32_128', 'ewmac64_256'] is cheap enough to trade for CORN\n",
      "Loading csv cost file\n",
      "Loading csv instrument config\n",
      "Loading csv data for EDOLLAR\n",
      "Only this set of rules ['carry', 'ewmac16_64', 'ewmac32_128', 'ewmac64_256'] is cheap enough to trade for EDOLLAR\n",
      "Loading csv cost file\n",
      "Loading csv instrument config\n",
      "Loading csv data for EUROSTX\n",
      "Only this set of rules ['carry', 'ewmac16_64', 'ewmac32_128', 'ewmac64_256'] is cheap enough to trade for EUROSTX\n",
      "Loading csv cost file\n",
      "Loading csv instrument config\n",
      "Loading csv data for MXP\n",
      "Only this set of rules ['carry', 'ewmac16_64', 'ewmac32_128', 'ewmac64_256'] is cheap enough to trade for MXP\n",
      "Loading csv cost file\n",
      "Loading csv instrument config\n",
      "Loading csv data for US10\n",
      "Only this set of rules ['carry', 'ewmac16_64', 'ewmac32_128', 'ewmac64_256'] is cheap enough to trade for US10\n",
      "Loading csv cost file\n",
      "Loading csv instrument config\n",
      "Loading csv data for V2X\n",
      "Only this set of rules ['carry', 'ewmac16_64', 'ewmac32_128', 'ewmac64_256'] is cheap enough to trade for V2X\n",
      "Calculating raw forecast weights for CORN, over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n",
      "Calculating pandl for instrument rules for CORN\n",
      "Calculating pandl for instrument forecast for CORN carry\n",
      "Calculating pandl for instrument forecast for CORN ewmac16_64\n",
      "Calculating pandl for instrument forecast for CORN ewmac32_128\n",
      "Calculating pandl for instrument forecast for CORN ewmac64_256\n",
      "Calculating pandl for instrument rules for EDOLLAR\n",
      "Calculating pandl for instrument forecast for EDOLLAR carry\n",
      "Calculating pandl for instrument forecast for EDOLLAR ewmac16_64\n",
      "Calculating pandl for instrument forecast for EDOLLAR ewmac32_128\n",
      "Calculating pandl for instrument forecast for EDOLLAR ewmac64_256\n",
      "Calculating pandl for instrument rules for EUROSTX\n",
      "Calculating pandl for instrument forecast for EUROSTX carry\n",
      "Calculating pandl for instrument forecast for EUROSTX ewmac16_64\n",
      "Calculating pandl for instrument forecast for EUROSTX ewmac32_128\n",
      "Calculating pandl for instrument forecast for EUROSTX ewmac64_256\n",
      "Calculating pandl for instrument rules for MXP\n",
      "Calculating pandl for instrument forecast for MXP carry\n",
      "Calculating pandl for instrument forecast for MXP ewmac16_64\n",
      "Calculating pandl for instrument forecast for MXP ewmac32_128\n",
      "Calculating pandl for instrument forecast for MXP ewmac64_256\n",
      "Calculating pandl for instrument rules for US10\n",
      "Calculating pandl for instrument forecast for US10 carry\n",
      "Calculating pandl for instrument forecast for US10 ewmac16_64\n",
      "Calculating pandl for instrument forecast for US10 ewmac32_128\n",
      "Calculating pandl for instrument forecast for US10 ewmac64_256\n",
      "Calculating pandl for instrument rules for V2X\n",
      "Calculating pandl for instrument forecast for V2X carry\n",
      "Calculating pandl for instrument forecast for V2X ewmac16_64\n",
      "Calculating pandl for instrument forecast for V2X ewmac32_128\n",
      "Calculating pandl for instrument forecast for V2X ewmac64_256\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_gross]\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_costs]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cost multiplier on optimisation of 0.00\n",
      "Optimising...\n",
      "Optimising for data from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Optimising for data from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Optimising for data from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Optimising for data from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Optimising for data from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Optimising for data from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Optimising for data from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Optimising for data from 1988-09-30 00:00:00 to 1989-09-30 00:00:00\n",
      "Optimising for data from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Optimising for data from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Optimising for data from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Optimising for data from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Optimising for data from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Optimising for data from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n",
      "Optimising for data from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Optimising for data from 1996-09-30 00:00:00 to 1997-09-30 00:00:00\n",
      "Optimising for data from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Optimising for data from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Optimising for data from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Optimising for data from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Optimising for data from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Optimising for data from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n",
      "Optimising for data from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Optimising for data from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Optimising for data from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Optimising for data from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Optimising for data from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n",
      "Optimising for data from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Optimising for data from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n",
      "Optimising for data from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Optimising for data from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Optimising for data from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n",
      "Optimising for data from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Optimising for data from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Optimising for data from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n",
      "Optimising for data from 2016-09-30 00:00:00 to 2016-11-13 00:00:05\n",
      "Applying cost weighting to optimisation results\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  forecast_weights = pd.ewma(forecast_weights, weighting)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:280: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data = data.resample(frequency, how=\"last\")\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating forecast div multiplier for CORN\n",
      "Calculating forecast correlations over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n",
      "Correlation estimate\n",
      "Estimating from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Estimating from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Estimating from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Estimating from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Estimating from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Estimating from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Estimating from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Estimating from 1988-09-30 00:00:00 to 1989-09-30 00:00:00\n",
      "Estimating from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Estimating from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Estimating from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Estimating from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Estimating from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Estimating from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n",
      "Estimating from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Estimating from 1996-09-30 00:00:00 to 1997-09-30 00:00:00\n",
      "Estimating from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Estimating from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Estimating from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Estimating from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Estimating from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Estimating from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n",
      "Estimating from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Estimating from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Estimating from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Estimating from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Estimating from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n",
      "Estimating from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Estimating from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n",
      "Estimating from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Estimating from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Estimating from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n",
      "Estimating from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Estimating from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Estimating from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n",
      "Estimating from 2016-09-30 00:00:00 to 2016-11-13 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=125).mean()\n",
      "  div_mult_df = pd.ewma(div_mult_df, span=ewma_span)\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  daily_returns = returns_df.resample(\"1B\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  weekly_returns = returns_df.resample(\"W\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  monthly_returns = returns_df.resample(\"MS\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  annual_returns = returns_df.resample(\"A\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating pandl for subsystem for instrument EDOLLAR\n",
      "Calculating subsystem position for EDOLLAR\n",
      "Calculating volatility scalar for EDOLLAR\n",
      "Calculating instrument value vol for EDOLLAR\n",
      "Calculating instrument currency vol for EDOLLAR\n",
      "Getting block value for EDOLLAR\n",
      "Loading csv instrument config\n",
      "Getting fx rates for EDOLLAR\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for EDOLLAR"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/futures/rawdata.py:236: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  daily_prices = prices.resample(\"1B\", how=\"last\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Calculating forecast weights for EDOLLAR\n",
      "Calculating raw forecast weights for EDOLLAR\n",
      "Calculating raw forecast weights for EDOLLAR, over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_gross]\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_costs]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cost multiplier on optimisation of 0.00\n",
      "Optimising...\n",
      "Optimising for data from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Optimising for data from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Optimising for data from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Optimising for data from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Optimising for data from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Optimising for data from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Optimising for data from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Optimising for data from 1988-09-30 00:00:00 to 1989-09-30 00:00:00\n",
      "Optimising for data from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Optimising for data from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Optimising for data from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Optimising for data from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Optimising for data from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Optimising for data from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n",
      "Optimising for data from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Optimising for data from 1996-09-30 00:00:00 to 1997-09-30 00:00:00\n",
      "Optimising for data from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Optimising for data from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Optimising for data from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Optimising for data from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Optimising for data from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Optimising for data from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n",
      "Optimising for data from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Optimising for data from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Optimising for data from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Optimising for data from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Optimising for data from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n",
      "Optimising for data from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Optimising for data from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n",
      "Optimising for data from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Optimising for data from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Optimising for data from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n",
      "Optimising for data from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Optimising for data from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Optimising for data from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n",
      "Optimising for data from 2016-09-30 00:00:00 to 2016-11-13 00:00:05\n",
      "Applying cost weighting to optimisation results\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  forecast_weights = pd.ewma(forecast_weights, weighting)\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=125).mean()\n",
      "  div_mult_df = pd.ewma(div_mult_df, span=ewma_span)\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  daily_returns = returns_df.resample(\"1B\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating forecast div multiplier for EDOLLAR\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  weekly_returns = returns_df.resample(\"W\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  monthly_returns = returns_df.resample(\"MS\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  annual_returns = returns_df.resample(\"A\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating pandl for subsystem for instrument EUROSTX\n",
      "Calculating subsystem position for EUROSTX\n",
      "Calculating volatility scalar for EUROSTX\n",
      "Calculating instrument value vol for EUROSTX\n",
      "Calculating instrument currency vol for EUROSTX\n",
      "Getting block value for EUROSTX\n",
      "Loading csv instrument config\n",
      "Getting fx rates for EUROSTX\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for EUROSTX\n",
      "Calculating forecast weights for EUROSTX\n",
      "Calculating raw forecast weights for EUROSTX\n",
      "Calculating raw forecast weights for EUROSTX, over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/futures/rawdata.py:236: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  daily_prices = prices.resample(\"1B\", how=\"last\")\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_gross]\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_costs]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cost multiplier on optimisation of 0.00\n",
      "Optimising...\n",
      "Optimising for data from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Optimising for data from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Optimising for data from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Optimising for data from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Optimising for data from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Optimising for data from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Optimising for data from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Optimising for data from 1988-09-30 00:00:00 to 1989-09-30 00:00:00\n",
      "Optimising for data from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Optimising for data from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Optimising for data from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Optimising for data from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Optimising for data from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Optimising for data from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n",
      "Optimising for data from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Optimising for data from 1996-09-30 00:00:00 to 1997-09-30 00:00:00\n",
      "Optimising for data from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Optimising for data from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Optimising for data from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Optimising for data from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Optimising for data from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Optimising for data from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n",
      "Optimising for data from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Optimising for data from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Optimising for data from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Optimising for data from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Optimising for data from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n",
      "Optimising for data from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Optimising for data from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n",
      "Optimising for data from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Optimising for data from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Optimising for data from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n",
      "Optimising for data from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Optimising for data from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Optimising for data from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n",
      "Optimising for data from 2016-09-30 00:00:00 to 2016-11-13 00:00:05\n",
      "Applying cost weighting to optimisation results\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  forecast_weights = pd.ewma(forecast_weights, weighting)\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=125).mean()\n",
      "  div_mult_df = pd.ewma(div_mult_df, span=ewma_span)\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  daily_returns = returns_df.resample(\"1B\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  weekly_returns = returns_df.resample(\"W\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  monthly_returns = returns_df.resample(\"MS\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  annual_returns = returns_df.resample(\"A\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating forecast div multiplier for EUROSTX\n",
      "Calculating pandl for subsystem for instrument MXP\n",
      "Calculating subsystem position for MXP\n",
      "Calculating volatility scalar for MXP\n",
      "Calculating instrument value vol for MXP\n",
      "Calculating instrument currency vol for MXP\n",
      "Getting block value for MXP\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/futures/rawdata.py:236: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  daily_prices = prices.resample(\"1B\", how=\"last\")\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_gross]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loading csv instrument config\n",
      "Getting fx rates for MXP\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for MXP\n",
      "Calculating forecast weights for MXP\n",
      "Calculating raw forecast weights for MXP\n",
      "Calculating raw forecast weights for MXP, over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_costs]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cost multiplier on optimisation of 0.00\n",
      "Optimising...\n",
      "Optimising for data from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Optimising for data from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Optimising for data from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Optimising for data from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Optimising for data from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Optimising for data from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Optimising for data from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Optimising for data from 1988-09-30 00:00:00 to 1989-09-30 00:00:00\n",
      "Optimising for data from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Optimising for data from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Optimising for data from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Optimising for data from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Optimising for data from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Optimising for data from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n",
      "Optimising for data from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Optimising for data from 1996-09-30 00:00:00 to 1997-09-30 00:00:00\n",
      "Optimising for data from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Optimising for data from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Optimising for data from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Optimising for data from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Optimising for data from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Optimising for data from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n",
      "Optimising for data from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Optimising for data from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Optimising for data from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Optimising for data from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Optimising for data from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n",
      "Optimising for data from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Optimising for data from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n",
      "Optimising for data from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Optimising for data from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Optimising for data from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n",
      "Optimising for data from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Optimising for data from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Optimising for data from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n",
      "Optimising for data from 2016-09-30 00:00:00 to 2016-11-13 00:00:05\n",
      "Applying cost weighting to optimisation results\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  forecast_weights = pd.ewma(forecast_weights, weighting)\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=125).mean()\n",
      "  div_mult_df = pd.ewma(div_mult_df, span=ewma_span)\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  daily_returns = returns_df.resample(\"1B\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  weekly_returns = returns_df.resample(\"W\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  monthly_returns = returns_df.resample(\"MS\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating forecast div multiplier for MXP\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  annual_returns = returns_df.resample(\"A\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating pandl for subsystem for instrument US10\n",
      "Calculating subsystem position for US10\n",
      "Calculating volatility scalar for US10\n",
      "Calculating instrument value vol for US10\n",
      "Calculating instrument currency vol for US10\n",
      "Getting block value for US10\n",
      "Loading csv instrument config\n",
      "Getting fx rates for US10\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for US10\n",
      "Calculating forecast weights for US10\n",
      "Calculating raw forecast weights for US10\n",
      "Calculating raw forecast weights for US10, over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/futures/rawdata.py:236: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  daily_prices = prices.resample(\"1B\", how=\"last\")\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_gross]\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_costs]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cost multiplier on optimisation of 0.00\n",
      "Optimising...\n",
      "Optimising for data from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Optimising for data from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Optimising for data from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Optimising for data from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Optimising for data from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Optimising for data from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Optimising for data from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Optimising for data from 1988-09-30 00:00:00 to 1989-09-30 00:00:00\n",
      "Optimising for data from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Optimising for data from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Optimising for data from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Optimising for data from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Optimising for data from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Optimising for data from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n",
      "Optimising for data from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Optimising for data from 1996-09-30 00:00:00 to 1997-09-30 00:00:00\n",
      "Optimising for data from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Optimising for data from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Optimising for data from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Optimising for data from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Optimising for data from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Optimising for data from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n",
      "Optimising for data from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Optimising for data from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Optimising for data from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Optimising for data from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Optimising for data from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n",
      "Optimising for data from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Optimising for data from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n",
      "Optimising for data from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Optimising for data from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Optimising for data from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n",
      "Optimising for data from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Optimising for data from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Optimising for data from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n",
      "Optimising for data from 2016-09-30 00:00:00 to 2016-11-13 00:00:05\n",
      "Applying cost weighting to optimisation results\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  forecast_weights = pd.ewma(forecast_weights, weighting)\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=125).mean()\n",
      "  div_mult_df = pd.ewma(div_mult_df, span=ewma_span)\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  daily_returns = returns_df.resample(\"1B\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating forecast div multiplier for US10\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  weekly_returns = returns_df.resample(\"W\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  monthly_returns = returns_df.resample(\"MS\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  annual_returns = returns_df.resample(\"A\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating pandl for subsystem for instrument V2X\n",
      "Calculating subsystem position for V2X\n",
      "Calculating volatility scalar for V2X\n",
      "Calculating instrument value vol for V2X\n",
      "Calculating instrument currency vol for V2X\n",
      "Getting block value for V2X\n",
      "Loading csv instrument config\n",
      "Getting fx rates for V2X\n",
      "Loading csv instrument config\n",
      "Loading csv fx data\n",
      "Calculating combined forecast for V2X\n",
      "Calculating forecast weights for V2X\n",
      "Calculating raw forecast weights for V2X\n",
      "Calculating raw forecast weights for V2X, over CORN, EDOLLAR, EUROSTX, MXP, US10, V2X\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/futures/rawdata.py:236: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  daily_prices = prices.resample(\"1B\", how=\"last\")\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_gross]\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_costs]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cost multiplier on optimisation of 0.00\n",
      "Optimising...\n",
      "Optimising for data from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Optimising for data from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Optimising for data from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Optimising for data from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Optimising for data from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Optimising for data from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Optimising for data from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Optimising for data from 1988-09-30 00:00:00 to 1989-09-30 00:00:00\n",
      "Optimising for data from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Optimising for data from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Optimising for data from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Optimising for data from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Optimising for data from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Optimising for data from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n",
      "Optimising for data from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Optimising for data from 1996-09-30 00:00:00 to 1997-09-30 00:00:00\n",
      "Optimising for data from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Optimising for data from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Optimising for data from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Optimising for data from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Optimising for data from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Optimising for data from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n",
      "Optimising for data from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Optimising for data from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Optimising for data from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Optimising for data from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Optimising for data from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n",
      "Optimising for data from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Optimising for data from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n",
      "Optimising for data from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Optimising for data from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Optimising for data from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n",
      "Optimising for data from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Optimising for data from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Optimising for data from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n",
      "Optimising for data from 2016-09-30 00:00:00 to 2016-11-13 00:00:05\n",
      "Applying cost weighting to optimisation results\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  forecast_weights = pd.ewma(forecast_weights, weighting)\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=125).mean()\n",
      "  div_mult_df = pd.ewma(div_mult_df, span=ewma_span)\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  daily_returns = returns_df.resample(\"1B\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  weekly_returns = returns_df.resample(\"W\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  monthly_returns = returns_df.resample(\"MS\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  annual_returns = returns_df.resample(\"A\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating forecast div multiplier for V2X\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/systems/portfolio.py:663: FutureWarning: \n",
      ".resample() is now a deferred operation\n",
      "You called diff(...) on this deferred object which materialized it into a dataframe\n",
      "by implicitly taking the mean.  Use .resample(...).mean() instead\n",
      "  pandl = pandl.cumsum().resample(frequency).diff()\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:280: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data = data.resample(frequency, how=\"last\")\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Correlation estimate\n",
      "Estimating from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Estimating from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Estimating from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Estimating from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Estimating from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Estimating from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Estimating from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Estimating from 1988-09-30 00:00:00 to 1989-09-30 00:00:00"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Estimating from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Estimating from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Estimating from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Estimating from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Estimating from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Estimating from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n",
      "Estimating from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Estimating from 1996-09-30 00:00:00 to 1997-09-30 00:00:00"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Estimating from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Estimating from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Estimating from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Estimating from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Estimating from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Estimating from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimating from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Estimating from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Estimating from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Estimating from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Estimating from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimating from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Estimating from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n",
      "Estimating from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Estimating from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Estimating from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/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 \n",
      "\tDataFrame.ewm(min_periods=20,ignore_na=False,adjust=True,span=500).corr(pairwise=True,other=<DataFrame>)\n",
      "  min_periods=min_periods)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimating from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Estimating from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Estimating from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n",
      "Estimating from 2016-09-30 00:00:00 to 2016-11-13 00:00:00\n",
      "Calculating instrument weights\n",
      "Getting raw instrument weights\n",
      "Calculating raw instrument weights\n",
      "Cost multiplier of 0.0 will be ignored as equalising SR in optimisation (equalise_SR=True)\n",
      "Zero cost multiplier and not applying cost weightings - so costs won't be used at all\n",
      "Cost multiplier of %2.f is less than one and not applying cost weightings - effect of costs may be underestimated\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:144: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_gross]\n",
      "/home/chris/src/pysystemtrade/syscore/optimisation.py:147: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).last()\n",
      "  data_item in data_costs]\n",
      "/home/chris/src/pysystemtrade/syscore/pdutils.py:23: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  avg_daily = float(norm_x.diff().abs().resample(\"1B\", how=\"sum\").mean())\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using cost multiplier on optimisation of 0.00\n",
      "Optimising...\n",
      "Optimising for data from 1981-09-27 00:00:00 to 1982-09-30 00:00:00\n",
      "Optimising for data from 1982-09-30 00:00:00 to 1983-09-30 00:00:00\n",
      "Optimising for data from 1983-09-30 00:00:00 to 1984-09-30 00:00:00\n",
      "Optimising for data from 1984-09-30 00:00:00 to 1985-09-30 00:00:00\n",
      "Optimising for data from 1985-09-30 00:00:00 to 1986-09-30 00:00:00\n",
      "Optimising for data from 1986-09-30 00:00:00 to 1987-09-30 00:00:00\n",
      "Optimising for data from 1987-09-30 00:00:00 to 1988-09-30 00:00:00\n",
      "Optimising for data from 1988-09-30 00:00:00 to 1989-09-30 00:00:00\n",
      "Optimising for data from 1989-09-30 00:00:00 to 1990-09-30 00:00:00\n",
      "Optimising for data from 1990-09-30 00:00:00 to 1991-09-30 00:00:00\n",
      "Optimising for data from 1991-09-30 00:00:00 to 1992-09-30 00:00:00\n",
      "Optimising for data from 1992-09-30 00:00:00 to 1993-09-30 00:00:00\n",
      "Optimising for data from 1993-09-30 00:00:00 to 1994-09-30 00:00:00\n",
      "Optimising for data from 1994-09-30 00:00:00 to 1995-09-30 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimising for data from 1995-09-30 00:00:00 to 1996-09-30 00:00:00\n",
      "Optimising for data from 1996-09-30 00:00:00 to 1997-09-30 00:00:00\n",
      "Optimising for data from 1997-09-30 00:00:00 to 1998-09-30 00:00:00\n",
      "Optimising for data from 1998-09-30 00:00:00 to 1999-09-30 00:00:00\n",
      "Optimising for data from 1999-09-30 00:00:00 to 2000-09-30 00:00:00\n",
      "Optimising for data from 2000-09-30 00:00:00 to 2001-09-30 00:00:00\n",
      "Optimising for data from 2001-09-30 00:00:00 to 2002-09-30 00:00:00\n",
      "Optimising for data from 2002-09-30 00:00:00 to 2003-09-30 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimising for data from 2003-09-30 00:00:00 to 2004-09-30 00:00:00\n",
      "Optimising for data from 2004-09-30 00:00:00 to 2005-09-30 00:00:00\n",
      "Optimising for data from 2005-09-30 00:00:00 to 2006-09-30 00:00:00\n",
      "Optimising for data from 2006-09-30 00:00:00 to 2007-09-30 00:00:00\n",
      "Optimising for data from 2007-09-30 00:00:00 to 2008-09-30 00:00:00\n",
      "Optimising for data from 2008-09-30 00:00:00 to 2009-09-30 00:00:00\n",
      "Optimising for data from 2009-09-30 00:00:00 to 2010-09-30 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimising for data from 2010-09-30 00:00:00 to 2011-09-30 00:00:00\n",
      "Optimising for data from 2011-09-30 00:00:00 to 2012-09-30 00:00:00\n",
      "Optimising for data from 2012-09-30 00:00:00 to 2013-09-30 00:00:00\n",
      "Optimising for data from 2013-09-30 00:00:00 to 2014-09-30 00:00:00\n",
      "Optimising for data from 2014-09-30 00:00:00 to 2015-09-30 00:00:00\n",
      "Optimising for data from 2015-09-30 00:00:00 to 2016-09-30 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n",
      "/home/chris/src/pysystemtrade/syscore/correlations.py:181: RuntimeWarning: invalid value encountered in less\n",
      "  corrmat[corrmat < 0] = 0.0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimising for data from 2016-09-30 00:00:00 to 2016-11-13 00:00:00\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/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 \n",
      "\tDataFrame.ewm(com=125,ignore_na=False,adjust=True,min_periods=0).mean()\n",
      "  instrument_weights = pd.ewma(instrument_weights, weighting)\n",
      "/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 \n",
      "\tSeries.ewm(ignore_na=False,adjust=True,min_periods=0,span=125).mean()\n",
      "  div_mult_df = pd.ewma(div_mult_df, span=ewma_span)\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:555: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  daily_returns = returns_df.resample(\"1B\", how=\"sum\")\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating buffers for CORN\n",
      "Calculating position method buffer for CORN\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/chris/src/pysystemtrade/syscore/accounting.py:556: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  weekly_returns = returns_df.resample(\"W\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:557: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  monthly_returns = returns_df.resample(\"MS\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/accounting.py:558: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  annual_returns = returns_df.resample(\"A\", how=\"sum\")\n",
      "/home/chris/src/pysystemtrade/syscore/pdutils.py:23: FutureWarning: how in .resample() is deprecated\n",
      "the new syntax is .resample(...).sum()\n",
      "  avg_daily = float(norm_x.diff().abs().resample(\"1B\", how=\"sum\").mean())\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating pandl for instrument for EDOLLAR\n",
      "Calculating buffered positions\n",
      "Calculating notional position for EDOLLAR\n",
      "Calculating buffers for EDOLLAR\n",
      "Calculating position method buffer for EDOLLAR\n",
      "Calculating pandl for instrument for EUROSTX\n",
      "Calculating buffered positions\n",
      "Calculating notional position for EUROSTX\n",
      "Calculating buffers for EUROSTX\n",
      "Calculating position method buffer for EUROSTX\n",
      "Calculating pandl for instrument for MXP\n",
      "Calculating buffered positions\n",
      "Calculating notional position for MXP\n",
      "Calculating buffers for MXP\n",
      "Calculating position method buffer for MXP\n",
      "Calculating pandl for instrument for US10\n",
      "Calculating buffered positions\n",
      "Calculating notional position for US10\n",
      "Calculating buffers for US10\n",
      "Calculating position method buffer for US10\n",
      "Calculating pandl for instrument for V2X\n",
      "Calculating buffered positions\n",
      "Calculating notional position for V2X\n",
      "Calculating buffers for V2X\n",
      "Calculating position method buffer for V2X\n",
      "0.5386038936656322\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nOejf35cdcQQsWAB//WvtnnnGGf76X/wC1q3zZUcfDa+8Alde6fut/P3vla/bcUff2iIiItIYKFlJ\nwcx+Z2azzGyVmb1tZn0bes8rr/TbzTbzCcaee0bnXnvN91f5979ho43q14+ka1e/ffrphtZUREQk\nv+g1UBIzOx64FTgbmAoMA8ab2U7OuflVXXfqqX6dnUmT/HGHDlHLSk3DlM2gd+/ouHNn+PFHv5Dg\nNtvUrt7PPw9Tp9YuVkREpDFRy0plw4D7nHMPO+c+A84FVgJnVHfRQw/5RGXiRLj3Xt83ZehQ/1qn\nPrp1g223rd1QZ4Att/SvgERERJoatazEmFlroBj4S1jmnHNmNgGospfH4sXR/r77+g/AqFEZqqiI\niEgzopaVRF2BlsDcpPK5QLeqLho71m8/+ihT1RIREWm+lKykQbiS8i675LYeIiIiTZFeAyWaD6wH\nCpPKC4E5VV3Uo8cwttuugMMPj8pKSkooKSnJRB1FREQaldLSUkpLSxPKlsSnca+BudqsqNeMmNnb\nwBTn3NDg2IBvgTucc7ckxRYBZWVlZRQVFWW/siIiIo3UtGnTKPbTuRc756b9//buPfjyuY7j+PNl\nl3WZFs1mV5JLtNJFq1xWlGzsUClyKZqYUC5FyiVNyqiGjITCyCVDUaiQy/xqK5UisRhqLTNWCou1\nZsllrd13f3w+x359O3v2t7895/v7nN++HjPf2T3n+/7e3r/3Ob/373vtFOs9K//vDOASSXey+NLl\n1YFLhnOlzMzMVlRuVmoi4kpJ44CTSYd/7gamRsRTw7tmZmZmKyY3K21ExLnAucO9HmZmZuargczM\nzKxwblbMzMysaG5WzMzMrGhuVszMzKxoblbMzMysaG5WzMzMrGhuVszMzKxoblbMzMysaG5WzMzM\nrGhuVszMzKxoblbMzMysaG5WzMzMrGhuVszMzKxoblbMzMysaG5WzMzMrGhuVszMzKxoblbMzMys\naG5WzMzMrGhuVszMzKxoblbMzMysaG5WzMzMrGhuVszMzKxoblbMzMysaG5WzMzMrGhuVszMzKxo\nblbMzMysaG5WzMzMrGhuVlYwV1xxxXCvQhGch8R5SJyHxHlYzLlISslDT5oVSRtIulDSQ5JekPSg\npJMkrVyLW1/SDZKelzRb0mmSVqrFvEvSnyS9KOlfko5ts7wdJd0p6SVJD0g6oE3M3pJm5PncI2nX\n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\nFTMzMyva/wAmIM1bqSVWywAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb2c9bb6e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Calculating pandl for portfolio\n",
      "Calculating pandl for instrument for CORN\n",
      "Calculating pandl for instrument for EDOLLAR\n",
      "Calculating pandl for instrument for EUROSTX\n",
      "Calculating pandl for instrument for MXP\n",
      "Calculating pandl for instrument for US10\n",
      "Calculating pandl for instrument for V2X\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fb2dc77aa58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "run prebakedsystems.py"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
