Содержание статьи
Торговля моментумом с учетом тенденций предрыночного времени
Любой, кто когда-либо смотрел на график ценных бумаг на мониторе в предвкушении открытия торгов, знает, что акции не открываются по той же цене, по которой закрылись. Большинство программ для построения графиков не учитывают торги после закрытия и перед открытием рынка, поэтому большинство графиков выглядят так:
Как только вы начинаете погружаться в мир торгов в расширенные часы работы, вы начинаете задавать много вопросов. Будет ли акция, увеличивающаяся в цене в предрыночные часы, продолжать увеличиваться в течение дня? Следует ли мне продавать акции Tesla, если у нее плохой финансовый отчет? Останется ли S&P500 положительным, если он уже увеличился в предрыночный период?
Эти вопросы можно решить, изучая исторические данные о ценах с использованием Python. Весь код из этого сообщения доступен на Github.
Цели
Давайте попробуем выяснить, имеют ли предрыночные цены какие-либо предсказательные качества. Возможно ли построить успешную торговую систему, используя данные о динамике цен акций в расширенное время работы рынка.
- На сколько важна динамика предрыночных цен по сравнению с результатами внутридневной сессии?
- Какова вероятность того, что выбранная акция, увеличивающаяся в предрыночный период, также будет увеличиваться в течение внутридневной сессии?
- Какова вероятность того, что акция, трендящая в предрыночный период, будет продолжать двигаться в том же направлении во время внутридневной торговли?
- Какое влияние оказывает сезон отчетности, являются ли тенденции предрыночного периода после объявлений более сильными или более слабыми индикаторами внутридневных цен?
Сбор данных и методология
Цель состоит в том, чтобы исследовать, насколько предрыночные движения являются показательными для интрадневного ценового действия, насколько ценовое движение может информировать наши инвестиционные решения. Для этого нам нужно будет определить определенные условия, определить, какие переменные мы будем анализировать, обозначить наши методы и, в конечном итоге, создать программу, которая выдаст определенные результаты.
Определение предрынка
Предрыночная и послерыночная торговля - это две сессии, которые происходят до и после основной интрадневной сессии соответственно. Традиционно мы рассматриваем эти две сессии индивидуально, поскольку они разделены 8-часовым "мертвым" периодом, когда торговля не проводится. Предрынок длится с 4:00 до 9:30, послерынок с 16:00 до 20:00, и между 20:00 и 4:00 торговли нет. Предрынок и послерынок очень похожи, с теми же участниками рынка и профилями ликвидности. Они также оба являются местом проведения объявлений о прибылях во время циклов отчетности компаний, что означает, что это время, когда происходит большая часть ценового движения после объявления.
Вместо того чтобы рассматривать то, что происходит внутри этих сессий на индивидуальном уровне, мы предпочитаем рассматривать предрынок как целое время между закрытием дня и открытием следующего дня; с 16:00 до 9:30. Независимо от того, сообщает ли компания после рынка или в предрынке, всегда следует интрадневная сессия позже. Поэтому мы будем изучать предрынок в целом и анализировать ценовое движение в последующей интрадневной сессии.
Сбор данных
Для сбора данных мы использовали библиотеку Yahoo! Finance на Python от Рамарусси, которая позволяет нам извлекать исторические данные о ценах для отдельных акций. Мы взяли выборку акций из S&P 500 и Nasdaq 100, которые торгуются не так активно, как компоненты Russell 3000.
def get_hist(symbol): target_tickers = [] target_tickers.append(symbol) fetch = yf.download(tickers = target_tickers, period = "5y", interval = "1d", group_by = "ticker", auto_adjust = False, prepost = True, treads = True, proxy = None)
Мы использовали исторические данные за последние 5 лет для каждой ценной бумаги. Это возможно сделать анализ, не включая предрыночные и послерыночные данные о ценах, просто используя разницу между рыночным открытием и закрытием предыдущего дня, поэтому любой источник данных в конце дня был бы приемлемым.
Частью этого анализа являются различия в ценовом движении, связанные с периодами отчетности. Как и в случае с дрейфом после объявления, акции обычно проявляют более высокую волатильность и доходность в период, предшествующий и непосредственно следующий за отчетностью о прибылях. Важно было найти источник данных, позволяющий быстро определить периоды отчетности в нашем пятилетнем периоде выборки. Для этого мы использовали базу данных U.S. Securities and Exchange Commission EDGAR. Хотя SEC предлагает бесплатное API для получения результатов, вы также можете извлекать документы, используя Beautiful Soup 4, что мы и сделали.
Сопоставление дат отчетности с пятилетней производительностью позволяет нам проанализировать ценовое движение, вызванное изменениями в информации, необходимой для понимания процесса формирования цен. Для целей этого исследования мы исключили компании, которые провели IPO в 2019 году из-за небольшого объема выборки.
Результаты
В рамках первого теста мы исследовали, насколько предрыночная активность вносит вклад в общую (от закрытия до закрытия) ценовую динамику.
Поскольку мы хотим сосредоточиться на участниках индекса SP500 и Nasdaq 100, мы начнем первый тест, передав список символов через функцию.
stocks = qqq() + spy() test_sample_contribution(stocks)
Мы обнаружили, что в среднем предрыночная торговля вносит вклад в 36,68% в абсолютную ежедневную ценовую динамику в отобранных акциях.
Гистограмма ниже предлагает визуальное представление доли предрыночной ценовой динамики индивидуальных акций. Это явно показывает, что значительная часть движения цен происходит вне регулярного торгового времени.
Переходя дальше, мы сейчас стремимся определить, будет ли акция, которая повышается в цене в предрыночное время, продолжать повышаться в течение дня. В конце концов, это определяющий фактор в том, стоит ли вам покупать акцию, которая взлетела за ночь.
Мы используем нижеприведенную функцию и передаем акции SP500 и Nasdaq в качестве аргументов в список.
test_sample_long(stocks)
Мы обнаружили, что на агрегированном уровне, акция, повышающаяся в цене в предрыночное время, имеет вероятность в 50,77% сохранить свою ценовую динамику в течение обычной сессии. Это интересно, потому что это говорит о том, что практически нет корреляции, и шансы того, что акция продолжит повышаться, такие же, как при подбрасывании монеты. Некоторые могут утверждать, что это отличное подтверждение эффективности рынка в том, что это демонстрирует антиперсистентное свойство.
Сказано это, все еще существуют акции, предсказуемость которых выше, как представлено ниже.
Универсальная торговая платформа
Сотни рынков в одном месте - Apple, Bitcoin, золото, часы, NFT, кроссовки и многое другое.
Универсальная торговая платформа
Сотни рынков в одном месте - Apple, Bitcoin, золото, часы, NFT, кроссовки и многое другое.