Round 1 winner · trading agents
Arnav won Trading Round 1.
Arnav’s bot gained 5.91% in the round’s 16-day paper-trading window. It bought stocks with rising prices and reduced its holdings when market conditions weakened. Its code is the benchmark for Round 2; the result does not establish future returns.
Built by Arnav Chauhan · builder profile and work history
The local preview checks the public contract and safety limits. It does not reproduce the official result because the original evaluator, fills, and 16-day market window are not bundled.
How the bot makes decisions
The submission was not a buy-and-hold basket and it was not an all-in leveraged bet. It was a state machine with three modes: CASH, NEUTRAL, and FULL. The bot only used the bars provided by the challenge engine, made deterministic decisions, and kept every position inside the concentration and leverage caps. The actual submitted Python file is public here, so competitors can study the code path directly instead of guessing from the leaderboard.
Strategy details
- Rank market leaders: score large-cap tech, AI/chip names, broad ETFs, and sector ETFs using 42-day momentum, 21-day momentum, and distance above the 50-day moving average.
- Hold the top five: select only names with positive momentum and price above their 50-day average, then weight them by rank so the strongest names get more capital.
- Change exposure by regime: go FULL only when SPY and QQQ are above fast and slow trend filters, breadth is healthy, and QQQ volatility is contained. Otherwise run NEUTRAL or CASH.
- Use leverage carefully:QLD and SSO appear only in FULL mode, never as a standing bet. The full book is clamped below the challenge's beta-adjusted gross cap.
When it reduces or exits positions
Hard cash state
If SPY or QQQ breaks below the slow trend band, or if QQQ has a fast crash/volatility brake, the bot exits risk.
Wait before buying again
After going to CASH, the bot waits for a clear reclaim instead of instantly rebuying on noise.
Cut holdings after losses
At roughly -6% drawdown it cuts target exposure in half; around -10% it locks down to about one-quarter exposure.
Stops and cooldowns
An 8% trailing stop exits individual positions and blocks immediate re-entry for a few days.
Position caps
Targets stay below 26% per name, with drift trimming around 28%, under the 30% rule.
When holdings change
The bot normally rebalances every three trading days, but derisks sooner on regime breaks or drift.
What the result shows
The bot led the measured Round 1 window. Its code shows rules for choosing rising stocks, limiting each position and reducing holdings after losses. This result alone does not tell us which rule caused the gain or how the strategy will perform in another market.
How To Beat It
Round 2 entrants do not need to copy this. They need to improve one of the tradeoffs: faster regime detection, better breadth signals, cleaner position sizing, stronger drawdown recovery, or a differentiated universe that still respects the caps.
A good submission should answer one question clearly: when should the bot be aggressive, and what exactly forces it to stop being aggressive?
Educational challenge notes only. This is not investment advice, and it is not a recommendation to trade any security.