Repository Public
1# vol_target_trend / 323Universe-generic version: `META["universe"] = ["*"]`. The symbols are not written in the strategy; they are the ones the4agent trades (1 to 12 market symbols), passed by the engine with the candles and by `--symbols` to the backtest.5Same rule and same parameters as version 1: nothing was re-tuned, for any universe. Each symbol is judged on its own trend and its own realised volatility; `N` is the number of symbols the agent chose.67**What a generic universe changes.** The code hash still pins the behaviour, and the agent's mandate pins the assets.8But the evidence does not travel: a backtest report is attached to ONE agent and records the symbols it was run on9(`config.symbols`); a result on one universe says nothing about another, and every universe tried is one more trial.10Symbols with a short history shorten the common backtest period for all of them.1112**Hypothesis.** Volatility is persistent and high volatility is not rewarded with proportionally higher returns, so13sizing a trend position inversely to recent realised volatility gives a smoother ride (smaller drawdowns for a14similar return) than a fixed-size trend position.1516**Rule.** Same trend signal as `ma_trend/1` (72-bar mean above 480-bar mean). When it is on, the weight is17`(1/N) * min(1, target_vol / realised_vol)`, with `realised_vol` the annualised standard deviation of the last 16818hourly log-returns and `target_vol` = 40 % per year. There is no leverage: the weight is capped at `1/N`, so the19strategy can only reduce risk, never add to it.2021**What would refute it.** If volatility spikes mostly AFTER the losses, scaling down comes too late and only22removes exposure to the rebound. The weight moves a little every hour; without a rebalance threshold this23generates many small trades and costs.24