Довольно часто у меня спрашивают, как создать свой индекс акций или портфель. Решил сделать инструкцию.
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, получаем коэффициент.
Settings =
{
Name = «DHLM»,
line =
{
{
Name = «High»,
Color = RGB(0,200,64),
Type = TYPET_BAR,
Width = 1
},
{
Name = «Low»,
Color = RGB(200,0,64),
Type = TYPET_BAR,
Width = 1
},
{
Name = «Median»,
Color = RGB(0,64,200),
Type = TYPET_BAR,
Width = 1
}
}
}
local hlm = {}
local math_max = math.max
local math_min = math.minfunction Init()
return #Settings.line
end
function OnCalculate(index)
local dt = T(index)if O(index) then
if dt.day ~= hlm.day or
dt.month ~= hlm.month or
dt.year ~= hlm.year then
hlm.year = dt.year
hlm.day = dt.day
hlm.month = dt.month
hlm.high = H(index)
hlm.low = L(index)
else
hlm.high = math_max(hlm.high,H(index))
hlm.low = math_min(hlm.low,L(index))
hlm.median = (hlm.high + hlm.low)/2
end
end
return hlm.high,hlm.low,hlm.median
end