Przejdź do głównej zawartości

📋 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.0 dla 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)

  • adaptConfig TP multiplier przy wysokiej zmienności: teraz zmniejsza TP ×0.5 (min 1.5) zamiast zwiększać — ciaśniejszy cel przy vol
  • strategy.defaults?.cooldownMs — per-strategia cooldown teraz działa poprawnie
  • kill_zone dodany do buildUserV3 + 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-obliczaniem feesUsdt, 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: _lastAiVerdict propagowany przez execSignalhandleEntrySignalopenTradeslogTrade

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 _reportGenerating Map + 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-report odpowiada 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 do ai_lessons tabeli.
  • 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.fetch z AbortController 10s na 3 stronach (layout, forcePassword, login)
  • E21callMistral() retry 1x z 5s delay dla transient errors (5xx/timeout/reset)
  • E22 — semantic HTML (<nav>, <main>), aria-hidden na emoji, aria-live na 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 getUpdates long-poll (30s timeout) żyje na serwerze Telegram. Nowy proces dostaje 409.
  • Fix — startup cleanup loop: deleteWebhook → retry short getUpdates(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:


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)