Блог им. Mihalich81
Довольно часто у меня спрашивают, как создать свой индекс акций или портфель. Решил сделать инструкцию.
1. Создаём копию индекса Московской биржи из акций.
— Вес акций можно взять https://www.moex.com/ru/index/IMOEX/constituents/ или https://smart-lab.ru/q/index_stocks/IMOEX/. Рекомендую второе, т.к. МБ даёт только скриншот таблицы, а на SMART-LAB можно скопировать таблицу выделением в EXCEL. Хотелось бы выгрузку в *.csv, но и за это СПАСИБО.
Важно запомнить, вес бумаг постоянно меняется. Чем больше дорожает бумага относительно остальных, тем больше её вес. Также, возможно удаление биржей бумаг из индекса и добавление новых.
— Находим примерный минимальный объём на депозите для реализации. Для этого делим цену каждой акции на коэффициент веса и берём максимальное число.
Например, для акций «Транснф ап» получим:
122300 / (0.55 / 100) = 22 236 363 р.
Где:
122300 – цена акции Транснф ап;
0.55 / 100 – вес в % делим на 100, получаем коэффициент.
Но, даже ₽22млн. Не даст идеального повторения индекса.
Чем больше сумма на депозите, тем больше точность повторения индекса.
Например, если в распоряжении счёт ₽100млн., индекс повторить легко. Просто берём количество акций необходимое для реализации веса. Для акций «Сбербанк» получим:
100 000 000 * (14.82/100) / 235.29 = 62986 акций
Где:
100 000 000 – депозит;
14.82/100 — вес в % делим на 100, получаем коэффициент;
235.29 – цена акции «Сбербанк».
Единственное, нужно учитывать количество лотов. Для акций «Сбербанк» это 10 акций, поэтому, нам нужно купить 62986 / 10 = 6298 лотов.
2. Создаём мини индекс Московской биржи из основных акций.
Т.к. собрать портфель из всех 40 акций (на данный момент) не все смогут, часто обрезают количество акций. Приведу пример индекса из 5-ти акций с самым большим весом.
— Выбираем 5 акций с самым большим весом. Например,
Сбербанк 14.82%
ГАЗПРОМ ао 14.64%
ЛУКОЙЛ 14.54%
ГМКНорНик 6.23%
Новатэк ао 5.07%
— Получаем сумму процентов:
14.82+14.64+14.54+6.23+5.07=55.3
В общем-то, данный расчёт говорит, что мы будем повторять индекс чуть больше, чем на 55%.
— Определяем вес каждой акции для нашего мини индекса.
Получим коэффициент компенсации. На него нужно.
100 / 55.3 = 1.8083
Теперь достаточно просто умножить вес каждой акции на коэффициент компенсации.
Сбербанк 14.82%*1.8083=26.80%
ГАЗПРОМ ао 14.64%*1.8083=26.47%
ЛУКОЙЛ 14.54%*1.8083=26.29%
ГМКНорНик 6.23%*1.8083=11.27%
Новатэк ао 5.07%*1.8083=9.17%
— Вычисляем количество лотов для каждой акции.
Например, для акций «Сбербанк» при депозите 100 000р.
100 000 * (26.80/100) / 235.29 / 10 = 11 лотов.
3. Создаём график собственного индекса в QUIK
Штатного индикатора в QUIK нет, но я написал универсальный индикатор Арбитраж PRO при помощи которого можно решить задачу.
Я подготовил архив с готовой вкладкой для QUIK, где индекс уже создан:
https://disk.yandex.ru/d/jkhnhdgLsjZ2Wg
— Создаём диаграмму со всеми инструментами, входящими в наш мини индекс. Для этого создаём новый график Сбербанк-нажимаем пр.кн.мыши на графике-Добавить график (индикатор)-Новый-находим нужный инструмент-далее всё подтверждаем.
— Привязываем графики к индикатору. Для этого нажимаем лев.кн.мыши на названии графика-Дополнительно-указываем Идентификатор (можно скопировать из названия). Названия идентификаторов нам потребуются далее. Аналогично нужно задать для остальных инструментов. Можно в этом же окне, выбирая слева инструмент.
— Загружаем индикатор Арбитраж PRO в новую область нашей диаграммы. В
Поле «Выражение» задаём идентификаторы с весами и складываем их:
Сбербанк*26.8+ГАЗПРОМ*26.47+ЛУКОЙЛ*26.29+ГМКНорНик*11.27+Новатэк*9.17
Можно сразу перевести в коэффициенты, но динамику это не изменит.
Сбербанк*0.268+ГАЗПРОМ*0.2647+ЛУКОЙЛ*0.2629+ГМКНорНик*0.1127+Новатэк*0.0917
4. Нормализуем наш мини индекс.
Например, нам нужно сравнить наш мини индекс с IMOEX.
— Добавляем график IMOEX в область индикатора. Для этого нужно кликнуть именно на область индикатора, аналогично примеру выше, добавить новый инструмент IMOEX, важно убрать галочку «Поместить в новую область». Скорее всего, получим малоинформативный график с большой разницей между значениями индексов.
— Теперь нам нужно найти сближающий коэффициент. Например, мы хотим видеть график, на котором наш индекс приравнен к IMOEX на текущий момент расчёта. Для этого берём последнее значение нашего мини индекса и делим его на значение IMOEX:
318389.35/2630.87=121.02
Далее, нам нужно разделить значение нашего мини индекса на сближающий коэффициент:
(Сбербанк*26.8+ГАЗПРОМ*26.47+ЛУКОЙЛ*26.29+ГМКНорНик*11.27+Новатэк*9.17)/121.02
Получили более адекватный график, говорящий нам, что в последнее время наш индекс уступает IMOEX. Это произошло из-за отставания ГМКНорНик, Новатэк, ГАЗПРОМ. Сбербанк не смог вытащить эту компанию. Вес каждой акции пересчитывается индикатором Арбитраж PRO на каждый бар отдельно в зависимости от цены.
В примере выше, нулевая точка находится на моменте расчёта. Нулевую точку можно сместить на любой бар, например на начало года. Для этого нужно взять данные обоих индикаторов на последний день прошлого года и вычислить коэффициент сближения, как рассмотрено выше. Правда, для точного расчёта нам потребуются веса в индексе IMOEX на последний день. Найти историю состояния индекса по дням мне не удалось. Веса в прошлом можно вычислить из текущих данных, конечно, без учёта корректировки индекса самой биржей, но это другая история. Для примера вводим текущие веса:
297392.87/2154.12=138.05
(Сбербанк*26.8+ГАЗПРОМ*26.47+ЛУКОЙЛ*26.29+ГМКНорНик*11.27+Новатэк*9.17)/ 138.05
— Есть другой способ, основанный на возможности QUIK создавать графики в процентах. Создадим график процентного изменения с начала года. Для этого соберём последние значения прошлого года:
Наш индекс: 297392.87
IMOEX: 2154.12
Теперь нажимаем лев.кн.мыши на названии графика-Дополнительно-ставим галочку «Процентное изменение»-вводим значение индикатора/графика на момент отсчёта-подтверждаем.
Аналогично поступаем с другими данными диаграммы, в нашем случае с графиком IMOEX. Получаем такой график:
К слову, возможность QUIK «Процентное изменение» позволяет создавать множество интересных графиков. Значение этих графиков может быть подхвачено роботами, например, моим Робот Сетка LUA.
Без всяких дополнительных индикаторов, QUIK способен показать вот такой график: