Phase 3: Advanced Analytics Frontend Components
Implemented comprehensive frontend visualizations for Phase 3 analytics: 1. PerformanceHistoryChart.tsx - Daily P&L bar chart with period filtering - Visualizes daily performance with open/close/high/low bars - Shows P&L trend, win/loss days, best/worst days - Supports week/month/quarter/year periods 2. EquityCurveChart.tsx - Equity growth line chart - Displays cumulative portfolio equity over time - Shows peak equity, drawdown %, total return - Real-time equity value tracking 3. TradePatternAnalyzer.tsx - Trade pattern visualization - Shows top performing patterns with confidence scores - Detailed pattern information (win rate, samples, profit) - Configurable confidence filter - Pattern indicators and best timeframes 4. LessonsPanel.tsx - Lessons learned management - Create and categorize trading lessons - Track recurring mistakes automatically - Filter by category and importance - Display related lessons with tags 5. AnalyticsDashboard.tsx - Comprehensive analytics hub - Integrates all analytics components - Period selector (week/month/quarter/year) - Overview statistics and KPIs - Recent insights summary - Refresh functionality Integration with App.tsx: - Added Analytics tab to main navigation - Imported all Phase 3 components - Integrated dashboard into tab system All components use: - lightweight-charts for charting - axios for API calls - Real-time data fetching - TypeScript for type safety
This commit is contained in:
@@ -14,6 +14,9 @@ import UserProfileSetup from './components/UserProfileSetup'
|
||||
import HabitTracker from './components/HabitTracker'
|
||||
import DailyChecklistPanel from './components/DailyChecklistPanel'
|
||||
|
||||
// Phase 3: Advanced Analytics Components
|
||||
import AnalyticsDashboard from './components/AnalyticsDashboard'
|
||||
|
||||
function Tabs({ tabs, active, onChange }: { tabs: string[]; active: string; onChange: (t: string) => void }) {
|
||||
return (
|
||||
<div style={{ display: 'flex', gap: 8, marginBottom: 12 }}>
|
||||
@@ -27,7 +30,7 @@ function Tabs({ tabs, active, onChange }: { tabs: string[]; active: string; onCh
|
||||
}
|
||||
|
||||
export default function App() {
|
||||
const [activeTab, setActiveTab] = useState<'Live' | 'Account' | 'Equity' | 'Decisions' | 'Settings' | 'Prompts' | 'Daily Helper'>('Live')
|
||||
const [activeTab, setActiveTab] = useState<'Live' | 'Account' | 'Equity' | 'Decisions' | 'Analytics' | 'Settings' | 'Prompts' | 'Daily Helper'>('Live')
|
||||
const [backendStatus, setBackendStatus] = useState<any>(null)
|
||||
const [showProfileSetup, setShowProfileSetup] = useState(false)
|
||||
|
||||
@@ -44,7 +47,7 @@ export default function App() {
|
||||
return () => { mounted = false }
|
||||
}, [])
|
||||
|
||||
const tabs = ['Live', 'Account', 'Equity', 'Decisions', 'Daily Helper', 'Settings', 'Prompts']
|
||||
const tabs = ['Live', 'Account', 'Equity', 'Decisions', 'Analytics', 'Daily Helper', 'Settings', 'Prompts']
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-dark-bg p-6">
|
||||
@@ -80,6 +83,7 @@ export default function App() {
|
||||
{activeTab === 'Account' && <AccountPositionsPanel />}
|
||||
{activeTab === 'Equity' && <EquityPerformancePanel />}
|
||||
{activeTab === 'Decisions' && <DecisionLogPanel />}
|
||||
{activeTab === 'Analytics' && <AnalyticsDashboard />}
|
||||
|
||||
{activeTab === 'Daily Helper' && (
|
||||
<div style={{ display: 'grid', gap: 16, gridTemplateColumns: 'repeat(auto-fit, minmax(400px, 1fr))' }}>
|
||||
|
||||
Reference in New Issue
Block a user