Rob - I'm really happy I found this thread. I am still working my way through all 154 pages, along with your book which I bought yesterday. I'm trying to adapt your teachings to a small account size -- $10k capital to start with (just for this method -- my main and retirement portfolios are spread across various asset classes through equities, ETFs, and mutual funds, this is $ set aside for experimental strategies. Didn't want you to think I'm betting the rent). I would like to trade futures with this $10k but obviously I wouldn't be able to work with a lot of the larger contract sizes without taking on way too much risk. I'm looking at some of the cheaper/smaller contracts such as minis, do you have any guidelines on what you consider acceptable volatility and volume numbers for an instrument to be a viable option? Is it at all feasible to work with that amount of capital, or am I just spinning my wheels here? I know I won't be able to trade as diverse a portfolio as you are, but I'm hoping I can find a way to start out with 3 or 4 instruments from different asset classes and get my feet wet with automation. Thanks for all of the info you've shared, it's fascinating stuff!
Welcome to the party This blog post is exactly what you need https://qoppac.blogspot.co.uk/2016/03/diversification-and-small-account-size.html GAT
Hi GAT Besides your automated future trading system you mentioned to have an asset allocation to cover your daily needs. I was wondering if you are using the asset allocation trader from you first book or more the handcrafting method from your second book? I would be curious to know your choice and more important the reason behind it. My second question is regarding expected returns / vols / correlation. You mentioned in your second book that you used historical data but adjusted it to get more reasonable numbers. I would be interested if you could share how you draw this conclusion and if there was any quantitative / systematic approach behind it? Do you regularly review this assumptions? Might be interesting for backtesting of strategies as well. Do you adjust there your historical data or leave it as it is? cheers c
The approaches are pretty much equivalent, really the second book is just an extended explanation of the asset allocating investor in book one. For my asset allocation I assume all sharpe ratios are equal and use the 'rule of thumb' numbers for vols and correlations that you can find in the appendices. I don't do any formal backtesting of this part of my portfolio. GAT
I followed blog suggestions but my weights for bootstrapping look wrong and different from the blog post on optimising weights with costs... In general, the faster rules are weighted a lot for cheap markets, I'm not sure what is wrong... EUROSTX: carry: 0.112 ewmac16_64: 0.175 ewmac32_128: 0.109 ewmac64_256: 0.143 ewmac8_32: 0.462 GBP: carry: 0.097 ewmac16_64: 0.088 ewmac32_128: 0.052 ewmac4_16: 0.413 ewmac64_256: 0.126 ewmac8_32: 0.224 SP500: carry: 0.107 ewmac16_64: 0.092 ewmac32_128: 0.064 ewmac4_16: 0.413 ewmac64_256: 0.119 ewmac8_32: 0.206 forecast_cost_estimates: use_pooled_costs: False use_pooled_turnover: True # forecast_weight_ewma_span: 125 forecast_weight_estimate: func: syscore.optimisation.GenericOptimiser method: bootstrap pool_gross_returns: True equalise_gross: False cost_multiplier: 0.0 apply_cost_weight: True ceiling_cost_SR: 0.13 frequency: "W" date_method: "expanding" rollyears: 20 cleaning: True equalise_SR: False ann_target_SR: 0.5 equalise_vols: True shrinkage_SR: 0.90 shrinkage_corr: 0.50 monte_runs: 100 bootstrap_length: 50
Here is the code to quickly replicate Code: 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))
I currently have a broken build whilst I'm fixing up some refactoring but will look at this when done GAT