SPB Git

Repository Public

strategy.py 857 B 30 lines python

1"""Long/short time-series momentum on perpetuals: long an asset whose past return is positive, short otherwise."""23import numpy as np45META = {6    "name": "ts_momentum_perp",7    "version": "1",8    "kind": "perp",9    "universe": ["BTC", "ETH", "SOL", "HYPE"],10    "interval": "1h",11    "lookback": 400,12    "max_leverage": 2.0,13    "max_gross_exposure": 2.0,14    "params": {"window": 168, "gross": 1.0},15}161718def target_weights(data, params):19    window, gross = int(params["window"]), float(params["gross"])20    n = len(data)21    weights = {}22    for symbol, df in data.items():23        close = df["close"].to_numpy()24        if window < 1 or len(close) < window + 1:25            weights[symbol] = 0.026            continue27        past = close[-1] / close[-1 - window] - 1.028        weights[symbol] = float(np.sign(past)) * gross / n29    return weights30
Files main
Menu

Theme