{{ error }}

SmartBees Trading Bot

{{ error }}

Trading Accounts

ID Name Exchange Mode API Credentials Created Actions
{{ account.id }} {{ account.name }} {{ account.exchange }} {{ account.isSimulated ? 'Paper' : 'Live' }} Configured Not Required Not Set {{ formatTime(account.createdAt) }}
No accounts found. Create one to get started.
{{ setup.symbol }} / {{ setup.timeframe }}
{{ getStrategyName(setup.preferredStrategy) }} | {{ setup.accountName || 'Account #' + setup.accountId }}
{{ setup.status }}
Capital
{{ formatCurrency(setup.currentBaseAmount) }}
Win Rate
{{ setupTradeStats[setup.id] ? formatPercent(setupTradeStats[setup.id].winRate) : '-' }}
Trades
{{ setupTradeStats[setup.id]?.winningTrades || 0 }}/{{ setupTradeStats[setup.id]?.losingTrades || 0 }}
Loss
{{ formatPercent(setup.currentLossPercent) }}
No trading setups configured. Create one to start automated trading.
Currently Armed Signals ({{ (armedSignals || []).length }})
{{ signal.position }} Setup #{{ signal.setupId }}
{{ signal.symbol }}
Trigger: {{ formatPrice(signal.triggerPrice) }}
Expires: {{ formatTime(signal.expiresAt) }}
No signals currently armed. Signals are armed when active setups match generated signals.
Recent Signal Executions
Time Setup Signal Status Price Quantity Value
{{ formatTime(exec.createdAt) }} #{{ exec.tradingSetupId }} {{ exec.signalPosition }} {{ exec.symbol }} {{ exec.status }} {{ exec.executionPrice ? formatPrice(exec.executionPrice) : '-' }} {{ exec.executionQuantity || '-' }} {{ exec.executionValue ? formatCurrency(exec.executionValue) : '-' }}
No executions yet
Active Setups
{{ setupStats.setups?.totalActive || 0 }}
Armed Signals
{{ setupStats.signalExecution?.armed || 0 }}
Triggered
{{ setupStats.signalExecution?.triggered || 0 }}
Executed
{{ setupStats.signalExecution?.executed || 0 }}
Expired
{{ setupStats.signalExecution?.expired || 0 }}
Setups by Status
StatusCount
{{ status }} {{ count }}
No data
Executions by Status
StatusCount
{{ status }} {{ count }}
No data
Total Trades
{{ analysisTradeStats.totalTrades || 0 }}
Win Rate
{{ formatPercent(analysisTradeStats.winRate) }}
Realized PnL
{{ formatCurrency(analysisTradeStats.totalRealizedPnl) }}
Profit Factor
{{ analysisTradeStats.profitFactor != null ? parseFloat(analysisTradeStats.profitFactor).toFixed(2) : 'N/A' }}

Price Chart with Signals & Trades

Trades ({{ analysisTrades.length }})

Time Side Order Type Price Qty Value Realized PnL Exit Type
{{ formatTime(trade.executedAt) }} {{ trade.side }} {{ trade.orderSide || '-' }} {{ formatPrice(trade.price) }} {{ parseFloat(trade.quantity).toFixed(6) }} {{ formatCurrency(trade.totalValue) }} {{ trade.realizedPnl != null ? formatCurrency(trade.realizedPnl) : '-' }} {{ getTradeExitLabel(getTradeExitType(trade)) }}
No trades found for this period.

Signal Executions ({{ analysisExecutions.length }})

Time Position Trigger Price Exec Price Status Qty
{{ formatTime(exec.triggeredAt || exec.createdAt) }} {{ exec.position }} {{ formatPrice(exec.triggerPrice) }} {{ exec.executionPrice ? formatPrice(exec.executionPrice) : '-' }} {{ exec.status }} {{ exec.quantity ? parseFloat(exec.quantity).toFixed(6) : '-' }}
No signal executions found.
Portfolio Value
{{ formatCurrency(portfolio.totalValue) }}
Cash: {{ formatCurrency(portfolio.cash) }}
Total P&L
{{ formatCurrency(portfolio.totalPnl) }}
Return: {{ formatPercent(portfolio.returnPct) }}
Realized P&L
{{ formatCurrency(portfolio.realizedPnl) }}
Unrealized P&L
{{ formatCurrency(portfolio.unrealizedPnl) }}
Total Trades
{{ portfolio.tradeCount || 0 }}
Positions Value
{{ formatCurrency(portfolio.positionsValue) }}
Portfolio Value Over Time
Daily Realized P&L
Recent Trades
Side Symbol Setup Price Qty
{{ trade.side }} {{ trade.symbol }} #{{ trade.tradingSetupId }} {{ formatPrice(trade.price) }} {{ trade.quantity }}
No trades yet
Open Positions
Symbol Setup Qty Realized P&L Unrealized P&L
{{ pos.symbol }} #{{ pos.tradingSetupId }} {{ pos.quantity }} {{ formatCurrency(pos.realizedPnl) }} {{ formatCurrency(pos.unrealizedPnl) }}
No open positions

Trade History

Price Action & Trades ({{ tradeFilterSymbol }})
Select a symbol to view chart
Select a symbol to view trades chart
Time Side Symbol Setup Price Quantity Total Value Signal
{{ formatTime(trade.executedAt) }} {{ trade.side }} {{ trade.symbol }} #{{ trade.tradingSetupId }} {{ formatPrice(trade.price) }} {{ trade.quantity }} {{ formatCurrency(trade.totalValue) }} {{ trade.signalReason }}
No trades found for selected filters.
Current Positions
Symbol Setup Quantity Avg Entry Current Price Market Value Realized P&L Unrealized P&L
{{ pos.symbol }} #{{ pos.tradingSetupId }} {{ pos.quantity }} {{ formatPrice(pos.avgEntryPrice) }} {{ formatPrice(pos.currentPrice) }} {{ formatCurrency(pos.marketValue) }} {{ formatCurrency(pos.realizedPnl) }} {{ formatCurrency(pos.unrealizedPnl) }}
No open positions
P&L History
Live Prices
Symbol Last Price
{{ row.symbol }} {{ formatPrice(row.price) }}
No price data
{{ bt.symbol }} / {{ bt.timeframe }}
{{ getStrategyName(bt.strategyCode) }} | Setup #{{ bt.tradingSetupId }}
{{ bt.status }}
{{ formatTime(bt.startTime).split(',')[0] }} - {{ formatTime(bt.endTime).split(',')[0] }}
{{ bt.processedCandles }} / {{ bt.totalCandles }} candles ({{ bt.progressPercent.toFixed(1) }}%)
Initial
{{ formatCurrency(bt.initialCapital) }}
Candles
{{ bt.totalCandles }}
Slippage
{{ bt.slippageBps }} bps
No backtests yet. Create one to get started.
{{ selectedBacktest.symbol }} / {{ selectedBacktest.timeframe }}
Strategy: {{ getStrategyName(selectedBacktest.strategyCode) }} | Setup #{{ selectedBacktest.tradingSetupId }}
Period: {{ formatTime(selectedBacktest.startTime).split(',')[0] }} - {{ formatTime(selectedBacktest.endTime).split(',')[0] }}
{{ selectedBacktest.status }}
{{ backtestProgress.processedCandles }} / {{ backtestProgress.totalCandles }} candles ({{ backtestProgress.progressPercent.toFixed(1) }}%)
Current: {{ formatTime(backtestProgress.currentCandleTime) }}
{{ selectedBacktest.errorMessage }}
Performance Metrics
Total P&L
{{ formatCurrency(backtestResult.totalPnl) }}
Total Return
{{ formatPercent(backtestResult.totalReturnPct) }}
Max Drawdown
{{ formatPercent(backtestResult.maxDrawdownPct) }}
Sharpe Ratio
{{ backtestResult.sharpeRatio || '-' }}
Sortino Ratio
{{ backtestResult.sortinoRatio || '-' }}
Calmar Ratio
{{ backtestResult.calmarRatio || '-' }}
Trade Statistics
Total Trades
{{ backtestResult.totalTrades }}
Winning
{{ backtestResult.winningTrades }}
Losing
{{ backtestResult.losingTrades }}
Win Rate
{{ formatPercent(backtestResult.winRate) }}
Profit Factor
{{ backtestResult.profitFactor || '-' }}
Avg Win
{{ backtestResult.avgWin ? formatCurrency(backtestResult.avgWin) : '-' }}
Avg Loss
{{ backtestResult.avgLoss ? formatCurrency(backtestResult.avgLoss) : '-' }}
Largest Win
{{ backtestResult.largestWin ? formatCurrency(backtestResult.largestWin) : '-' }}
Largest Loss
{{ backtestResult.largestLoss ? formatCurrency(backtestResult.largestLoss) : '-' }}
Capital
Initial
{{ formatCurrency(selectedBacktest.initialCapital) }}
Final
{{ formatCurrency(backtestResult.finalCapital) }}
Peak
{{ formatCurrency(backtestResult.peakCapital) }}
Lowest
{{ formatCurrency(backtestResult.lowestCapital) }}
Equity Curve
Price Action & Trades ({{ (backtestCandles || []).length }} candles)
Loading price action data...
Trades ({{ (backtestTrades || []).length }})
Time Side Reason Signal Price Exec Price Slippage Quantity Total Value Realized P&L
{{ formatTime(trade.executedAt) }} {{ trade.side }} {{ trade.tradeReason }} {{ formatPrice(trade.signalPrice) }} {{ formatPrice(trade.executionPrice) }} {{ formatCurrency(trade.slippageAmount) }} {{ trade.quantity }} {{ formatCurrency(trade.totalValue) }} {{ trade.realizedPnl ? formatCurrency(trade.realizedPnl) : '-' }}
No trades in this backtest

Background Tasks

Task Queue Status
Queue Configured
{{ taskQueueStatus.taskQueueConfigured ? 'Yes' : 'No' }}
{{ taskQueueStatus.message }}
Loading status...
TA Indicator Backfill

Pre-calculate technical analysis indicators for historical candlesticks. This enables faster ML feature extraction.

Enables multiple price-publisher instances to process in parallel
Leave empty for automatic chunk sizing: 1m=6h, 5m=24h, 15m=72h, 1h=168h, 4h=336h, 1d=720h
Recent Task Submissions
No recent tasks submitted
{{ task.taskType }} {{ task.symbol }}/{{ task.timeframe }} {{ task.totalChunks }} chunks
{{ task.status }}
Batch: {{ task.batchId.substring(0, 8) }}... ID: {{ task.taskId.substring(0, 8) }}...
ML Model Training

Train XGBoost ML model for price direction prediction (UP/DOWN/HOLD).

Hyperparameters
Available Task Types
Task Type Description Status
TA_BACKFILL Pre-calculate TA indicators for historical candlesticks Available
ML_TRAINING Train XGBoost ML model for price direction prediction Available

ML Models

Model Groups
{{ filteredMlModels.length }} / {{ mlModelsGrouped.length }}
Active Models
{{ filteredMlModels.filter(m => m.isActive).length }}
Symbols
{{ [...new Set(filteredMlModels.map(m => m.symbol))].length }}
Total Versions
{{ filteredMlModels.reduce((sum, m) => sum + m.totalVersions, 0) }}
Models by Symbol / Timeframe / Strategy
Symbol Timeframe Strategy Latest Version Total Versions Training Samples Status Created
{{ model.symbol }}
{{ model.timeframe }} {{ model.strategy }} v{{ model.latestVersion }} {{ model.totalVersions }} {{ model.trainingSamples.toLocaleString() }} {{ model.isActive ? 'Active' : 'Inactive' }} {{ formatTime(model.createdAt) }}
Loading models... No models match the selected filters. No ML models found. Train a model from the Tasks tab.
Model Training Information

Models are trained using the XGBoost ML strategy. Each model is trained on historical candlestick data with technical analysis features. The latest version for each symbol/timeframe combination is automatically used for signal generation.

Average Training Samples
{{ filteredMlModels.length > 0 ? Math.round(filteredMlModels.reduce((sum, m) => sum + m.trainingSamples, 0) / filteredMlModels.length).toLocaleString() : 0 }}
Feature Count
{{ filteredMlModels.length > 0 ? filteredMlModels[0].featureCount : 0 }}
Consumer API: {{ apiBase }} | Auto refresh: {{ auto ? 'ON' : 'OFF' }} ({{ intervalSeconds }}s)