Could Vibe-Trading submit target weights to a public paper benchmark? #290
Replies: 3 comments
|
Thanks @MooreTechLLC — and for asking in Discussions rather than Issues. The paper-only, commit-before-reveal design (no broker, no custody) lines up well with how we think about evaluation, so it's a natural fit. On the technical question: yes, target portfolio weights are already a first-class output. A strategy in Vibe-Trading is a One suggestion on the submission model, in the spirit of a fair benchmark. Having an agent self-submit a weights CSV is the weakest link — it can't be reproduced, and it's hard to rule out cherry-picking or silent drop-out. A more rigorous design is to have the platform run a frozen, reproducible artifact itself: the competitor publishes a pinned The one honest caveat for an LLM-agent framework like ours: the strategy-generation step (the agent doing NL research and writing the SignalEngine) is the non-deterministic part — it needs an LLM and isn't bit-reproducible. But that happens once, up front; the moment it's frozen as a Happy to share a small example |
|
Thanks, this is really helpful. The two modes distinction makes sense to me:
For Vibe-Trading specifically, I’d definitely be interested in seeing a small example of that artifact if you’re willing to share one. No pressure on entering anything formally. This is already useful feedback for how we should design the benchmark side. |
|
Absolutely — here is a tiny reproducible-artifact sketch for the framework-based path. This is not a formal commitment from us to enter a cohort yet, but it should show the exact shape I had in mind: freeze a Directory shape: Example from typing import Dict
import pandas as pd
class SignalEngine:
"""Minimal causal MA-crossover example.
generate(data_map) returns {symbol: signal_series}, where:
1.0 = long, -1.0 = short, 0.0 = flat.
"""
def __init__(self, fast_window: int = 20, slow_window: int = 60):
self.fast_window = fast_window
self.slow_window = slow_window
def generate(self, data_map: Dict[str, pd.DataFrame]) -> Dict[str, pd.Series]:
signals = {}
for symbol, df in data_map.items():
close = df["close"].astype(float)
fast = close.rolling(self.fast_window, min_periods=self.fast_window).mean()
slow = close.rolling(self.slow_window, min_periods=self.slow_window).mean()
signal = pd.Series(0.0, index=df.index)
signal[fast > slow] = 1.0
signal[fast < slow] = -1.0
# Use only information available after the previous completed bar.
signals[symbol] = signal.shift(1).fillna(0.0)
return signalsExample {
"source": "yfinance",
"codes": ["AAPL.US", "MSFT.US", "SPY.US"],
"start_date": "2023-01-01",
"end_date": "2024-12-31",
"interval": "1D",
"engine": "daily",
"initial_cash": 100000,
"commission": 0.001,
"extra_fields": null
}Run it from the repo checkout with: cd agent
python -m backtest.runner runs/allocationagents_demoThe runner writes: For your benchmark, the integration point would be:
The run card is useful for auditability because it records hashes for the config and strategy file. So the cleanest benchmark contract is probably: “submit a frozen strategy artifact, not a self-reported weights CSV.” Happy to help refine the artifact shape if AllocationAgents wants a stricter schema around rebalance dates, max gross exposure, long-only vs long/short, or benchmark-owned data. |
Uh oh!
There was an error while loading. Please reload this page.
Hi Vibe-Trading team,
I’m looking at Vibe-Trading as a possible participant in a public AI investing-agent benchmark.
The benchmark flow is:
Vibe-Trading seems like a strong fit because it already focuses on natural-language finance research, strategy generation, backtesting, and agent workflows.
My question: does Vibe-Trading currently expose a clean way to turn a generated strategy or portfolio analysis into target portfolio weights that could be submitted periodically to an external paper benchmark?
If not, would the right integration path be a small adapter around the strategy/backtest output?
Context: I’m building AllocationAgents.com, a public competition for AI investment agents. I’m looking for serious open-source frameworks that could enter one strategy into the first cohort, but I don’t want to misuse Issues for outreach if this belongs in Discussions.
All reactions