Repository Public
1"""Moving-average trend following: hold an asset while its fast average is above its slow average.23Universe-generic (version 3): the symbols are whatever the agent trades; same rule and parameters as version 1.4"""56META = {7 "name": "ma_trend",8 "version": "3",9 "universe": ["*"],10 "interval": "1h",11 "lookback": 1000,12 "params": {"fast": 72, "slow": 480},13}141516def target_weights(data, params):17 fast, slow = int(params["fast"]), int(params["slow"])18 n = len(data)19 weights = {}20 for symbol, df in data.items():21 close = df["close"].to_numpy()22 if len(close) < max(fast, slow) or fast >= slow:23 weights[symbol] = 0.024 continue25 weights[symbol] = 1.0 / n if close[-fast:].mean() > close[-slow:].mean() else 0.026 return weights27