Fully automated futures trading

Discussion in 'Journals' started by globalarbtrader, Feb 11, 2015.

  1. Actually it's the median, but yes.

    Exactly

    GAT
     
    #1531     Feb 24, 2018
  2. tradrjoe

    tradrjoe

  3. 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!
     
    #1533     Feb 27, 2018
  4. 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
     
    #1534     Feb 27, 2018
  5. canicola

    canicola

    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
     
    #1535     Mar 2, 2018
  6. 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
     
    #1536     Mar 2, 2018
  7. traider

    traider

    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
     
    #1537     Mar 2, 2018
  8. traider

    traider

    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))
    
     
    #1538     Mar 2, 2018
  9. I currently have a broken build whilst I'm fixing up some refactoring but will look at this when done

    GAT
     
    #1539     Mar 4, 2018
  10. truetype

    truetype

    Feb numbers on the tape... Div -11, Alpha -6, Dim -5, Evo -5
     
    #1540     Mar 6, 2018