
Для всех, кто хочет погрузиться в мир количественных инвестиций и систематической торговли, Python станет незаменимым инструментом. Python — основной язык программирования для многих разработчиков в сфере количественных финансов. Он предлагает обширную экосистему библиотек, которые упрощают все: от анализа данных до реализации стратегий. Знания о библиотеках Python необходимы трейдерам для создания и внедрения торговых стратегий.
Quantstart рассказывает о девяти основных библиотеках Python, которые используют профессиональные количественные аналитики и трейдеры.
NumPy: быстрые математические и матричные операции
NumPy — это основа количественных вычислений в Python, обеспечивающая поддержку многомерных массивов и матриц, а также набор математических функций для эффективной работы с этими массивами. NumPy часто используется при работе с ценовыми данными, сигналами и тестированием на исторических данных.
Ключевые особенности:
У меня на срочном рынке работает автомат: собирает данные, считает целевой портфель, сам ставит ордера через API брокера и вечером сверяет позиции со счётом. На прошлой неделе он двое суток держал не тот портфель, который должен был. И заработал на этом 69 762 ₽.
Сразу оговорюсь, чтобы не было разночтений с прошлым постом: речь про счёт в песочнице брокера. Ордера, маржа, роллирование и экспирация там настоящие, деньги виртуальные. Реальный счёт у меня отдельный и маленький, он тут ни при чём.
Дальше — про экспирацию. Не в смысле «не забудьте дату в календаре», а в смысле «она ломает ровно те места, где вы её не ждёте».
Что произошло
Портфель рыночно-нейтральный: несколько длинных позиций против нескольких коротких. Отдельную позицию дальше называю ногой, так короче.
Одна из коротких ног — по инструменту с квартальной серией контрактов.
25 августа. Ликвидность переехала на следующий контракт. Активный контракт я выбираю по максимуму дневного объёма, и он честно переключился. Проблема в том, что переключился за день до последнего торгового дня старого. Объём мигрирует когда мигрирует, а не когда мне удобно.
В алготрейдинге около года, пришёл из другой сферы, где исследование начинается
с протокола: что проверяем, каким способом и какое решение принимаем по каждому
результату — всё это ДО того, как посмотрели на данные. В трейдинге меня удивило,
что здесь так почти никто не делает: сначала перебирают параметры, потом решают,
что считать успехом.
Выложил в открытый доступ то, чем сам проверяю систематическую стратегию перед
тем, как пустить её на реальные деньги:
github.com/andreyvarakin/quant-validation
Это не библиотека и не грааль. Половина содержимого давно и лучше сделана
в arch, quantstats, pypbo, backtesting.py — в README так и написано: в продакшн
берите их. Ценность в другом: в порядке процедур и в том, что каждая метрика
откалибрована.
Четыре вещи, ради которых писалось.
1. Отбор не должен видеть проверку. Если параметр выбран по всей истории, а
потом на ней же и показан — это не результат, а описание прошлого. В коде
параметр выбирается только на прошлом и применяется вперёд, без исключений.
Пишу сканер аномальных объёмов по MOEX. Логика простая: считаем норму объёма
для инструмента, сравниваем с текущим, превышение — сигнал. Всё работало.
Сигналы приходили, ложных было немного, я был доволен.
Потом полез в логи разбираться, почему на очевидном движении не было сигнала.
И выяснил, что система его видела. Посчитала. И сама же выбросила.
## Почему EMA казалась хорошей идеей
Норму я считал через экспоненциальную скользящую по объёму. Аргумент был
железный: рынок меняется, режимы меняются, статистика за 90 дней устаревает.
EMA подстраивается под текущий режим — если объёмы выросли в целом, порог
поднимется сам, и мы не завалим канал сигналами на ровном месте.
Звучит разумно. Так делают многие. Это и есть ошибка.
## В чём проблема
EMA обновляется той же свечой, с которой вы её сравниваете.
Прилетает аномальный объём. Система его фиксирует, но этой же свечой EMA идёт
вверх. Следующая аномальная свеча сравнивается уже с задранной нормой —
превышение меньше. Третья ещё меньше. К четвёртой-пятой свече EMA догнала
Зоны спроса и предложения (supply/demand) — один из самых сильных концептов в трейдинге и один из самых субъективно рисуемых. Идея красивая: цена уходит из области, где крупный игрок набрал позицию, а потом возвращается «добрать» — и от этой области снова разворачивается.
В этой статье разберём сканер, который делает именно это. Он проходит по всему рынку BingX, находит зоны спроса и предложения на старшем таймфрейме, оценивает каждую зону скорингом, ждёт возврата цены и подтверждающего пинбара на 5-минутках — и присылает сигнал в Telegram с нарисованным графиком: свечи, зоны, выделенная сигнальная область, уровни входа и стопа.
Весь код выложен на GitHub — советую читать статью параллельно с исходниками.

Зона спроса/предложения — это область, из которой начался сильный импульс. Логика простая: если из какого-то ценового кармана рынок резко улетел, значит, там был дисбаланс — крупные заявки, которые не успели исполниться целиком. Когда цена возвращается в этот карман, оставшиеся заявки доисполняются, и рынок часто снова разворачивается.
Трендовая линия — самый субъективный инструмент технического анализа. Дайте одному графику десять трейдеров — получите десять разных линий. Кто-то ведёт по теням, кто-то по телам, кто-то «на глаз подгоняет» так, чтобы линия подтверждала уже открытую позицию. Это не анализ, это гадание с линейкой.
А раз линию рисует человек — её нельзя ни протестировать, ни автоматизировать. Каждый раз получается новая.
Интересная инженерная задача — формализовать «настоящую» трендовую линию в строгую геометрию: набор чётких математических условий, по которым машина строит линию объективно, одинаково и, главное, честно — не заглядывая в будущее. Никаких индикаторов, только цена, экстремумы и ATR.
В этой статье разберём детектор, который это делает. Он находит трендовые поддержки и сопротивления по фрактальным пивотам, отсеивает всё, что «уровнем» на самом деле не является, ловит пробой телом с фильтрами качества — и присылает сигнал в Telegram с нарисованным скрином: линия, якоря, свеча-пробой, уровни входа, стопа и тейка.

Сразу оговорюсь: саму торговую стратегию в статье показывать не буду. Не потому, что там спрятан очередной «грааль», который превращает тысячу рублей в квартиру на Патриках. Просто статья вообще не об этом.
Недавно я завершил торгового робота под T-Invest API. И этот проект в очередной раз подтвердил старую мысль: придумать условие покупки и продажи обычно намного проще, чем сделать систему, которой не страшно дать доступ к реальному счёту.
На уровне первого прототипа всё выглядело довольно бодро:
получили цены > проверили условие > нашли сигнал > отправили заявкуВсем привет! Страшно подумать, но мой аккаунт живет здесь с 2013 года, а последний раз я писал на Смартлаб аж в 2019-м. Много воды утекло, рынки поменялись, но недавно случилась история, которая заставила меня стряхнуть пыль с клавиатуры. Хочу рассказать, как я докатился до создания собственного ИИ-терминала, и заодно послушать фидбек от местных гуру алготрейдинга.
Началось всё банально. Связался я как-то с нейросетями — пользовался активно, как и все: текст подправить, мелкий кусок кода написать, но в подкапотную магию особо не вникал. А потом в инфополе начало мелькать модное слово «вайбкодинг». Это когда ты не просто скрипты копипастишь, а буквально на пальцах объясняешь нейронке архитектуру, и она собирает тебе рабочий софт.
И тут меня осенило. У меня же годами пылилась куча торговых идей! А тут еще гиганты вроде Google и OpenAI буквально каждую неделю выкатывают всё более умные модели (счет идет уже на сотни). Где еще тестировать всю эту вычислительную мощь, как не в крипте?
