Skip to content
Tradewise(www.tradewise.cloud)

Tradewise(www.tradewise.cloud)

Your AI trading desk in one platform.

Created on 12th April 2026

Tradewise(www.tradewise.cloud)

Tradewise(www.tradewise.cloud)

Your AI trading desk in one platform.

The problem Tradewise(www.tradewise.cloud) solves

The Problem It Solves

The Problem

Learning to invest is expensive, intimidating, and fragmented. New investors face several painful realities:

  • Real money means real fear. Beginners hesitate to experiment because a single bad trade can wipe out weeks of savings. This kills the learning loop before it starts.
  • Tools are scattered everywhere. You need one app for charts, another for news, a third for fundamentals, a fourth for an AI opinion, and a fifth to backtest an idea. Nothing connects.
  • AI advice is a black box. ChatGPT can talk about stocks, but it doesn't see your portfolio, your risk exposure, or your live market data. Generic advice isn't actionable advice.
  • Strategies are untestable. "Buy when RSI drops below 30" sounds smart, but without a way to simulate it on historical data, it's just a guess.
  • Markets never stop moving. By the time a human spots a breakout or reversal pattern across 65 stocks, the opportunity is already gone.

What TradeWise Solves

TradeWise is a unified, AI-native paper trading platform that turns market learning into a safe, hands-on experience, and gives users capabilities normally reserved for quant funds.

For learners and students

  • Start with $100,000 in paper money and trade without risking a cent.
  • Every trade executes atomically against real live prices via Finnhub WebSocket, so you are learning on real market behavior, not a toy simulator.
  • When markets are closed, simulated ticks keep the experience alive 24/7, so there is no waiting for Monday to practice.

For people who want AI that actually understands their portfolio

  • The AI Advisor is a ReAct agent with 7 tools. It pulls your live holdings, current quotes, technical indicators, fundamentals, news sentiment, ML predictions, and a financial knowledge base before answering.
  • Ask "Is my portfolio too concentrated?" or "Should I rotate out of tech?" and get context-aware, explainable answers, streamed step-by-step so you see the reasoning.
  • Type trades in plain English: "Buy $2,000 of NVDA and trim 20% of my TSLA". The system parses, previews, and executes.

For data-driven decision makers

  • A 3-model ensemble (XGBoost, LSTM, and Logistic Regression) votes on every prediction, with confidence capped at 85% so humility is built in.
  • Cascading sentiment analysis runs FinBERT on news headlines, falling back to Gemini when confidence is low, balancing speed and accuracy.
  • A Monte Carlo risk engine simulates 10,000 portfolio paths to compute Value-at-Risk and expected shortfall, so you know how bad a bad day could really be.

For people who want a second (and third) opinion

  • The Swarm Debate pits a Bull, a Bear, and a Fundamentalist agent against each other on any stock, running two rounds of arguments and rebuttals grounded in real indicators.
  • An episodic memory bank powered by ChromaDB remembers past debates and actual outcomes, weighting each agent by its track record in the current market regime.
  • The result is a final BUY, SELL, or HOLD decision with conviction level, fully explained.

For active traders who cannot watch every ticker

  • The Signal Scanner sweeps 65 symbols every 5 minutes, detecting 6 pattern types (ML consensus, breakouts, oversold, overbought, momentum, and reversals) with confluence scoring.
  • Alerts stream live via Server-Sent Events, so you never miss a setup because you were in a meeting.

For people who want automation they can trust

  • Autopilot runs autonomous portfolio management in four modes: Conservative, Balanced, Aggressive, and Full Auto.
  • Hard guardrails enforce max drawdown, daily loss limits, and position size caps. The bot cannot blow up your account.
  • Every decision streams its reasoning in real time, so automation never feels like a black box.

For strategy designers

  • Describe a strategy in plain English, such as "Buy when MACD crosses above zero and sell when RSI exceeds 75", and TradeWise parses it, simulates it over 1 month to 1 year of data, and returns the equity curve, Sharpe ratio, max drawdown, win rate, and every individual trade.
  • Test an idea in seconds instead of learning Python.

For portfolio risk managers

  • The Correlation Network renders your holdings as a force-directed physics graph. Nodes are sized by allocation, colored by sector, and edges are weighted by correlation.
  • Instantly see hidden concentration risk. If everything in your portfolio is correlated, you don't actually own a diversified portfolio.

Who It's For

UserWhat TradeWise does for them
Students and beginnersLearn markets risk-free with real data, real AI guidance, and real feedback.
Self-directed investorsGet institutional-grade analysis (ensemble ML, Monte Carlo VaR, multi-agent debate) in one place.
Strategy hobbyistsPrototype and backtest ideas in plain English without writing a l

Challenges we ran into

Challenges I Ran Into

1. Finnhub Free Tier Rate Limits

The free tier caps at 60 API calls per minute. One dashboard refresh wanted quotes for 8 holdings, 5 watchlist symbols, news for 3 tickers, and historical OHLCV, which blew through the quota instantly and returned 429s.

Fix: Built a 3-layer cache (in-memory dict, then Redis, then Finnhub) in

app/core/cache.py

. Every market data call goes through a single

cache_get(key, ttl, fetch_fn)

helper. Finnhub usage dropped around 95%.

2. SSE Connection Storm

Autopilot's SSE endpoint closed immediately when idle. The browser's

EventSource

auto-reconnects every 3 seconds, AND our

onerror

handler was also reconnecting. Dozens of concurrent connections accumulated and starved the backend so badly that even

/api/autopilot/status

timed out. The page would spin forever.

Fix: Backend now polls for state every 5 seconds with heartbeats instead of closing. Frontend only opens SSE when the agent is actually running. Reconnects tracked in a ref so stale callbacks can't fire phantom reconnections.

3. Trade Race Conditions

A user spamming "Buy" twice in 100ms could end up with double holdings but one balance deduction. We hit this when autopilot fired trades in parallel with a manual trade on the same symbol.

Fix: Used SQLAlchemy's

with_for_update()

for row-level locks on both the User balance row and the Holding row before any calculation. Transaction either fully commits or fully rolls back.

4. Gemini Hallucinating Tool Outputs

Our first AI Advisor passed tool definitions to Gemini 2.5 Flash via system prompt. Gemini would confidently fabricate tool results instead of calling them. It once said a user owned 50 shares of AAPL when they owned nothing.

Fix: Abandoned function calling and built a manual ReAct loop. The prompt forces a strict

TOOL_CALL: tool_name(argument)

format. We parse that with regex, execute the tool ourselves, append results to context, loop up to 7 iterations. No tool call means no data to claim.

5. Vercel Build Failing on TypeScript

Hardcoded fallback data we added didn't match the

ParsedRules

interface. Local dev mode was lenient but production builds enforced types strictly, so

npm run build

failed on deploy.

Fix: Rewrote the fallback to match the exact nested shape (

entry: { conditions, logic }

instead of

entry: string[]

), and converted

equity_curve

from

number[]

to

{ date, equity }[]

.

6. Markets Closed During Demo

We tested the "live ticking prices" feature at 9 PM IST on a weekend. US markets were closed, Finnhub's WebSocket sent nothing, and every number on screen was frozen. Terrible look for a real-time trading app.

Fix: Added a

simulate_prices()

background task in

ws_manager.py

that kicks in when the real feed is silent. It applies a 0.05% random walk per second to 10 default symbols and broadcasts through the same pipeline. Frontend cannot tell the difference.

7. JWT Over Server-Sent Events

Browser

EventSource

cannot set custom headers, so our standard

Authorization: Bearer

pattern broke every SSE endpoint (advisor chat, autopilot stream, signals feed, backtest runner). They all returned 401.

Fix: Added a second FastAPI dependency

get_current_user_sse

that reads the token from a

?token=

query param instead of the header. Same validation, different source. Frontend appends the token to the SSE URL.

8. Scope vs Time

The biggest challenge was ambition. We wanted a trading platform, ML ensemble, AI advisor, multi-agent swarm, autopilot, signal scanner, backtester, correlation graph, and natural language commands, all in a hackathon window.

Fix: Built the shared layers first (cache, auth, trading engine, market data service) before any feature on top. That gave every feature a consistent base and let them interoperate cleanly. The autopilot uses the same ML predictions as the dashboard, the swarm reads the same cache as the backtester, the command palette executes through the same trading engine as the trade page.

Discussion

Builders also viewed

See more projects on Devfolio