Проект 01 · Финанси · AI
Market Sentiment Terminal
Десктоп приложение, което чете над 100 източника в реално време, оценява всяка новина с AI и показва на български какво става на пазара, защо и дали настроението изобщо изпреварва цената.
- 100+източника: медии, регистри, социални мрежи, пазарни данни
- 3000+истории на ден, подредени по важност
- 570оценени записа за проверка на точността
- 22файла с автоматични тестове
Проблемът
Хиляди новини на ден, а повечето са шум
Новините за пазарите са хиляди на ден и на английски. Една и съща история излиза в десетки медии, а голяма част са реклами, ценови прогнози и „3 акции за купуване“.
Исках един екран, който казва кое е важно, какво е настроението и дали то изобщо има връзка с цената. И исках да мога да проверя всяко число, а не да му вярвам.
Какво прави
Три екрана от приложението
Интерфейсът е на български. Приложението чете новините на английски и само ги превежда и обобщава.
Логиката
От суровата новина до една стрелка
Седем стъпки. Всяко число, тегло и срок по-долу е взето от настройките на самото приложение.
-
01 · Събиране
Всеки източник, който има значение
48 новинарски фийда, документите към SEC (8-K, 6-K, 13D) за всяка листната фирма, прессъобщения, Фед, ЕЦБ и американската статистика, StockTwits и Bluesky, Yahoo и CoinGecko, икономически календар и данни на FRED. Заявките вървят бавно и учтиво: сайт, който блокира три пъти, се пропуска за 6 часа.
- 48 RSS
- SEC EDGAR
- Fed · ECB · BLS
- StockTwits · Bluesky
- CoinGecko топ 500
-
02 · Разпознаване
За коя компания е новината
Всяко заглавие се сверява с всички американски акции и ETF плюс водещите криптовалути. Име, което е и обикновена дума, иска контекст: „Attorney General“ не е General Motors, а „Washington Post“ не е акцията POST.
-
03 · Почистване
Една история, един глас
Рекламите, ценовите прогнози и ботовете отпадат. Заглавията се сравняват по редките думи и числата в тях. Ако 8 медии пускат една история, тя се брои веднъж, с по-голяма тежест заради широкото отразяване.
тежест на историята × (1 + 0,5 × log₂ медии) → 8 медии = ×2,5
-
04 · Оценка
AI модел, обучен за финансов текст
Новините се оценяват с FinBERT от −100 до +100, плюс правила за ясните случаи: отчети, рейтинги, „акцията падна с X%“. Социалните постове минават и през VADER с около 250 думи финансов и крипто жаргон. Документите към SEC и макро данните се оценяват по правила: изненадата спрямо очакването.
оценка = P(позитивно) − P(негативно) · увереност = 1 − P(неутрално)
-
05 · Тежест
Кой го казва и колко е свежо
Големите агенции и регулаторите тежат 1,0, утвърдените медии 0,65, малките сайтове 0,25. Прессъобщенията на самите фирми тежат 0,3, защото по природа са оптимистични. Старата новина губи половината си тежест за 3 часа, постът за 1 час, а събитието за 6.
-
06 · Стрелката
Четири части, една стойност
Новини, социални мрежи, събития и цени. Част с малко данни тежи по-малко, затова едно заглавие не може да вкара стрелката в силна зона. Накрая сумата минава през tanh, за да остане между −100 и +100. Пробвай го по-долу.
стрелка = 100 × tanh(1,8 × Σ тегло × увереност × тон ÷ Σ тегло)
-
07 · Самопроверка
Изпреварва ли настроението цената?
На всеки 10 минути програмата взима последните 30 дни на непокриващи се 4-часови периоди. Брои случаите, в които думите са били поне ±10, и сравнява колко често цената е тръгнала натам със случайността. Присъда се дава само при поне 30 случая, с 95% интервал.
Пробвай сам
Как се движи стрелката
Формулата и теглата са същите като в приложението. Смени тона и броя новини и виж защо едно заглавие не стига, а цените тежат най-много.
Свежест
Колко бързо остарява информацията
Тежест на една новина, пост или събитие спрямо часовете от публикуването
Точност
Версия 0.7 срещу 0.8
Проверка върху 570 реални записа от 5 до 7 октомври 2026 г., оценени от два независими AI оценителя
версия 0.7версия 0.8
Технологии
На какво е построено
- AI модели
- FinBERT (ProsusAI) в ONNX, свит до int8, за да върви бързо на обикновен процесор. VADER с добавен речник за финанси и емоджита за социалните постове. Офлайн модел за превод, когато няма интернет.
- Правила
- Документи към SEC по вид: фалит −90, делистинг −60, активист инвеститор +25. Макро данни като изненада спрямо консенсуса с посока: по-висок CPI е лош знак, по-силни работни места са добър. Отчетите като EPS спрямо очакването.
- Данни
- SQLite база с цялата история. При рестарт последните 12 часа се зареждат обратно без двойно броене. Обичайният тон на всеки източник се самонастройва бавно и стрелката показва отклонението от него.
- Интерфейс
- Десктоп приложение с PySide6 (Qt), изцяло на български, с конзола за команди и клавишни комбинации. Пакетирано като .exe с PyInstaller, около 300 до 400 MB.
- Мрежа
- Асинхронни заявки, отделно учтиво темпо за всеки сайт, резервни адреси за всеки фийд и специален клиент за сайтовете със защита от ботове.
- Тестове
- pytest, 22 файла. Отделен тест върху 570-те оценени записа спира всяка промяна, която прави оценките по-лоши от версия 0.8.
Поуки
Какво научих
Чистите данни са по-важни от AI модела
Първите показания бяха изкуствено завишени: +54 вместо +41 за крипто. Дублираните истории и рекламите се брояха като новини. Поправката беше в почистването, не в модела.
AI грешките се виждат само с проверка
FinBERT оцени „Why Pagaya Stock Dropped 20%“ като добра новина (+68). Затова добавих правила за ясните случаи и тест, който ги хваща.
Една история не е десет новини
Покупката на 334 BTC от Strategy се броеше в 12 отделни групи. След по-доброто сравняване на заглавията станаха 3.
Отвъд финансите
Същата система става и за вашата фирма
Мониторинг на медиите за марка или фирма, мнението на клиентите, следене на конкуренти, PR и комуникации. Навсякъде, където има много текст и трябва бързо да се разбере кое е важно.
Образователен проект, не е инвестиционен съвет. Приложението е лично и не се разпространява.


