TradeSmart is a web-based trading journal built to solve a problem most journaling tools ignore: traders don't underperform because they lack market data they underperform because of psychological patterns like revenge trading, overconfidence, and fear-driven exits. TradeSmart automatically detects these emotional trading patterns directly from trade data and notes, without requiring the trader to self-report anything.
This was my final year project at Bowen University, Iwo (BSc. Computer Science).
- Behaviour Detector flags revenge trading, overconfidence, and fear/hesitation per day using anomaly detection (Isolation Forest) on trade parameters
- AI Emotional Analysis sentiment scoring of trade notes (VADER) that classifies a trader's mindset (e.g. CALM) alongside each trade
- Live Trade Monitor a Neural Prediction Engine that assesses open positions in real time and returns GOOD / WARNING / NEUTRAL signals with plain-language explanations
- Performance Dashboard & Calendar Heatmap daily P&L, win rate, and profit factor at a glance
- Monthly Reports auto-generated deep-dive reports covering 30+ analytical dimensions: streaks, best/worst assets, time-of-day performance, and a trading personality profile
- Position Sizing Calculator recommends trade size based on account balance and risk tolerance
- Strategy Checklist customizable pre-trade rule checklists to reduce impulsive entries
- Three Data Import Methods broker API sync (SnapTrade OAuth), CSV/file upload, or manual entry
- Key Performance Indicators profit factor, max drawdown, win rate, and more, computed automatically from trade history
Trade data is ingested via broker sync, file upload, or manual entry, then processed with Pandas and NumPy to compute performance metrics. A rule-based behavioural analysis layer combines each trade's numerical attributes with VADER sentiment scoring of the trader's written notes to detect emotional patterns no self-reporting required. For open positions, the live prediction pipeline pulls real-time market data via yfinance and applies SMA/RSI-based analysis to generate live GOOD/WARNING/NEUTRAL signals.
| Component | Technology |
|---|---|
| Backend | Python 3.10, Django 4.2 |
| Database | PostgreSQL (production) / SQLite (development) |
| Data Processing | Pandas, NumPy |
| Behavioural Analysis | Rule-based logic (Python), Isolation Forest |
| Sentiment Analysis | VADER (vaderSentiment) |
| Live Market Data | yfinance, SMA/RSI computation |
| Frontend | HTML5, CSS3, JavaScript, Chart.js |
| Broker Integration | SnapTrade OAuth API |
| Testing | Django TestCase, unittest.mock |
Validated using Django's automated testing framework across 5 test classes covering authentication, core analytics, data import, live monitoring, and settings management 100% pass rate, 0% faults. The behavioural detection module correctly labelled all 6 tested emotional trade scenarios, and the live prediction engine returned 88% confidence on GOOD signals and 25% on WARNING conditions during live testing.
# Clone the repository
git clone https://github.com/danielTunmise/TRADESMART.git
cd TRADESMART
# Create a virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run migrations
python manage.py migrate
# Start the development server
python manage.py runserver- Python 3.10+
- Django 4.2+
- PostgreSQL 14+ (or SQLite for local development)
- Pandas, NumPy, Scikit-learn, vaderSentiment, yfinance, Requests
This system was developed to close a gap identified in existing trading journal tools: most either passively record trades or focus purely on statistics, without addressing the behavioural/psychological side of trading performance and none offer real-time analytical support for open positions. TradeSmart tackles both.
MIT