Модуль f.2 · Урок 1
Урок 1: Источники рыночных данных без затрат
Чему вы научитесь
- Понимать, какие данные нужны агенту для бэктеста и анализа
- Подключать бесплатные источники без API-ключей: yfinance, ИСС Мосбиржи, OKX, AKShare, mootdx
- Различать рынки, которые они покрывают (US, крипто, A-акции, фьючерсы)
- Проверять качество данных до того, как строить на них выводы
- Знать, что доступно по российским инструментам и где искать отчётность РФ-эмитентов
Какие данные нужны агенту
Минимум для исследования — это исторические цены (OHLCV: open, high, low, close, volume) и календарь торгов. Для фундаментального анализа добавляются отчётности эмитентов, мультипликаторы и новости.
Хорошая новость: для учебных бэктестов почти всё это доступно бесплатно. Open-source проекты из этого трека намеренно строятся на источниках без платных ключей, чтобы порог входа был низким (источник: README Vibe-Trading).
| Источник | Рынок | Ключ нужен |
|---|---|---|
| yfinance | Акции и ETF США, индексы | Нет (неофициальная обёртка Yahoo, без SLA) |
| ИСС Мосбиржи | Акции, облигации, свечи РФ | Нет для данных с задержкой |
Алор /md/v2/history | История Мосбиржи, задержка 15 мин | Нет для истории |
| OKX (public API) | Криптовалюты, фьючерсы | Нет для публичных данных |
| AKShare | Китайские A-акции, макроданные | Нет |
| mootdx | Котировки рынков КНР | Нет |
Как это выглядит на практике
Подключение данных через yfinance — это несколько строк. Разберём базовый запрос исторических цен.
import yfinance as yf
# Тянем дневные свечи Apple за 2024 год
data = yf.download(
"AAPL",
start="2024-01-01",
end="2024-12-31",
interval="1d",
auto_adjust=False,
multi_level_index=False,
)
# OHLCV: открытие, максимум, минимум, закрытие, объём
print(data.tail())
Здесь interval="1d" задаёт дневной таймфрейм. Параметры auto_adjust=False и multi_level_index=False оставляют плоскую таблицу OHLCV с отдельным столбцом скорректированного закрытия — в версии 1.6.0 без них download отдаёт MultiIndex и уже скорректированный Close. Этого достаточно, чтобы посчитать индикаторы и прогнать бэктест.
Важно: бесплатные источники иногда отдают пропуски, дубли или сплиты без корректировки. Поэтому данные всегда проверяют перед использованием.
Проверка качества данных
Прежде чем строить выводы, прогоните быстрый чек-лист. Грязные данные дают красивые, но ложные результаты.
flowchart TD
D[Загрузка данных] --> G{Есть пропуски или нули?}
G -->|Да| F[Заполнить или отбросить период]
G -->|Нет| S{Цены скорректированы на сплиты?}
S -->|Нет| A[Взять adjusted close или auto_adjust]
S -->|Да| L{Совпадает календарь торгов?}
L -->|Нет| C[Выровнять по торговым дням]
L -->|Да| OK[Данные готовы к бэктесту]
Следующий урок
Урок 2: Что такое MCP и как подключить финансовый инструмент — стандарт, который связывает агента с источниками данных и бэктестом.