Tradewise(www.tradewise.cloud)
Your AI trading desk in one platform.
Created on 12th April 2026
•
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
| User | What TradeWise does for them |
|---|---|
| Students and beginners | Learn markets risk-free with real data, real AI guidance, and real feedback. |
| Self-directed investors | Get institutional-grade analysis (ensemble ML, Monte Carlo VaR, multi-agent debate) in one place. |
| Strategy hobbyists | Prototype 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 singlecache_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 ouronerror
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, sonpm run build
failed on deploy.Fix: Rewrote the fallback to match the exact nested shape (
entry: { conditions, logic }
instead ofentry: string[]
), and convertedequity_curve
fromnumber[]
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 inws_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 standardAuthorization: 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.
