Inspiration
A strategy can look successful simply because its code uses tomorrow's price. Strategy Lab detects that planted flaw before reporting performance.
What it does
Runs a seeded strategy on synthetic prices in a disposable Daytona sandbox. Six checks cover execution, future-data leakage, and metric consistency. A repairable failure triggers one correction and reevaluation; other failures stop the run. Results appear only after all required checks pass.
How I built it
Python and Streamlit provide the interface and orchestration. Daytona executes the candidate and backtest harness. A truncation test compares signals on full and shortened datasets: earlier decisions must remain unchanged when later prices disappear. Positions apply to the next bar, including transaction costs. Arize Phoenix records evaluation events and repair decisions. SurrealDB Agent Memory stores and retrieves run history.
Challenges
SDK contracts, bounded retries, cleanup, and honest failure reporting. The current demonstration uses a predefined causal correction. Bedrock and Anthropic repair adapters are implemented but unconfigured. Anchor research is implemented, but its last request failed due to insufficient credits. A containment probe found outbound TCP connectivity despite requesting network blocking; network isolation is not claimed as verified.
Accomplishments
Working rejection, correction, and gated reporting; verified Daytona execution, Phoenix trace receipt, and SurrealDB memory read/write.
What I learned
Successful execution alone does not make a backtest trustworthy. Evaluations should determine which results are released.
What's next
Enable model-generated corrections, broaden leakage checks, add held-out validation, resolve network-policy behavior, and strengthen evaluation integrity.
Demo
Live demonstration on the presenter's laptop. Synthetic data, no live trading, and no profitability claim. The linked Figma deck explains the workflow.
Log in or sign up for Devpost to join the conversation.