📋 Co nowego — Changelog
Historia zmian w HornX™ i w dokumentacji. Najnowsze na górze.
08.04.2026 — SmartRange (#9) + SessionSweep (#10) + AI Gate Example 4b (commit 61fca95)
📐 Nowa strategia: SmartRange
Strategia ICT Smart Range oparta na dualnym gridzie PO3 dealing range. Wchodzi tylko gdy oba gridy (PO3 mały + PO3×3) potwierdzają LIQUIDITY_LAYER — strefę ekstremalnych poziomów instytucjonalnych.
Kluczowe cechy:
- Hard gate: oba gridy muszą być LIQUIDITY_LAYER (0–17% lub 83–100% dealing range)
- LONG tylko w discount (pctFromLow < 50%), SHORT tylko w premium
- Presety PO3 per instrument: BTC=2187, ETH=729, SOL=81...
- Hardcoded SL pod
drLow − ATR×1.0, TP2 =drMid(Equilibrium) - Bonus dla innych strategii: gdy dual-grid aktywny →
score += 2.0dla każdego sygnału - Disabled na 5m i niżej (niestabilny ATR)
- cooldown 1h, minScore 6.0
Dokumentacja: SmartRange
🌊 Nowa strategia: SessionSweep
Strategia AMD Judas Swing — wykrywa sweep poprzedniej sesji i wchodzi po powrocie ceny.
Kluczowe cechy:
- Gate AMD: tylko
MANIPULATION,DISTRIBUTION_SETUP,DISTRIBUTION(nie działa w Accumulation/OFF_HOURS) - Priorytet sesji: Asia > London > NY
- LONG gdy
broke === 'BELOW'(Asia Low swept) → TP1 = Asia HIGH - SHORT gdy
broke === 'ABOVE'(Asia High swept) → TP1 = Asia LOW - SL
sessionLow − ATR×1.0, TP2 = sessionHigh + ATR×1.75 - NIE w SESSION_FILTERED — zarządza własnym timing przez AMD
- Disabled na 1m, cooldown 1h, minScore 6.5
Dokumentacja: SessionSweep
🤖 AI Gate — Example 4b w SYSTEM_OLLAMA
Dodano przykład 4b do prompta Ollama (qwen3:8b w Alpha Lab). Uczy modela przepuszczać sygnały z AQS<9 gdy signal SL + NEUTRAL (= bezpieczna kombinacja, score 2/5 wystarczy).
Poprawia: false-reject gdy AQS=8-8.9 + NEUTRAL htf + signal SL → bot poprzednio blokował, teraz prawidłowo CONFIRM.
🔧 Dodatkowe fixy w tym cyklu (commit d274b27 — 06.04.2026)
adaptConfigTP multiplier przy wysokiej zmienności: teraz zmniejsza TP ×0.5 (min 1.5) zamiast zwiększać — ciaśniejszy cel przy volstrategy.defaults?.cooldownMs— per-strategia cooldown teraz działa poprawniekill_zonedodany dobuildUserV3+buildSignalMeta— AI Gate widzi aktywną Kill Zone
30.03.2026 — FIX-TRADELOG + HOTFIX MAX_RETRIES
📊 FIX-TRADELOG: 16 nowych pól w logach handlowych (commit 19f513c)
Cel: Bot musi uczyć się na własnych błędach. Logi trade'ów były zbyt ubogie — brak strategy, AI verdict, opłat, wyniku netto.
Zmiany w modules/weex-executor.js + modules/ate-controller.js:
logTrade(entry, extraData = {})— nowy opcjonalny parametr z auto-obliczaniemfeesUsdt,netPnlUsdt,pnlPct(TAKER_FEE=0.06%)- 18/18 wywołań
logTrade()zaktualizowanych — każdy typ zamknięcia (TP, SL, kill_switch, partial, break_even, orphan...) loguje pełne dane openTrades(paper+live) przechowują 7 nowych pól używanych przy zamknięciu pozycji- Pełen pipeline AI → logTrade:
_lastAiVerdictpropagowany przezexecSignal→handleEntrySignal→openTrades→logTrade
16 nowych pól:
strategy, direction, timeframe, leverage, positionUsdt, tp2, tp3, exitPrice, exitTime, exitReason, feesUsdt, netPnlUsdt, pnlPct, aiDecision, aiProvider, aiConfidence, aiReason
Szczegóły: Dokumentacja logTrade()
🔥 HOTFIX: MAX_RETRIES not defined w publicGet() (commit e19a9bc)
Problem: Commit FIX-AUD7 dodał publicGet() w weex-api.js używając MAX_RETRIES z zakresu prywatnej funkcji request(). Zmienna była niedostępna poza nią — bot rzucał ReferenceError przy każdym fetchowaniu WEEX klines.
Efekt: Candle'y WEEX pobierane z fallbacku Bitget, sygnały generowane bez danych z docelowej giełdy.
Fix: Lokalna const PUB_MAX_RETRIES = 2 w publicGet() zamiast referencji do zewnętrznego scope.
29.03.2026 (v3 — Tester Fixes + AI Reports)
🐛 Bugfixy testerów + 🌅 Morning Briefing + 🔬 Trade Autopsy
Bugfixy (commit 1aa3c09):
- Strip markdown z Mistral — Mistral czasem owija HTML w
```html ```. Teraz stripowany automatycznie → naprawia "html Wzorce błędów" widoczne w Trade Autopsy. - In-progress guard — kliknięcie "Generuj Morning" drugi raz gdy raport już trwa → toast ostrzeżenia zamiast podwójnego triggera. Backend
_reportGeneratingMap + endpoint/api/admin/report-status. - Per-user notification — tylko osoba która wcisnęła "Generuj" dostaje toast "✅ Raport gotowy!" (polling co 15s w tle). Inne sesje/konta nie są zakłócane.
- NASDAQ/SPY Yahoo Finance fallback — jeśli brak klucza
ALPHA_VANTAGE_KEY→ Yahoo Finance przejmuje automatycznie (bez auth). QQQ i SPY zawsze dostępne. - Stocks w CME sidebar — sekcja CME/Market Data na dashboardzie teraz pokazuje NASDAQ (QQQ) i S&P 500 (SPY) obok BTC/ETH z separatorem "📈 Indeksy".
- Report trigger non-blocking — POST
/api/admin/trigger-reportodpowiada natychmiast{status:'generating'}zamiast czekać ~6 minut na odpowiedź.
Morning Briefing (commit 8a27fad, nowa zakładka 🌅):
- Domyślna zakładka na stronie Intelligence — pierwsza ładowania przy otwarciu.
- 3-fazowe generowanie: Phase 1 harvest danych (bez AI) → Phase 2 trzy wywołania Mistral (z 125s odstępem RPM) → Phase 3 assembly HTML.
- Dane: BTC/ETH/XRP, Fear & Greed, NASDAQ/SPY, 8 źródeł newsów, trending coins.
- Cron: Pon–Pt 07:00 Warsaw. Admin może wygenerować ręcznie (~6 minut).
- Wynik: Crypto Snapshot + Macro & Sentiment + Plan Tradingowy.
Trade Autopsy (commit 6048efd, nowa zakładka 🔬):
- Tygodniowa AI-analiza przegranych trades + crowd paper signal.
- Generuje
[KATEGORIA] lekcja— parsowane i zapisywane doai_lessonstabeli. - Lekcje wstrzykiwane do Daily Briefingów → zamknięta pętla uczenia.
- Cron: Sobota 20:00 Warsaw.
E19 / E21 / E22 (commit 09e642f):
- E19 — monkey-patch
window.fetchz AbortController 10s na 3 stronach (layout, forcePassword, login) - E21 —
callMistral()retry 1x z 5s delay dla transient errors (5xx/timeout/reset) - E22 — semantic HTML (
<nav>,<main>),aria-hiddenna emoji,aria-livena powiadomienia, 15 nowych kluczy i18n PL+EN
Dokumentacja:
- AI Intelligence — całkowicie przepisana: Morning Briefing, Trade Autopsy, NASDAQ section, in-progress guard opis
29.03.2026 (v2)
📰 AI Intelligence: RSS Newsfeed + Market Pulse + TG Polling Fix
Newsfeed (ETAP G — Messari-style):
- 8 źródeł RSS — CoinTelegraph, The Block, Decrypt, Bitcoin Magazine, DL News, Protos, The Defiant, CoinDesk. Zastąpiono martwe CryptoCompare API (wymagał auth key).
- 80 artykułów max (12 na źródło), parallel fetch z
Promise.allSettled. - Daily Recap Tiles — horyzontalne kafelki dat z scroll-snap. Klik = filtruj newsy po dniu. "Dzisiaj" z ikoną ⚡.
- Filtry + wyszukiwanie — dropdown źródeł (8 opcji), search z 200ms debounce, sort newest/oldest. Wszystkie filtry łączą się.
- Kolorowe badges — każde źródło ma unikalny kolor (orange, teal, indigo, amber, blue, pink, purple, cyan).
- Relative time — "2h ago", "1d ago" zamiast dat.
Telegram Polling Fix:
- TG 409 Conflict — PM2 restart zabija proces, ale stary
getUpdateslong-poll (30s timeout) żyje na serwerze Telegram. Nowy proces dostaje 409. - Fix — startup cleanup loop:
deleteWebhook→ retry shortgetUpdates(timeout:1)co 5s aż stara sesja wygaśnie (max 60s) → potem start normalnego pollingu. - Reduced log spam — 409 logowane raz z komunikatem "old session expiring" zamiast pełnego error dump co retry.
Dokumentacja:
- Nowa strona: AI Intelligence — opis Newsfeed, Daily Tiles, filtrów, Fear & Greed, Trending, CME
- Changelog zaktualizowany
29.03.2026
🧠 AI Reversed Cascade + Neural Feed + Stats Persistence
AI Walidacja (ai-validator.js):
- Odwrócona kaskada AI — Groq Primary (14,400 RPD) → Gemini Luxury (20 RPD) → Safe REJECT. Poprzednio Gemini był primary co wyczerpało 20 darmowych zapytań/dzień w kilkanaście minut.
- Intelligent Routing — Gemini używany TYLKO dla strategii krytycznych (DipHunter, Breakout, SmartMoneyConcepts) gdy Groq zawiedzie. Pozostałe strategie → Groq only.
- Cache 15 min — rozszerzony z 5 do 15 minut. Redukcja zapytań API o ~60%.
- RPM throttle — 25 RPM sliding window (Groq) + 18 RPD hard cap (Gemini).
- Stats Persistence — liczniki AI zapisywane do
data/ai-stats.json. Przetrwają restart PM2. Midnight UTC auto-reset.
Neural Feed (dashboard):
- Stats bar — live statystyki AI: Groq/Gemini calls, cache ratio, RPM, confirms/rejects.
- AI badge — zielony "AI ON" / czerwony "AI OFF" w konsoli i na karcie ATE.
- AI logging — każda decyzja AI (CONFIRM/REJECT) logowana do bazy danych z pełnym kontekstem.
- Kategorie logów — nowe filtry: 🧠 AI i 🤖 ATE w zakładce Logi.
Dokumentacja:
- Nowa strona: AI Walidacja sygnałów — Dynamic Prompts, kaskada AI, Neural Feed
- Nowe strategie: SmartMomentum, SmartMoneyConcepts
- Zaktualizowane: Przegląd strategii (6→8), ATE (Neural Feed), Logi (ai/ate kategorie), Intro (8 strategii + AI)
27.03.2026
🔔 Push Preferences, Session Filter, Kill Zone Tags
Bot (v2.3–v2.4):
- Push Notification Preferences — użytkownik sam wybiera jakie push-notyfikacje chce otrzymywać (TP/SL Hit, Nowe sygnały, ATE, Auto-trade, Patterns). Domyślnie: TP/SL ON, reszta OFF.
- Session Filter (Filtr Sesyjny) — ATE może blokować sygnały poza wybranymi sesjami (Asia, London, NY, Overlap). Dotyczy strategii: TrendFollow, MeanReversion, Breakout, VolumeProfile. DipHunter i Sentiment zawsze aktywne (dane dzienne).
- Kill Zone Tags — sygnały ATE tagowane etykietami kill zone:
London Open KZ(06–09 UTC),NY Open KZ(12–15 UTC),London Close KZ(15–17 UTC). Widoczne w logach i historii sygnałów.
Dashboard:
- 5 checkboxów Push Preferences w Settings (widoczne gdy push subskrybowany)
- Opis filtru sesji z informacją które strategie są filtrowane
- Kill Zone tag w logach sygnałów ATE
Dokumentacja:
- ATE — nowa sekcja "Filtr sesji" z tabelą kill zones
- Ustawienia — sekcja Push Notifications Preferences
26.03.2026
🔧 Hotfix: Auto-resume, TV widget, session parity
Bot:
- Auto-resume po daily loss / max drawdown — bot automatycznie wznawia handel na nowy dzień (daily P&L + peak equity resetowane o północy UTC). Nie trzeba ręcznie klikać Resume.
- TradingView widget auto-exchange — widget na stronie Monitor automatycznie dopasowuje giełdę (WEEX/Bitget) na podstawie konfiguracji użytkownika. Wcześniej zawsze pokazywał BINANCE.
- Trial session limits — plan Trial ma teraz identyczne limity sesji jak Starter (2 sesje: 1 web + 1 mobile).
Dashboard:
- Poprawione pozycjonowanie dolnego menu mobilnego (sticky / fixed)
- Viewport meta z
viewport-fit=cover— lepsze dopasowanie na iOS Safari
Landing page (hornx.trading):
- Animacje SVG dla kart strategii VolumeProfile, SmartDCA, ConfluenceGrid
- Nowa kolumna "Giełdy" w stopce (WEEX, Bitget, MEXC)
- Linki do kursów video i wskaźników w stopce
Dokumentacja:
- Ustawienia — dodano info o auto-resume po dziennym limicie straty
- Tryby — wyjaśniono auto-wznowienie vs ręczny pause
- Monitor — nowa sekcja "TradingView Widget"
- Plany — Multi-device w Starter: ✅ (2 sesje)