Это четвёртая часть цикла об идеях из Technical Analysis of STOCKS & COMMODITIES. Мы уже прошлись по 2001-2005, 2006-2010, 2011–2015. Теперь период 2016-2020 годы, когда трейдеры постепенно адаптируются к новым реалиям рынка. Появляются роботы, но и индикаторы никуда не деваются — они обновляются и перерабатываются.
После бурного восстановления 2009-2014 годов темпы роста начинают замедляться, но глобальные рынки остаются на плаву. Этот период характеризуется относительным спокойствием и стабильным восходящим трендом, особенно в США. Инвесторы, уставшие от турбулентности прошлого десятилетия, начинают постепенно возвращаться — в том числе розничные игроки, которых привлекают новые удобные платформы и мобильные приложения.
С технической стороны — всё стабильно: скользящие средние, стохастики, MACD и ADX по-прежнему в ходу. Но трейдинг становится более методичным. Журнал S&C всё чаще публикует не просто «индикаторные идеи», а системные подходы, сочетающие фильтрацию сигналов, подтверждения и оптимизацию параметров.
Если вы задумывались о системной торговле, то, скорее всего, уже слышали о Python библиотеке Backtrader. Это гибкий фреймворк для тестирования торговых стратегий на исторических данных, который к тому же может быть подключён к автоторговле через API российского брокера. В нём можно реализовать практически любую логику, от простого пересечения скользящих средних до сложных многофакторных моделей.
➡️ Робот, который живёт в стене: мой опыт автоматизации торговли на Python
Однако даже самая изощрённая стратегия ничего не стоит, если протестирована на неликвидных бумагах — там, где в реальной торговле вы бы просто не смогли купить или продать по нужной цене. Именно поэтому работа с ликвидными акциями — ключ к достоверному тесту.
Ликвидность — это не про «красиво на графике», а про то, как на самом деле исполняются сделки, насколько проскальзывает цена и как часто ваши заявки останутся без исполнения. Здесь нам поможет Игорь Чечет — автор библиотек AlorPy, TinkoffPy и FinamPy, размещенных на GitHub, которые дают удобный способ подключиться к API этих трёх брокеров из Python. Эти инструменты и библиотека-обертка — фактически мост между Backtrader и живым рынком.
В предыдущих статьях я рассказывал, как пришёл к идее создания собственного торгового робота. Мотивация проста:
Автоматизация — алгоритм не спит, не нервничает и не занят своими делами.
Дисциплина — робот исключает эмоции, следуя правилам.
Тестирование — любую идею можно проверить на исторических данных, прежде чем рисковать деньгами.
Я всегда разделял два этапа: разработку торговых идей (логика стратегии) и реализацию механизма исполнения (отправка заявок, автотрейдинг). Сначала — бэктестинг и базовая оптимизация, и только потом — реальная торговля.
Поскольку я нахожусь в активном поиске подходящего решения для автотрейдинга и уже опробовал несколько рабочих вариантов, то эта статья представляет мои размышления об этом механизме исполнения заявок. Ваша критика или поддержка идей приветствуется.
Почему я не хочу использовать QUIК и Windows?
По моему мнению QUIK архаичен, нестабилен для автоматизации и требует оконной среды. Он не предназначен для headless-серверов (это компьютер без монитора, клавиатуры, мыши). QUIK + LUA или внешнее ПО — это сложная, криво документированная и уязвимая связка.
Последние две недели я публиковал подборки из рубрики Traders’ Tips журнала Technical Analysis of STOCKS & COMMODITIES за 2001-2005 и 2006-2010 годы. Спасибо за ваши комментарии — от ироничных “опять комиксы?” до вполне серьёзных вопросов о практическом применении и бэктестах. Именно они побудили меня подойти к делу иначе.
Вместо очередного обзора я решил сосредоточиться на одной идее: реализовать её на Pine Script для TradingView и протестировать на фьючерсах с Московской Биржи. Кстати, Traders’ Tips — это не отдельное приложение, а рубрика в журнале. Но суть не в этом: её практическая ценность по-прежнему велика.
В центре внимания — случайно выбранная статья Барбары Стар “Confirming Price Trend” (S&C, декабрь 2007). Почему именно она? Подтверждение тренда остаётся актуальной задачей, а методы вроде линейной регрессии и R² доступны для понимания и применимы на дневных и часовых графиках.
В статье собрана коллекция торговых систем и индикаторов, опубликованных в журнале Technical Analysis of STOCKS & COMMODITIES за период с 2001 по 2005 год. Это издание считается одним из наиболее авторитетных в мире в области технического анализа.
Материалы могут быть интересны трейдерам, разработчикам торговых стратегий, программистам и инвесторам, стремящимся расширить свои знания и набор инструментов. Все представленные идеи сопровождаются официальными ссылками на сайт журнала, что обеспечивает соблюдение авторских прав и делает подборку легальной и надежной.
Основанный в 1982 году, Technical Analysis of STOCKS & COMMODITIES за более чем 40 лет стал ведущим мировым изданием в области технического анализа. Его создание — заслуга Джека Хатсона (Jack Hutson), инженера-электронщика, увлекшегося трейдингом в 1980-х. Столкнувшись с нехваткой практической и технически глубокой литературы, он решил создать журнал, который бы восполнил этот пробел. Так появилось издание, объединяющее трейдеров, аналитиков и исследователей рынка и по сей день.
В трейдинге акцент часто смещён в сторону поиска идеальных входов, тогда как стратегии выхода остаются в тени. Между тем именно выходы определяют соотношение прибыли и убытков. Раздельное тестирование помогает изолировать входы и оценить, как разные методы управления позицией влияют на результат. В этой статье входы будут выполняться с 50% вероятностью — это устраняет фактор предсказуемости и позволяет объективно сравнивать эффективность различных стратегий выхода.
В статье тестирую две стратегии трейлинг-стопов для Московской биржи на фьючерсном контракте USD/RUB (Si) на часовом таймфрейме, используя язык Pine Script в TradingView.
Под капотом Pine Script: как устроен и для чего используется язык TradingViewГлавный вопрос исследования — какой метод трейлинг-стопа показывает лучшие результаты при одинаковых входах: фиксированный процентный или адаптивный ATR? Простой трейлинг-стоп строго ограничивает риск, но полностью игнорирует рыночную волатильность. В отличие от него, ATR-трейлинг, основанный на значении среднего истинного диапазона, автоматически подстраивается под текущие колебания рынка и способен удерживать прибыль в затяжных трендах.
Понимание силы тренда помогает трейдерам оценить устойчивость движения цены и находить оптимальные точки входа и выхода. Идея индикатора взята из комментария Ийона Тихого (https://smart-lab.ru/mobile/topic/1119895/#comment17905643): он предложил измерять силу тренда через относительное отклонение цены от средней. Формула проста: разница между ценой и средней, деленная на среднюю. Это позволяет оценить тренд независимо от абсолютных значений цены.
В тексте привожу открытый исходный код индикатора для того, чтобы любой человек мог проверить его в своём TradingView.
Индикатор силы тренда показывает, насколько цена отклоняется от своего среднего значения. Он рассчитывается по формуле:
Сила тренда = (Цена – Средняя) / Средняя × 100
Где:
Цена – текущая цена актива (например, цена закрытия свечи).
Средняя – значение скользящей средней (например, 21-периодная экспоненциальная средняя EMA).
Абсолютное отклонение цены от средней меняется в зависимости от уровня цены актива. Например, отклонение в 10 рублей на акции стоимостью 100 рублей и 1000 рублей будет восприниматься по-разному. Деление на среднюю нормализует это значение, позволяя объективно сравнивать силу тренда на разных инструментах и таймфреймах.
На Московской бирже торгуется более 2500 облигаций, но большая часть из них неликвидна — в стакане почти нет предложений и сделок совершается крайне мало. Это затрудняет покупку и продажу таких бумаг. При этом известные мне публичные сервисы не суммируют объемы торгов за период, поэтому сложно быстро найти облигации с высокой ликвидностью.
Пять лет назад написал Node.js-скрипт, затем адаптировал его для Google Таблиц, а теперь разрабатываю Python версию. При помощи сообщества на GitHub эта Python версия идёт к созданию полноценной библиотеки с расширенными возможностями: автоматический поиск ликвидных облигаций, расчет денежных потоков, сбор новостей по эмитентам и вычисление оптимального объема покупки. Все это направлено на помощь простым инвесторам, вроде нас с вами, чтобы оперативно находить выгодные инвестиционные инструменты и принимать решения на основе актуальной информации.
Ликвидность это один из ключевых параметров, поскольку даже высокодоходная бумага бесполезна, если её невозможно купить. В моём скрипте для поиска облигаций используются несколько основных критериев:
В этой статье расскажу о том, как воспроизвел и протестировал торговую систему для фьючерсов Московской биржи, основанную на идеях Александра Резвякова. Недавно, просматривая раздел алготрейдинга на Смартлабе, я наткнулся на видео с его выступления на конференции 2024 года под названием "5-6 идей для построения прибыльной торговой системы на фьючерсах". Меня привлекла четкость и понятность предложенных им правил торговли.
Поскольку я активно занимаюсь автоматизацией процессов и стремлюсь глубже изучить возможности Python библиотеки backtesting.py, мне показалось это хорошей идеей для практического применения.
Хотя я лично не знаком с Александром, полагаю, что публичное представление идеи предполагает возможность её независимого анализа и тестирования сообществом трейдеров и программистов.
Основная идея — открывать сделки в строго определенное время и использовать структуру рынка последних дней для принятия решений.
Добрый день!
Ищу решение для автоматизированного получения исторических фундаментальных данных по российским компаниям. Нужна история изменения P/E, P/S, ROE, EPS, выручки и других показателей за несколько лет для построения скринера и проведения фундаментального анализа.
Проанализировал два доступных API, но везде есть ограничения:
GetAssetFundamentalsResponse(fundamentals=[
StatisticResponse(asset_uid='40d89385-a03a-4659-bf4e-d3ecba011782',
currency='RUB',
market_capitalization=6878249241240.0,
high_price_last_52_weeks=330.45,
low_price_last_52_weeks=219.2,
average_daily_volume_last_10_days=65639361.43,
average_daily_volume_last_4_weeks=60348494.76,
beta=0.8,
free_float=0.48,
forward_annual_dividend_yield=0.0,
shares_outstanding=21586948000.0,