from matplotlib.pyplot import show
from sysdata.configdata import Config
from systems.basesystem import System
from sysdata.csv.csvfuturesdata import csvFuturesData
from systems.forecasting import Rules
from systems.basesystem import System
from systems.forecast_combine import ForecastCombine
from systems.forecast_scale_cap import ForecastScaleCap
from systems.futures.rawdata import FuturesRawData
from systems.positionsizing import PositionSizing
from systems.portfolio import Portfolios
from systems.account import Account
my_config = Config("systems.provided.futures_chapter15.futuresestimateconfig.yaml")
from systems.basesystem import System
stage_list = [Account(), Portfolios(), PositionSizing(), FuturesRawData(),
ForecastCombine(), ForecastScaleCap(), Rules(None)]
system = System(stage_list, data=csvFuturesData(), config=my_config)
system.set_logging_level("on")
#system.rules.get_raw_forecast("EDOLLAR", "ewmac32").tail(5)
from systems.forecast_scale_cap import ForecastScaleCap
system.config.forecast_weight_estimate["method"] = "bootstrap"
system.config.instrument_weight_estimate["method"] = "bootstrap"
for instr_code in system.get_instrument_list():
rule2weight = system.combForecast.get_forecast_weights(instr_code).iloc[-1].to_dict()
print(instr_code + " " + str(rule2weight))