Harden trading, training, and monitoring
This commit is contained in:
@@ -9,7 +9,7 @@ Spot-бот для демо-торговли криптовалютой на р
|
||||
- Paper trading с учетом cash, комиссий, проскальзывания, stop-loss, take-profit и trailing stop.
|
||||
- Spot-only логика: покупка базовой монеты за USDT и продажа обратно, без short и без плеча.
|
||||
- Live spot-ордеры явно отправляются без плеча: `category=spot`, `isLeverage=0`.
|
||||
- Основная стратегия `torch_forecast`: входы и forecast-выходы идут только от экспортированной PyTorch LSTM/GRU модели; MACD/RSI/дневная EMA не являются условиями входа в этом режиме. Спред, ликвидность, stop-loss, ATR trailing stop, запрет DCA и лимиты экспозиции остаются защитой исполнения и риска.
|
||||
- Основная стратегия `torch_forecast`: входы и forecast-выходы идут только от свежей экспортированной PyTorch LSTM/GRU модели с успешным quality gate; MACD/RSI/дневная EMA не являются условиями входа в этом режиме. Rebound fallback без модели выключен по умолчанию. Спред, ликвидность, stop-loss, ATR trailing stop, запрет DCA и лимиты экспозиции остаются защитой исполнения и риска.
|
||||
- Основная стратегия `trend_macd`: вход на `1h`, дневной фильтр тренда на `1d`, long только если цена выше дневной EMA200 и дневная EMA50 выше EMA200.
|
||||
- Вход `trend_macd`: MACD на `1h` пересекает signal вверх, цена выше EMA50, RSI в диапазоне `45..65`, спред и ликвидность проходят runtime-фильтры.
|
||||
- Выход `trend_macd`: MACD пересекает signal вниз, `1h` свеча закрылась ниже EMA50, сработал стоп `4%` или ATR trailing stop `2.2 ATR`.
|
||||
@@ -20,7 +20,8 @@ Spot-бот для демо-торговли криптовалютой на р
|
||||
- Веб-dashboard на русском: equity, cash, PnL, позиции, сделки, сигналы, события, свечные графики, переключатель быстрой торговли и индикаторы работы обучения.
|
||||
- Android-монитор в `android/TradeBotMonitor`: русский мобильный интерфейс для просмотра 12 пар, свечей, Torch/Kelly параметров, расписания удалённого retrain и live-чеклиста.
|
||||
- SQLite runtime-хранилище в `runtime/tradebot.sqlite3`.
|
||||
- Health endpoint `/api/health` и Prometheus-compatible `/metrics`.
|
||||
- Liveness `/api/health`, readiness `/api/ready`, объединенный mobile snapshot `/api/mobile/snapshot` и Prometheus-compatible `/metrics`.
|
||||
- Все приватные API endpoints требуют токен или подтвержденный reverse-proxy user header; health и metrics остаются доступными для локального мониторинга.
|
||||
- Docker Compose для установки на Raspberry Pi 5 или другой Linux-хост.
|
||||
- Live trading guard: live не стартует без `ENABLE_LIVE_TRADING=true`, `LIVE_TRADING_CONFIRM=I_ACCEPT_REAL_RISK` и Bybit API-ключей.
|
||||
|
||||
@@ -80,6 +81,8 @@ Dashboard: <http://127.0.0.1:8787/>
|
||||
|
||||
Новый artifact версии 4 обучается как probabilistic multi-horizon модель: вход включает доходности, форму свечи, объем, ATR%, realized volatility, RSI/MACD/EMA slopes, 4h/24h rolling trend, дневные EMA-признаки, BTC/ETH cross-asset признаки и числовые признаки текущего шаблона пары. Цель обучается как `future log return - комиссии - проскальзывание`, нормализованная на текущую волатильность. Модель сразу прогнозирует горизонты `1/3/6/12`, quantile-оценки `q10/q50/q90` и `P(up)`.
|
||||
|
||||
Последний tail (`--holdout-window`, по умолчанию 240 samples на символ) полностью исключается из training и early stopping. Между train/validation/holdout оставляется purge по максимальному forecast horizon. Threshold walk-forward и guard работают только на этом untouched holdout; calibration и guard криптографически привязаны к SHA-256 конкретного model artifact.
|
||||
|
||||
Файл из `TIME_SERIES_LSTM_MODEL_PATH` читается ботом автоматически, если `TIME_SERIES_FORECAST_ENABLED=true`. В стратегии `torch_forecast` экспортированная PyTorch LSTM/GRU модель является единственным направляющим сигналом для входа и forecast-выхода. Экспортированные модели появляются в dashboard как `PyTorch LSTM` или `PyTorch GRU`; старый легкий reservoir LSTM-кандидат и все встроенные не-torch прогнозы удалены.
|
||||
|
||||
Автопереобучение на Windows запускает PyTorch trainer, пишет лог в `runtime/torch_retrain.log` и защищается от параллельных запусков:
|
||||
@@ -185,7 +188,11 @@ TIME_SERIES_PROBE_ENABLED=true
|
||||
TIME_SERIES_PROBE_MIN_EDGE_PERCENT=0.02
|
||||
TIME_SERIES_PROBE_MIN_PROBABILITY_UP=0.55
|
||||
TIME_SERIES_PROBE_SIZE_MULTIPLIER=0.40
|
||||
TIME_SERIES_REBOUND_FALLBACK_ENABLED=true
|
||||
TIME_SERIES_REBOUND_FALLBACK_ENABLED=false
|
||||
TIME_SERIES_REQUIRE_QUALITY_GATE=true
|
||||
TIME_SERIES_REQUIRE_FRESH_MODEL=true
|
||||
TIME_SERIES_MODEL_MAX_AGE_HOURS=48
|
||||
MARKET_TICKER_MAX_AGE_SECONDS=45
|
||||
STOP_LOSS_PERCENT=0.04
|
||||
TAKE_PROFIT_PERCENT=0.035
|
||||
TRAILING_STOP_PERCENT=0.015
|
||||
@@ -213,9 +220,17 @@ LIVE_TRADING_CONFIRM=I_ACCEPT_REAL_RISK
|
||||
BYBIT_API_KEY=...
|
||||
BYBIT_API_SECRET=...
|
||||
LIVE_ORDER_MAX_USDT=10
|
||||
LIVE_ORDER_FILL_TIMEOUT_SECONDS=20
|
||||
LIVE_RECONCILIATION_INTERVAL_SECONDS=30
|
||||
LIVE_PROTECTIVE_STOP_ENABLED=true
|
||||
TRADEBOT_API_TOKEN=
|
||||
TRADEBOT_TRAINING_TOKEN=
|
||||
TRUSTED_PROXY_USER_HEADER=
|
||||
HOLD_SIGNAL_SAMPLE_SECONDS=60
|
||||
STORAGE_RETENTION_DAYS=30
|
||||
```
|
||||
|
||||
Текущее live-исполнение отправляет market buy/sell в Bybit и ведет локальную shadow-позицию для dashboard и правил выхода. Для промышленной торговли реальными средствами следующий обязательный шаг — reconciliation с реальным wallet/order history Bybit, чтобы локальное состояние сверялось с фактическими fills и балансами.
|
||||
Live-исполнение ведет журнал order intent до отправки, подтверждает фактические fills через Bybit executions/order history, записывает фактическую цену/количество/комиссию, периодически сверяет wallet и открытые ордера и блокирует новые входы при расхождении. После подтвержденной покупки создается биржевой spot TP/SL stop-order; если защитный ордер создать не удалось, позиция немедленно закрывается. Перед первым использованием реальных средств этот контур все равно необходимо проверить на Bybit testnet с API-ключом без права вывода.
|
||||
|
||||
## API
|
||||
|
||||
@@ -234,5 +249,6 @@ LIVE_ORDER_MAX_USDT=10
|
||||
## Проверка
|
||||
|
||||
```bash
|
||||
python -m pip install -r requirements-dev.txt
|
||||
python -m pytest
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user