Инструменты для алготрейдинга на Python. Расчет дневного изменения цены

Kate

Administrator
Команда форума
Сегодня я хочу начать свой цикл статей по алготрейдингу.

Первым делом расскажу о самом простом индикаторе ожидаемой доходности ценной бумаги - дневное изменение цены.

Дневное изменение цены - это отношение цены закрытия текущего дня к цене закрытия предыдущего дня. Говоря простым языком, это процент, на который выросла или упала ценная бумага за 1 день.

Сам по себе этот индикатор не сильно полезен - он просто показывает дневное изменение цены. Но, вот, если мы накопим статистику за какой-либо период (например, за месяц), мы можем рассчитать медиану и, тем самым, попытаться предсказать ожидаемую прибыль за 1 день.

Перейдем к практике:

Для проведения расчетов нам понадобится:

  1. Данные об изменениях цен (вполне сойдет API Мосбиржи)
  2. Знание Python и его библиотек Pandas и Matplotlib
  3. Трейдерская чуйка (уверен, если вы читаете эту статью, то она у вас есть)
Весь код я приведу в ноутбуке на google colab

Далее я буду рассказывать о дневном изменении стоимости ценных бумаг за период с 1 января 2021г. по 25 мая 2021г.

Для примера, возьмем акции компании Лукойл (тикер LKOH). Для них распределение дневного изменения цены выглядит следующим образом:

26378ebdeaa2ec96d26afb6c03c5bbb6.png

Для акций Лукойла за период с 1 января 2021 года по 25 мая 2021 года мы имеем медиану, равную 0,26%. Это означает, что если завтра не предвидится никаких хороших или плохих новостей, то мы можем ожидать рост стоимости акций на 0,26%

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

tickermedianq005q05q25q75q95q995
LKOH0.0026-0.036-0.026-0.010.0110.0320.035
Рассчитав квантили q25 и q75 мы видим, что 50% всех значений дневного изменения цены лежат в диапазоне [-1%; 1,1%]. Т.е., согласно статистике, в 5 из 10 торговых сессиях, цена акции Лукойла упадет не более чем на -1% или вырастет не более чем на 1,1%.

Рассчитав квантили q005 и q995 мы видим, что 99% всех значений дневного изменения цены лежат в диапазоне [-3,6%; 3,5%]. Т.е., согласно статистике, почти во всех торговых сессиях, цена акции Лукойла упадет не более чем на -3,6% или вырастет не более чем на 3,5%.

Рассчитав квантили q05 и q95 мы видим, что 90% всех значений дневного изменения цены лежат в диапазоне [-2,6%; 3,2%]. Т.е., согласно статистике, в 9 из 10 торговых сессиях, цена акции Лукойла упадет не более чем на -2,6% или вырастет не более чем на 3,2%.

Визуализация этого распределения будет выглядеть следующим образом:

01bd37112f3a2fda6a440879f60256af.png

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

monthtickermedianq005q05q25q75q95q995
2021-01-01LKOH0.0032-0.022-0.029-0.0070.0110.0330.032
2021-02-01LKOH0.0041-0.027-0.028-0.0100.0140.0270.027
2021-03-01LKOH0.0029-0.028-0.027-0.0060.0140.0340.035
2021-04-01LKOH-0.0005-0.019-0.019-0.0110.0050.0150.015
2021-05-01LKOH0.0023-0.022-0.024-0.0130.0160.0270.022
Видим, что в апреле 2021г. медиана стала отрицательной, что намекает нам об открытии коротких позиций в этом месяце. Визуализировав эти цифры мы получим следующую картинку:

d0a091726bdac4f9c1b9a8451c7ba541.png


Источник статьи: https://habr.com/ru/post/559654/
 
Сверху