Давайте посмотрим, как рассчитать точки разворота для дневной торговли в Python.

Дневная торговля сильно отличается от торговли на колебаниях. Это сложнее, и для того, чтобы приносить прибыль, нужны определенные инструменты. Точки разворота - это некоторые из инструментов, которые могут использовать дневные трейдеры.

В этой статье я объясню, как они работают.

Что такое точки разворота?

Точки разворота - это уровни цен, которые часто используются во внутридневной торговле (но их можно использовать даже при торговле на колебаниях). Они считаются «естественными» уровнями поддержки и сопротивления для цены во время дневной рыночной сессии, поэтому они могут быть весьма полезны для внутридневных трейдеров, поскольку рынок часто ведет себя нетривиальным образом, когда приближается к ним.

Существует несколько типов точек поворота, но классические точки поворота обычно определяются, начиная с максимума, минимума и цены закрытия последнего дня. Применяя некоторые математические вычисления к этим ценам в предыдущий рыночный день, трейдер может рассчитать уровни разворота для текущего рыночного дня и использовать их. В этой статье я остановлюсь на классических поворотных точках.

Как они используются?

Классические точки разворота обычно определяют основной уровень разворота. Основная идея заключается в том, что если цена выше опорного уровня, рынок будет бычьим. Если цена ниже основного уровня разворота, рынок медвежий.

За основным уровнем разворота часто следуют некоторые уровни поддержки и сопротивления, которые используются в качестве естественных ключевых уровней для внутридневной рыночной сессии.

На следующем рисунке показана цена акций Facebook на 15-минутном таймфрейме. Горизонтальные уровни - это опоры разворота (S1, S2, S3) и сопротивления (R1, R2, R3), а зеленые горизонтальные линии - уровни разворота (P).

Как видите, рынок часто отвергает эти уровни так же, как они действовали как реальные поддержки и сопротивления. Так действует даже сам уровень Pivot. Итак, легко понять важность таких уровней в дневной торговле.

Дневной трейдер может искать торговые возможности, когда цена приближается к опорному уровню, ожидая отката или прорыва и, например, используя ближайший опорный уровень в качестве цели.

Как их рассчитать

Классические уровни разворота рассчитываются по следующим формулам, взятым из базы знаний Tradingview (https://www.tradingview.com/support/solutions/43000521824-pivot-points-standard/), примененным к максимуму последнего дня. , Минимальные и закрытые цены:

  • PP = (High + Low + Close) / 3
  • R1 = 2 * PP - Низкий
  • S1 = 2 * PP - высокий
  • R2 = PP + (высокий - низкий)
  • S2 = PP - (высокий - низкий)
  • R3 = PP + 2 * (высокий - низкий)
  • S3 = PP - 2 * (высокий - низкий)

PP - это основной уровень разворота. S1, S2 и S3 - уровни поддержки. R1, R2 и R3 - уровни сопротивления.

Расчет на Python

Давайте посмотрим, как вычислить эти уровни в Python. В этом примере я сосредоточусь на данных об акциях Facebook. Полную записную книжку можно найти здесь: https://github.com/gianlucamalato/machinelearning/blob/master/Calculation_of_daily_pivot_levels.ipynb

Прежде всего, мы должны получить данные об акциях с помощью библиотеки yfinance.

!pip install yfinance

Затем мы можем импортировать нужные нам библиотеки.

import numpy as np
import pandas as pd
import yfinance

Теперь мы можем импортировать данные Facebook в фреймворк Pandas.

ticker = yfinance.Ticker("FB")
df = ticker.history(interval="1d")

Последняя запись этого фрейма данных - последний рыночный день. Мы собираемся использовать его ценовые уровни, чтобы рассчитать уровни разворота, которые мы можем использовать сегодня.

last_day = df.tail(1).copy()

Теперь по формулам разворота можно рассчитывать уровни.

last_day['Pivot'] = (last_day['High'] + last_day['Low'] + last_day['Close'])/3
last_day['R1'] = 2*last_day['Pivot'] - last_day['Low']
last_day['S1'] = 2*last_day['Pivot'] - last_day['High']
last_day['R2'] = last_day['Pivot'] + (last_day['High'] - last_day['Low'])
last_day['S2'] = last_day['Pivot'] - (last_day['High'] - last_day['Low'])
last_day['R3'] = last_day['Pivot'] + 2*(last_day['High'] - last_day['Low'])
last_day['S3'] = last_day['Pivot'] - 2*(last_day['High'] - last_day['Low'])

Результат:

Выводы

Точки разворота очень часто используются в дейтрейдинге, и их очень легко вычислить в Python. Единственному нужны данные за один рыночный день, поэтому им не нужно слишком много исторических записей. Дневной трейдер должен попытаться создать торговую стратегию в соответствии с этими уровнями (или другими видами уровней разворота, такими как Фибоначчи, Вуди, Камарилья) и в соответствии с типом стратегии (например, прорыв или откат).