fix(portfolio): runner data_dir dedicata, no resize posizioni aperte, poll da config, +test cap/cluster_rp

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-29 16:22:33 +02:00
parent d02bc10ab5
commit 0f582db265
4 changed files with 49 additions and 8 deletions
+12
View File
@@ -39,3 +39,15 @@ def test_inverse_vol_prefers_low_vol():
w = W.inverse_vol(["lo", "hi"], df, lookback=90)
assert w["lo"] > w["hi"]
assert pytest.approx(sum(w.values())) == 1.0
def test_cluster_rp_equal_across_clusters():
idx = pd.date_range("2024-01-01", periods=100, freq="D", tz="UTC")
rng = np.random.default_rng(1)
cols = ["MR01_BTC", "MR02_BTC", "PR_ETHBTC"]
df = pd.DataFrame({c: rng.normal(0, 0.02, 100) for c in cols}, index=idx)
clusters = {"MR01_BTC": "BTC-rev", "MR02_BTC": "BTC-rev", "PR_ETHBTC": "ETH-rev"}
w = W.cluster_rp(cols, clusters, df, lookback=90)
assert pytest.approx(sum(w.values())) == 1.0
# due cluster equipesati: il cluster con 1 solo sleeve (ETH-rev) prende ~0.5
assert pytest.approx(w["PR_ETHBTC"], abs=1e-9) == 0.5