Configuring Trend and Carry Forecasts for a Futures Portfolio
Summary
This configuration describes a futures trading system that estimates forecasts from several exponentially weighted moving average crossover rules and a carry rule. The EWMAC rules pair faster and slower lookback periods, while the carry forecast uses smoothed raw carry data. The configuration selects a subset of these rules for use and enables estimates for forecast scaling, forecast combination weights, forecast diversification, forecast correlations, and instrument weights and diversification.
The portfolio settings specify a volatility target, trading capital, and a base currency, then name instruments spanning rates, equity indexes, foreign exchange, agriculture, and volatility. These settings show how a diversified futures system can combine trend and carry signals with estimated scaling and portfolio weights. However, the document is configuration only: it offers no rationale for the chosen parameters, data definitions, transaction cost assumptions, backtest results, or evidence that the settings perform well. The values are examples of system inputs, not demonstrated investment guidance.
Key ideas
- The system defines multiple EWMAC trend rules with different fast and slow lookback periods.
- A carry forecast is derived from raw carry data and smoothed over a specified period.
- Forecast scales, combination weights, correlations, and instrument weights are estimated by the system.
- The portfolio configuration sets a volatility target, capital base, currency, and a cross-asset futures universe.
- The file provides parameters but no performance evidence or explanation for why they were chosen.
Tags
Full text
# futuresestimateconfig.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
ewmac4_16:
function: systems.provided.rules.ewmac.ewmac
data:
- "rawdata.get_daily_prices"
- "rawdata.daily_returns_volatility"
other_args:
Lfast: 4
Lslow: 16
ewmac8_32:
function: systems.provided.rules.ewmac.ewmac
data:
- "rawdata.get_daily_prices"
- "rawdata.daily_returns_volatility"
other_args:
Lfast: 8
Lslow: 32
ewmac16_64:
function: systems.provided.rules.ewmac.ewmac
data:
- "rawdata.get_daily_prices"
- "rawdata.daily_returns_volatility"
other_args:
Lfast: 16
Lslow: 64
ewmac32_128:
function: systems.provided.rules.ewmac.ewmac
data:
- "rawdata.get_daily_prices"
- "rawdata.daily_returns_volatility"
other_args:
Lfast: 32
Lslow: 128
ewmac64_256:
function: systems.provided.rules.ewmac.ewmac
data:
- "rawdata.get_daily_prices"
- "rawdata.daily_returns_volatility"
other_args:
Lfast: 64
Lslow: 256
carry:
function: systems.provided.rules.carry.carry
data:
- "rawdata.raw_carry"
other_args:
smooth_days: 90
#
use_forecast_scale_estimates: True
#
forecast_scalar_estimate:
pool_instruments: True
#
# forecast combination
#
use_forecast_weight_estimates: True
use_forecast_div_mult_estimates: True
#
#
rule_variations: ['ewmac16_64','ewmac32_128', 'ewmac64_256', 'carry']
#
#
forecast_correlation_estimate:
pool_instruments: True
#
use_instrument_weight_estimates: True
use_instrument_div_mult_estimates: True
#
#
#
# Capital correction
#
percentage_vol_target: 20.0
notional_trading_capital: 250000
base_currency: "USD"
#
# Portfolio creation
#
instruments: ['SOFR','US10','EUROSTX', 'MXP', 'CORN', 'V2X']
```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.