Данные на 02.09.2026. Разговор не про «робота, который сам заработает», а про стек, которым в квант-финансах обычно считают ряды, индикаторы и бэктесты. Список из девяти библиотек я разбираю по мотивам обзора на Finam.ru от 27.08.2026 (они опирались на QuantStart), но пишу своим текстом и с углом RichFX: у лицензированного форекс-дилера ЦБ живой счёт всё равно живёт в MT5/условиях дилера, а Python — это лаборатория рядом, не кнопка «заменить терминал».
Текст для тех, кто уже смотрит в сторону кода рядом со счётом у Альфы или Финама и хочет считать стратегии на истории. Вопросы допуска к инструментам лучше закрывать отдельно: когда нужен квал и что доступно неквалу.
Карта стека одной таблицей
| Слой | Библиотеки | Что делаю |
|---|---|---|
| Данные и математика | NumPy, Pandas | Цены в таблицы, доходности, ресемплинг |
| Сигналы | TA-Lib | RSI, MACD, полосы — как числа, не как картинка из терминала |
| Бэктест / симуляция | Zipline, PyAlgoTrade, QSTrader | Прогон правил на истории с комиссией и проскальзыванием |
| Сложные модели | QuantLib | Облигации, опционы, кривые ставок — когда задача уже не «две скользящие» |
| Картинки | Matplotlib, Plotly | Статика в отчёт и интерактив для разбора серии |
Ниже — по каждой позиции: зачем она в стеке и что с ней делать руками. Кода в статье немного: важнее порядок и ограничения. Официальные доки и PyPI актуальнее любого абзаца 2026 года.
NumPy — фундамент, без которого остальное тормозит
NumPy даёт массивы и матричные операции. В трейдинге на нём считают доходности, скользящие окна «вручную», симуляции случайных путей и всё, что Pandas потом упакует красивее. Практический шаг: поставить пакет, загрузить один ряд close в ndarray и посчитать дневную доходность без циклов for. Если это уже получается, к Pandas вы готовы.
Pandas — временные ряды и журнал сделок
Pandas сидит на NumPy и заточен под таблицы с датой-индексом: OHLC, сделки, эквити кривая. Здесь я храню историю, ресемплирую M5 в H1, стыкую дивиденды/свопы отдельными колонками, если они есть в выгрузке. Практический шаг: собрать DataFrame с колонками open high low close volume, сделать pct_change и посмотреть пропуски — дырки в данных убивают бэктест чаще, чем «плохая идея стратегии».
TA-Lib — индикаторы как числа, не как скрин
TA-Lib считает больше сотни классических индикаторов. Удобно, когда сигнал должен совпасть с тем, что вы уже видели в MetaTrader, но нужен массив для кода. Минус: сборка на Windows иногда капризная, смотрите актуальные колёса под вашу версию Python. Практический шаг: взять RSI(14) и MACD на том же ряду, что в MT5, и сверить 20 последних значений — так ловите расхождение в цене закрытия бара.
Zipline — событийный бэктест с тяжёлым прошлым
Zipline — движок, который вырос из Quantopian. Событийная модель (на каждом баре алгоритм «видит» рынок) хорошо учит думать ордерами, а не одной формулой на весь ряд. Честно: сам Quantopian закрыт, поддержка и экосистема уже не те. Имеет смысл как учебный контур или наследие старых ноутбуков, а не как единственная ставка на 2026. Практический шаг: прогнать учебный long-only на дневках и отдельно выписать, как движок учитывает комиссию — потом сравните с QSTrader.
PyAlgoTrade — лёгкий событийный каркас
PyAlgoTrade проще и легче Zipline, часто хвалят для внутридневных идей и paper trading. Это всё ещё исследование: «бумага» в библиотеке ≠ исполнение у дилера ЦБ. Практический шаг: описать одно правило входа/выхода, включить комиссию и проскальзывание в симуляцию, сохранить кривую капитала в CSV — её потом откроете в Pandas.
QSTrader — ближе к «как у фонда», модулями
QSTrader задуман как модульный фреймворк: бэктест и задел под live, с упором на портфельный риск, комиссии и более реалистичное проскальзывание. Для соло-трейдера это может быть избыточно, зато честнее наивного «купили по close». Практический шаг: прогнать одну и ту же идею в PyAlgoTrade и QSTrader и сравнить итоговую просадку — расхождение покажет, где вы недооценивали издержки.
QuantLib — когда задача уже про деривативы и кривые
QuantLib — тяжёлая математика: облигации, опционы, модели ставок, Монте-Карло. На простом EURUSD-кроссе со скользящими она не нужна. Она вспыхивает, когда считаете справедливую цену или риск инструмента сложнее спота. Практический шаг: не ставьте QuantLib «на всякий случай» первой — дойдите до неё, когда появится конкретная модель, иначе полгода уйдут на компиляцию и доки.
Matplotlib и Plotly — два режима картинок
Matplotlib — быстрые статичные графики в отчёт и статью. Plotly — интерактив: зум по кризисному куску эквити, наведение на сделку. Практический шаг: одну и ту же эквити нарисовать в обоих; для лаборатории оставить Plotly, для PDF-отчёта — Matplotlib.
Схема вверху страницы. Стек исследований. Live-исполнение у дилера ЦБ — отдельный контур (MT5 / API брокера), не эта пирамида.
В каком порядке ставить и чему не верить
Рабочий маршрут, который я рекомендую читателям RichFX: Python 3.11+ → NumPy → Pandas → TA-Lib → один бэктест на выбор (PyAlgoTrade или QSTrader) → Plotly для разбора. Zipline — по желанию, как учебник. QuantLib — только под задачу. Finam в своём тексте как раз ведёт от базы к фреймворкам, и с этим порядком я согласен.
Чего стек не делает сам. Не открывает сделку в Альфе или Финаме. Не знает ваш стоп-аут и регламент плеча. Не заменяет проверку спецификации контракта. Для живых заявок нужен API брокера или терминал дилера: Trade API есть у брокера АО «ФИНАМ», а у форекс-дилера Финам Форекс автоматизация идёт через советники MT5. Это стык «лаборатория → исполнение», его нельзя прыгать.
Стык с контуром RichFX
Если исследуете CFD на нефть или металлы, сначала поймите инструмент на сайте, потом гоняйте код: раздел CFD, спека Финама, крипто-CFD. Налоги с прибыли у российского дилера — отдельная история: НДФЛ и налоговый агент. Алго без учёта комиссии и налога рисует красивую кривую и врёт в рублях.
От бэктеста к живым заявкам
Бэктест на pandas или Zipline отвечает на вопрос «работала ли идея на истории». Живая торговля отвечает на другой: «исполнится ли заявка по той цене, которую я заложил». Между ними три слоя, и каждый ломает красивую кривую по-своему.
Первый слой — источник данных. Если бэктест шёл на чужом CSV, а робот получает котировки из API брокера, свечи будут расходиться на краях сессий и в днях с клирингом. Надёжнее сразу брать историю из того же API, где потом будете торговать. У Finam Trade API, например, в одном запросе отдаётся до 7 дней минутных свечей и до 365 дней дневных (справочник REST, 02.10.2026). Длинный архив придётся копить самому.
Второй слой — исполнение. В бэктесте заявка исполняется мгновенно; в жизни есть лимит запросов, потерянные ответы и частичные исполнения. У Финама лимит 200 запросов в минуту, у Алора 100 в секунду, у БКС 10 в секунду на сервис. Код стратегии лучше отделить от «адаптера» брокера, чтобы сменить брокера без переписывания логики.
Третий слой — деньги. Комиссия, проскальзывание и налог превращают положительное матожидание в ноль быстрее, чем кажется. Прогоните частоту сделок через калькуляторы до запуска.
Порядок, который я считаю минимально безопасным: бэктест → демо-счёт или песочница → реальный счёт минимальным объёмом с дневным лимитом убытка. Как подключиться к Финаму с проверенным примером на Python, разобрано в гайде Finam Trade API: от токена до заявки. Сравнение API Финама, Т-Банка, Алора и БКС по лимитам и тестовым контурам — в материале «Алготрейдинг через API брокера».
Короткий чеклист перед первой стратегией в коде
1) Данные с датой среза и без дыр. 2) Комиссия и проскальзывание в симуляции включены. 3) Сигнал сверен с MT5 на куске истории. 4) Риск на сделку задан до кода, а не «как получится в бэктесте». 5) Live — только через разрешённый контур дилера, после бумажной проверки.
Итого: девять библиотек — это верстак. NumPy и Pandas держат данные, TA-Lib считает привычные индикаторы, Zipline/PyAlgoTrade/QSTrader учат гонять правила по времени, QuantLib ждёт сложных моделей, Matplotlib и Plotly показывают, где вы себя обманули. Поставить всё сразу не нужно — поставьте слой, который закрывает сегодняшнюю задачу.
Образовательный материал, не индивидуальная инвестиционная рекомендация и не оферта робота. Торговля с плечом связана с риском потери средств. Версии пакетов и статус репозиториев сверяйте на PyPI/GitHub на дату установки. Условия дилера — в договоре и терминале.












