- Add exchange_validation.py module for validating exchange requirements
before running strategies (backtest, paper, live modes)
- Fix AttributeError in Signals.py: 'Indicators' object has no attribute
'indicators' - created IndicatorWrapper class for proper data access
- Fix testnet balance issue: explicitly pass testnet=False to all
connect_exchange calls to prevent pickle corruption from old testnet
Exchange objects
- Add balance exchange selector: display one exchange at a time with
dropdown to switch between connected exchanges (defaults to chart view)
- Add unique tbl_key generation for exchange_data to prevent duplicate
entries (format: user:exchange)
- Fix DataCache balance serialization for list types
- Update frontend error handling for exchange validation errors
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add BollingerPercentB indicator class in backend (BOL%B)
- Calculates %B = (Close - Lower) / (Upper - Lower)
- Shows where price is relative to Bollinger Bands
- Values: 1.0 = upper band, 0.5 = middle, 0.0 = lower
- Add BollingerPercentB JavaScript class for frontend display
- Creates its own chart (chart4) like RSI/MACD
- Includes chart binding for synchronized scrolling
- Add chart4 HTML container and data plumbing
- Fix credential update when reconnecting with changed API keys
- Add TESTNET_MODE config setting for live trading mode control
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add KuCoin-specific balance fetching with type='trade' parameter
- Reinitialize ccxt client in refresh_balances() to fix pickle corruption
- Force reconnection when exchange is restored from database cache
- Add balance refresh button and socket handler in frontend
- Fix template null check for balances display
- Clean up DataCache and candles imports
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added proper mocking for all BrighterTrades dependencies (DataCache,
ExchangeInterface, Users, Strategies, Candles, Indicators, Trades)
- Pass mock socketio instance to BrighterTrades constructor
- Fixed patch paths to use correct module path (src.BrighterTrades.*)
- All 5 tests now pass
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>