[ blog · tutorial ]12 min read

Как построить агента инвестиционного анализа: рынки, фундаментал, SEC и экономические данные в одном API

Sarah ChoyОпубликовано 16 июня 2026 г.12 мин чтения
Как построить агента инвестиционного анализа: рынки, фундаментал, SEC и экономические данные в одном API

Агенту инвестиционного анализа нужны пять разных слоёв данных — цены, фундаментал, отчётность, макро и новости — и каждый из них обычно означает отдельного поставщика, ключ и схему. Вот как завязать все пять на один набор эндпоинтов, с рабочим кодом и расчётом стоимости.

Кратко

  • Полезному финансовому агенту нужны пять слоёв данных: рынки в реальном времени (цены), фундаментал компаний (отчётность), отчётность SEC, экономические индикаторы и новости. Если сшивать из разных поставщиков — это 5 контрактов, 5 ключей, 5 схем.
  • API Pick отдаёт все пять как согласованные JSON-эндпоинты поиска — /search/markets, /search/financials, /search/sec, /search/economic, /search/news — плюс /extract для полных документов. Один ключ, заранее подготовлено под tool calling LLM.
  • Паттерн агента: запускайте нужные эндпоинты параллельно как инструменты, объединяйте JSON и давайте модели рассуждать над заземлёнными данными вместо того, чтобы выдумывать числа.
  • Тарификация в кредитах — только за успех: markets 120, financials 200, sec 120, economic 50, news 15 за вызов. Типичный мультиинструментальный исследовательский запрос стоит существенно меньше $0.01–$0.10 в зависимости от глубины.
  • Build-vs-buy: собрать Polygon + поставщика фундаментала + SEC EDGAR + FRED + новостной API самому — это недели интеграции и 5 ежемесячных счетов; маршрут с одним эндпоинтом — день.

Проблема пяти слоёв

Спросите LLM "дорогая ли NVIDIA прямо сейчас?" — и она уверенно придумает P/E. Решение не в более крупной модели, а в заземлении. Исследовательский агент, заслуживающий доверия, должен подтягивать живые данные с цитатами по пяти слоям, а затем рассуждать над ними:

  • Рынки — текущая цена, капитализация и как она двигалась. Крипта, форекс, ETF и лидеры дня, когда это уместно.
  • Фундаментал — баланс, отчёт о прибылях и убытках, движение денежных средств, дивиденды и сделки инсайдеров. Слой «а бизнес-то реально здоров».
  • Отчётность SEC — факторы риска из 10-K, детали 10-Q, события 8-K, формулировки отчётных звонков. Качественное измерение, которое числа упускают.
  • Экономические индикаторы — ставки, инфляция, занятость, ВВП из FRED, BLS, World Bank и IMF. Макрофон, внутри которого сидит любая идея.
  • Новости — своевременный катализатор: понижение рейтинга, запуск продукта, действие регулятора.

Если сшивать это из разных поставщиков, получается пять контрактов, пять API-ключей, пять режимов rate-limit и пять схем ответа, которые надо нормализовать, прежде чем модель сможет к ним прикоснуться. Именно на интеграции и буксуют проекты финансовых агентов.

Один набор эндпоинтов, пять слоёв

API Pick отдаёт каждый слой как согласованный JSON-эндпоинт поиска, так что агент общается с одним ключом и одним форматом ответа:

  • Markets Search — мировые и американские акции, крипта, форекс, ETF, фонды, сырьё и лидеры движения рынка США.
  • Financials Search — балансы, отчёты о прибылях и убытках, движение денежных средств, дивиденды, сделки инсайдеров.
  • SEC Filings Search — 10-K/10-Q/8-K, транскрипты отчётных звонков, статистика по акциям.
  • Economic Data Search — FRED, BLS, World Bank, IMF, USAspending, Destatis.
  • News Search — новости с фильтром по дате из крупных изданий.
  • Extract — подтянуть полный документ отчётности или статью в чистый markdown, когда фрагмента недостаточно.

Архитектура агента

Зарегистрируйте каждый эндпоинт как инструмент. Когда приходит вопрос, агент решает, какие слои ему нужны, вызывает их параллельно, объединяет JSON и рассуждает над заземлённым результатом. Вопрос про тикер задевает markets + fundamentals + news; вопрос «как позиционирован сектор» задевает economic + news + пару компараблов.

import asyncio, httpx, os

API = "https://api.apipick.com/v1"
HEADERS = {"x-api-key": os.environ["APIPICK_KEY"], "Content-Type": "application/json"}

async def search(client, path, query, **kw):
    r = await client.post(f"{API}/{path}", headers=HEADERS,
                          json={"query": query, **kw})
    r.raise_for_status()
    return r.json()["results"]

async def research(ticker: str):
    async with httpx.AsyncClient(timeout=30) as c:
        markets, fundamentals, filings, macro, news = await asyncio.gather(
            search(c, "search/markets",    f"{ticker} price and market cap"),
            search(c, "search/financials", f"{ticker} latest balance sheet and cash flow"),
            search(c, "search/sec",        f"{ticker} 10-K risk factors", end_date="2026-06-16"),
            search(c, "search/economic",   "US interest rates and inflation latest"),
            search(c, "search/news",       f"{ticker} latest news", end_date="2026-06-16"),
        )
    return {"markets": markets, "fundamentals": fundamentals,
            "filings": filings, "macro": macro, "news": news}

# Feed the merged JSON back to your LLM as grounding, with the source URLs,
# and ask it to synthesize — never to recall numbers.
context = asyncio.run(research("NVDA"))

Каждый результат несёт URL в поле source. Прокиньте их в финальный ответ, чтобы человек мог проверить каждое утверждение — и чтобы вывод агента был цитируемым, а это и делает его полезным в реальном рабочем процессе.

Build vs. buy

Собрать самомуAPI Pick
Поставщики / ключи~5 (Polygon, фундаментал, EDGAR, FRED, новости)1
Форматы ответа5 на нормализацию1 формат JSON
Время до первого агентаНедели интеграцииДень
Тарификация5 ежемесячных подписокЗа вызов, только за успех
Готовность к LLMКаждый формируете самиГотовые фрагменты + URL источников

Для одного типа данных идти напрямую разумно. Для агента, которому нужны все пять и который ведёт разведку непредсказуемо, маршрут с одним эндпоинтом запускается за день и тарифицируется только когда вызов прошёл успешно.

Что это открывает

Те же пять инструментов питают не только поиск по тикерам: агентов-брифингов на сезон отчётности, отраслевые скрины, заземлённые на фундаментале, макроосознанные комментарии по портфелю и ассистентов due diligence, которые читают сам 10-K через Extract. Паттерн всегда один — заземлённые вызовы инструментов, параллельное извлечение, синтез над реальными данными с приложенными источниками.

Начните с бесплатного ключа (100 кредитов, без карты) и подключите эти пять инструментов в свой любимый фреймворк агентов. Дальше это уже prompt-engineering, а не сантехника.

Часто задаваемые вопросы

Какие данные на самом деле нужны агенту инвестиционного анализа?

Пять слоёв. (1) Рынки в реальном времени — цены, крипта, форекс, ETF, лидеры движения — для вопроса «что с ним происходит прямо сейчас». (2) Фундаментал — баланс, отчёт о прибылях и убытках, движение денежных средств, дивиденды, сделки инсайдеров. (3) Отчётность SEC — текст 10-K/10-Q/8-K и транскрипты отчётных звонков для качественных сигналов. (4) Экономические индикаторы — FRED, BLS, World Bank, IMF для макрофона. (5) Новости — своевременные катализаторы. Большинство агентов проваливаются, потому что у них есть цены, но нет фундаментала, или есть фундаментал, но нет макроконтекста.

Почему просто не дёргать Polygon, FRED и SEC EDGAR напрямую?

Можно — и для одного типа данных это нормально. Боль в том, что агенту нужны все пять: это пять поставщиков, пять схем аутентификации, пять режимов rate-limit, пять форматов ответа, которые надо нормализовать, прежде чем LLM сможет их использовать, и пять счетов. Подход с одним эндпоинтом меняет небольшую наценку за вызов на один ключ, один формат JSON и тарификацию только за успех — а для агента, который делает разведочные мультиинструментальные вызовы, это обычно более дешёвый и куда более быстрый путь к запуску.

Как не дать LLM галлюцинировать финансовые числа?

Никогда не позволяйте модели выдавать цифры по памяти. Сделайте каждый источник данных инструментом, заставьте агента вызвать инструмент и верните полученный JSON обратно как заземление. Задача модели — рассуждать и синтезировать над извлечёнными значениями, а не вспоминать их. Цитируйте URL источника из каждого результата, чтобы вывод был проверяемым — именно это делает ответ заслуживающим доверия для человека-проверяющего.

Подходит ли вывод для реальной торговли или для советов?

Нет. Вывод retrieval-API носит информационный характер. Он заземляет рассуждения аналитика или агента на реальных данных; это не инвестиционный совет, и его нельзя использовать как автоматический торговый сигнал без квалифицированного человека и должного риск-контроля. Считайте агента ускорителем исследования, а не лицом, принимающим решения.

Сколько стоит один исследовательский запрос?

Тарификация — за каждый успешный вызов: markets 120 кредитов, financials 200, sec 120, economic 50, news 15 (1000 кредитов ≈ $1). Сфокусированный запрос, который задевает markets + fundamentals + news — это ~335 кредитов (~$0.34); более лёгкий запрос macro+news — ~65 кредитов. Вы платите только при HTTP 200, поэтому неудачные или пустые вызовы ничего не стоят — а это важно, когда агент ведёт разведку.

API, использованные в статье

Поиск по рынкам
Поиск по мировым и американским акциям, криптовалютам, форексу, ETF, фондам, сырьевым товарам и лидерам движения рынка США. Создано для AI-запросов цен, получения рыночных данных и торговых исследований.
Поиск по финансам
Поиск по балансам, отчётам о прибылях и убытках, отчётам о движении денежных средств, дивидендам и сделкам инсайдеров публичных компаний США. Создано для AI-фундаментального анализа и due diligence.
Поиск документов SEC
Поиск документов SEC (10-K, 10-Q, 8-K), стенограмм отчётных конференц-звонков США и статистики акций. Создано для AI-due diligence, фундаментального анализа и финансовых RAG-пайплайнов.
Поиск экономических данных
Поиск по FRED, Бюро статистики труда США, индикаторам Всемирного банка, макроданным МВФ, федеральным расходам США и немецкой статистике труда. Создано для AI-исследований макроэкономики и анализа.
Поиск новостей
Поиск новостей по крупным изданиям в реальном времени. Фильтрация по диапазону дат и стране для срочных запросов. Создано для утренних брифингов, новостных агентов рынка и пайплайнов RAG.
Извлечение контента URL
Извлекайте чистый читаемый контент из 25 URL за один вызов. Удаляет рекламу, навигацию и шаблоны; возвращает текст в стиле Markdown, готовый к использованию LLM. 2 кредита за URL.
Sarah Choy
Автор
Sarah Choy
CEO, API Pick

Сара Чой — CEO API Pick. Пишет о продакшен-готовых API для AI-агентов и LLM-воркфлоу.