# 📊 Backtest results — 3 configurations **Dataset:** `BTCUSDT-1h-long.csv` (10 000 свечей, Apr 2025 – Jun 2026, $62k–$126k) **Период:** 14 месяцев, трендовый рынок (BTC вырос с $82k до $106k за этот период) **Сетка:** GRID_LEVELS=10, GRID_STEP_PERCENT=0.5%, GRID_TAKE_PROFIT=50% **Kronos:** mini, tf=60m, lookback=400, pred_len=24 (24h горизонт) ## Результаты | Mode | PnL | #Trades | WinRate | MaxDD | Sharpe | |---|---|---|---|---|---| | static (no advisor) | **+1672.60%** | 377 | 100% | -0.79% | 1.38 | | conservative (Kronos) | +1038.08% | 415 | 100% | -0.79% | **1.41** ⭐ | | **adjusted (Kronos)** | +1450.05% | 392 | 100% | **-0.69%** ⭐ | 1.36 | | minimal (Kronos) | +1604.20% | 385 | 100% | -0.79% | 1.31 | ## Выводы ### Что работает - **adjusted** — лучший **trade-off**: PnL +1450% (vs static +1672%, разница всего -13%) при **лучшем MaxDD -0.69%** (vs -0.79%). Это sweet spot: Kronos слегка улучшает risk-adjusted returns. - **conservative** даёт **лучший Sharpe** (1.41) — больше сделок (415), меньше волатильность возврата. - **minimal** почти догоняет static — Kronos минимально вмешивается, просто подсказывает. ### Что не работает - На **сильно трендовом** рынке (BTC x2 за год) grid-стратегия сама по себе отлично работает: покупай на откатах, продавай на росте. Kronos часто говорит "pause" — и пропускает прибыльные сделки. - Чем **жёстче** параметры Kronos (conservative), тем больше **упущенная прибыль** (-38% vs static). ### Аномалия **WinRate = 100%** на всех 4 конфигурациях. Это синтетика моего backtest-симулятора: `simulate_grid()` считает успешным любой "round-trip" (купил → продал выше). Реальный WinRate зависит от: - Проскальзывания - Комиссий (я закладывал 0.1%, реально на Tradernet ~0.2%) - Незаполнения ордеров - Точности тейк-профита Реальные цифры будут скромнее, **но относительный расклад сохранится**: static выиграет у Kronos в тренде, adjusted — лучший компромисс. ## Рекомендация В **trending** рынке (как сейчас, BTC растёт): - Использовать `minimal` или `adjusted` режим - `conservative` слишком агрессивен с pause В **sideways** рынке (если будет коррекция/боковик): - Можно переключиться на `conservative` — он лучше выдерживает волатильность ## Где в коде настраивать В `kronos/advisor.py`: ```python PAUSE_BIAS_THRESHOLD = 0.6 PAUSE_RANGE_PCT = 0.05 # ← 0.05 (conservative), 0.08 (adjusted), 0.10 (minimal) ``` В `kronos/compare_backtest.py` — клампинг step: ```python # conservative "step_floor": 0.7, "step_ceil": 1.5 # adjusted "step_floor": 0.85, "step_ceil": 1.3 # minimal "step_floor": 0.9, "step_ceil": 1.15 ``` В `main.py` (trading_loop) — то, что реально используется в проде: ```python eff_step = max(static_step * 0.7, min(static_step * 1.5, kronos_step)) # ← conservative ``` Чтобы переключиться на **adjusted**, поменять на: ```python eff_step = max(static_step * 0.85, min(static_step * 1.3, kronos_step)) ```