Skip to content
All library documents

Configuring Trend and Carry Forecasts for a Diversified Futures Portfolio

Code pysystemtrade

Summary

This configuration defines a futures system that combines exponentially weighted moving-average crossover forecasts at several speeds with a carry forecast smoothed over 90 days. It assigns forecast scalars to the rules, caps combined forecasts, and specifies weights for selected trend horizons and carry. It also sets forecast-diversification adjustment, volatility targeting, trading capital, instrument weights, and diversification adjustment for portfolio construction.

The portfolio spans interest-rate contracts, European equity and volatility contracts, a currency contract, and corn, grouped by rule speed, style, country, and asset class. Carry receives half of the listed forecast weight, while the remaining weight is split across three slower trend rules. The file is an implementation configuration rather than a research report: it gives no sample period, backtest results, transaction-cost assumptions, or explanation for why these parameters and allocations were chosen. The values therefore describe one system setup, not evidence that the portfolio is robust or suitable for live trading.

Key ideas

  • The configuration combines multiple-speed EWMAC trend forecasts with a smoothed carry forecast.
  • It caps forecasts and assigns weights to selected rules before portfolio construction.
  • The system specifies volatility targeting, notional capital, and instrument-level portfolio weights.
  • Instruments are organized into trend-speed, style, country, and asset-class groups.
  • The file provides parameter choices but no performance evidence or rationale for those choices.

Tags

Full text
# futuresconfig.yaml


```yaml
#YAML
#
# Raw data
#
#
# Trading rules
#
#
trading_rules:
  ewmac2_8:
     function: systems.provided.rules.ewmac.ewmac
     data:
         - "rawdata.get_daily_prices"
         - "rawdata.daily_returns_volatility"
     other_args: 
         Lfast: 2
         Lslow: 8
     forecast_scalar: 10.6
  ewmac4_16:
     function: systems.provided.rules.ewmac.ewmac
     data:
         - "rawdata.get_daily_prices"
         - "rawdata.daily_returns_volatility"
     other_args: 
         Lfast: 4
         Lslow: 16
     forecast_scalar: 7.5
  ewmac8_32:
     function: systems.provided.rules.ewmac.ewmac
     data:
         - "rawdata.get_daily_prices"
         - "rawdata.daily_returns_volatility"
     other_args: 
         Lfast: 8
         Lslow: 32
     forecast_scalar: 5.3
  ewmac16_64:
     function: systems.provided.rules.ewmac.ewmac
     data:
         - "rawdata.get_daily_prices"
         - "rawdata.daily_returns_volatility"
     other_args: 
         Lfast: 16
         Lslow: 64
     forecast_scalar: 3.75
  ewmac32_128:
     function: systems.provided.rules.ewmac.ewmac
     data:
         - "rawdata.get_daily_prices"
         - "rawdata.daily_returns_volatility"
     other_args: 
         Lfast: 32
         Lslow: 128
     forecast_scalar: 2.65
  ewmac64_256:
     function: systems.provided.rules.ewmac.ewmac
     data:
         - "rawdata.get_daily_prices"
         - "rawdata.daily_returns_volatility"
     other_args: 
         Lfast: 64
         Lslow: 256
     forecast_scalar: 1.87
  carry:
     function: systems.provided.rules.carry.carry
     data:
         - "rawdata.raw_carry"
     other_args:
         smooth_days: 90
     forecast_scalar: 30
forecast_cap: 20.0
#
# forecast combination
#
forecast_weights:
     ewmac16_64: 0.21
     ewmac32_128: 0.08
     ewmac64_256: 0.21
     carry: 0.50
forecast_div_multiplier: 1.31
#
# Capital correction
#
percentage_vol_target: 20.0
notional_trading_capital: 250000
base_currency: "USD"
#
# Portfolio creation
#
instrument_weights:
    SOFR: 0.117
    US10: 0.117
    EUROSTX: 0.20
    V2X: 0.098
    MXP: 0.233
    CORN: 0.233
instrument_div_multiplier: 1.89
rule_groups:
    ewmac_fast:
       - ewmac2_8
       - ewmac4_16
    ewmac_medium:
       - ewmac8_32
       - ewmac16_64
    ewmac_slow:
       - ewmac32_128
       - ewmac64_256
    carry:
       - carry
style_groups:
    trend:
        - ewmac_fast
        - ewmac_medium
        - ewmac_slow
    carry:
        - carry
countries:
    US:
      - SOFR
      - US10
    Europe:
      - EUROSTX
      - V2X
    Other:
    - MXP
    - CORN
asset_classes:
    Rates:
      - SOFR
      - US10
    Risky:
      - EUROSTX
      - V2X
      - MXP
    Other:
      - CORN


```

Shown in full with attribution under the source's licence. Licence: GPL-3.0

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.