Inspiration
Traders all around the world, including me, spend a lot of time backtesting trading strategies. As both a trader and a developer, I noticed a clear gap between retail traders and big institutions. Institutional traders have access to highly sophisticated backtesting engines that automate and optimize their trades — but these systems require strong coding skills, which most retail traders lack. This leaves many traders relying on gut feelings instead of technical evaluation. So, I decided to bridge that gap.
What It Does
Lucas is an automated trading backtester that backtests user-defined strategies written in natural language. It allows traders to validate and refine their strategies with solid technical backing before entering the markets — no coding required.
How We Built It
The engineering behind Lucas is driven by intelligent modular design. The backend is built on four microservices:
Sandbox Runner: A Cloud Run job that executes the generated trading strategy code in a secure, sandboxed environment.
Lucas MCP Server: The communication bridge between the sandbox runner and data retrieval. It handles data collection for backtests and triggers sandbox executions safely, all wrapped in a FastAPI Cloud Run service.
Lucas Agents: The heart of the system — built with ADK agents to form a self-correcting multi-agent system. Each agent works collaboratively yet within clearly defined roles.
Self-Correcting Mechanism: Using ADK’s loop agent feature, Lucas automatically detects sandbox execution errors, recommends fixes, modifies the script, and reruns it until successful or three iterations.
Challenges We Ran Into
There were several challenges along the way:
Agent Process Design: Before discovering ADK, building the agents would have taken much longer, but ADK helped me produce a working prototype in just about 300 lines of code — a huge achievement.
VPC Connector Issue: I struggled to create a VPC connector on Google Cloud for internal communication between microservices. Every attempt resulted in a “bad state” requiring manual deletion. Despite trying multiple ranges, subnets, and setups, it never worked. I eventually raised a ticket, but no resolution came before the deadline, so I temporarily relied on public internet connections to make the prototype functional.
UI Bug: A rendering bug causes messages to appear twice in the chat interface. I’m actively working on fixing it, so please bear with me on that one.
Accomplishments We’re Proud Of
I’m proud to have built Lucas — something I’ve always envisioned to empower retail traders with institutional-grade backtesting tools.
I’m also proud of completing a full-stack application — both backend and frontend. As a backend Python developer, this was my first time building a frontend, and thanks to AI Studio and React documentation, I managed to bring it to life. Opening the deployed app today reminds me how far I’ve come — but it’s only the beginning.
What We Learned
I learned an incredible amount during this build: How microservices work beyond theory. The full Cloud Run deployment workflow, including Docker image builds directly on Google Cloud. How ADK agents function in practice — the documentation and YouTube resources were invaluable. This project was a true crash course in scalable cloud systems, LLM-powered automation, and modern app deployment.
What’s Next for Lucas
The journey is far from over. Upcoming goals include:
Multi-Ticker and Multi-Strategy Backtesting: Compare how different pairs and strategies perform side by side.
Improved Visuals: More advanced equity curves and analytics dashboards.
Paper Trading Simulator: Interactive paper trading with real-time performance visualization.
Advanced Journal Watchman: A next-generation trading journal that tracks emotional and behavioral trading patterns.
Full Trading Platform: Combining automated backtesting, advanced journaling, live execution, and interactive chart analytics — a complete ecosystem for traders.
Built With
- cloudrun
- cloudsql
- fastapi
- google-bigquery
- googlecloudstorage
- mcp
- python
- react
- redis
- vite

Log in or sign up for Devpost to join the conversation.