Модуль f.2 · Урок 1
Урок 1: Источники рыночных данных без затрат
Чему вы научитесь
- Понимать, какие данные нужны агенту для бэктеста и анализа
- Подключать бесплатные источники без API-ключей: yfinance, OKX, AKShare, mootdx
- Различать рынки, которые они покрывают (US, крипто, A-акции, фьючерсы)
- Проверять качество данных до того, как строить на них выводы
- Знать, что доступно по российским инструментам и где искать отчётность РФ-эмитентов
Какие данные нужны агенту
Минимум для исследования — это исторические цены (OHLCV: open, high, low, close, volume) и календарь торгов. Для фундаментального анализа добавляются отчётности эмитентов, мультипликаторы и новости.
Хорошая новость: для учебных бэктестов почти всё это доступно бесплатно. Open-source проекты из этого трека намеренно строятся на источниках без платных ключей, чтобы порог входа был низким (источник: README Vibe-Trading).
| Источник | Рынок | Ключ нужен |
|---|---|---|
| yfinance | Акции и ETF США, индексы | Нет |
| 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")
# OHLCV: открытие, максимум, минимум, закрытие, объём
print(data.tail())
Здесь interval="1d" задаёт дневной таймфрейм, а download возвращает таблицу со столбцами OHLCV. Этого достаточно, чтобы посчитать индикаторы и прогнать бэктест.
Важно: бесплатные источники иногда отдают пропуски, дубли или сплиты без корректировки. Поэтому данные всегда проверяют перед использованием.
Проверка качества данных
Прежде чем строить выводы, прогоните быстрый чек-лист. Грязные данные дают красивые, но ложные результаты.
flowchart TD
D[Загрузка данных] --> G{Есть пропуски или нули?}
G -->|Да| F[Заполнить или отбросить период]
G -->|Нет| S{Учтены сплиты и дивиденды?}
S -->|Нет| A[Взять adjusted close]
S -->|Да| L{Совпадает календарь торгов?}
L -->|Нет| C[Выровнять по торговым дням]
L -->|Да| OK[Данные готовы к бэктесту]
Следующий урок
Урок 2: Что такое MCP и как подключить финансовый инструмент — стандарт, который связывает агента с источниками данных и бэктестом.