So I’ve been trying to reproduce the 3M and 1Y return numbers that are given on numer.ai. Using numerapi in python. This is what I came up with:
modelname = "slowmoe"
rmp = napi.round_model_performances(modelname)
df = pd.DataFrame(rmp).set_index("roundNumber").sort_index()
df["payout_rel"] = df["payout"] / df["selectedStakeValue"]
cumprod = (df["payout_rel"].fillna(0)+1).cumprod()
gain_1Y = cumprod.iloc[-1] / cumprod.iloc[-52]
print(f"1 Year Return on Stake: {100*(gain_1Y-1):.1f}%")
which as of today gives me:
1 Year Return on Stake: 114.3%
while the website reports 109.5%. Pretty close, but something is missing. Any thoughts?