Избранное трейдера sam
FixPrice анализ и оценка #FIXP
В марте 2021 г. FixPrice — крупнейшая в России сеть магазинов низких фиксированных цен, разместила акции на Лондонской и Московской биржах. На Мосбирже торги ГДР стартовали с 724,5 руб. за штуку, показав на 24.12.2021 цену закрытия 544,6 рублей (-24,8%).
За 9 месяцев акции серьезно просели, а что с бизнесом?
📊Кратко о Компании
FixPrice – это российский аналог американской сети Dollar Tree Stores – магазинов формата «все за 1$».
Компания продает продукты питания (≈28% продаж), бытовую химию и косметику (≈23% продаж), непродовольственные товары (≈49% продаж).
Ключевая стратегия FixPrice – экономия и максимальное сокращение издержек. Чтобы держать низкие цены на товары из Юго-Восточной Азии, компания закупает их напрямую, избегая накрутки посредников. При этом она стремится добиться от поставщиков таких цен, чтобы при последующей продаже получать двузначную рентабельность. Экономия на издержках при продаже продуктов достигается тем, что около 60% ассортимента Компания продает под собственной торговой маркой.


--[[
индикатор отрисовки наклонных уровней
Параметры:
delta - чувствиельность индикатора на волатильность в %
rep - количество повторений поиска конечного уровня
shif - сдвиг влево конечного бара
wt - признак наличия весового коэффициента =0 - без весового =1,2.. - свосовыми коф. чем ближе к концу тем больше
show=1,
--]]
Settings=
{
Name = "AT-obl_can", -- название индикатора
delta=2.0, -- параметр индикатора
rep=10,
shif=0,
wt=1,
--hl=1,
show=1,
line=
{
{
Name = "ln1",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255, 0, 0)
},
{
Name = "ln2",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255, 0, 0)
}
}
}
function Init()
vMin = 0
vMax = 0
vMinindex = 0
vMaxindex = 0
voldMinindex = 0
voldMaxindex = 0
return 2
end
function OnCalculate(index)
rep = Settings.rep
shif = Settings.shif
wt = Settings.wt
--hl = Settings.hl
sz = Size()-shif
if Settings.show == 1 then
if index <= sz then
if index <= 1 then
vMin = C(index)
vMax = C(index)
vMinindex = index
vMaxindex = index
voldMinindex = index
voldMaxindex = index
v = C(index)
else
if voldMaxindex >= voldMinindex then
if vMin~=nil and C(index)~=nil then
if C(index) > (1 + Settings.delta/100)*vMin then
vMin = C(index)
vMax = C(index)
vMaxindex = index
voldMinindex = vMinindex
vFrom = vMinindex
else
if vMin > C(index) then
vMin = C(index)
vMinindex = index
vFrom = voldMaxindex
else
vFrom = vMinindex
end
end
end
else
if voldMaxindex <= voldMinindex then
if vMax~=nil and C(index)~=nil then
if C(index) < (1 - Settings.delta/100)*vMax then
vMax = C(index)
vMin = C(index)
vMinindex = index
voldMaxindex = vMaxindex
vFrom = vMaxindex
else
if vMax < C(index) then
vMax = C(index)
vMaxindex = index
vFrom = voldMinindex
else
vFrom = vMaxindex
end
end
end
end
end
--if vFrom~=nil then
--[[
for i = vFrom, index do
k = (C(index)- C(vFrom))/(index- vFrom);
v = i*k + C(index) - index*k
SetValue(i, 1, v)
end --]]
--end
if index == sz then
for k = 1, 2 do
vf = 1
vs = 0
if k == 1 then
if vMinindex < vMaxindex then
vf = vMinindex
vs = vMaxindex
up = 0
elseif vMinindex > vMaxindex then
vs = vMinindex
vf = vMaxindex
up = 1
end
elseif k == 2 then
if voldMinindex < voldMaxindex then
vf = voldMinindex
vs = voldMaxindex
up = 0
elseif voldMinindex > voldMaxindex then
vs = voldMinindex
vf = voldMaxindex
up = 1
end
end
n = 0
xy = 0
x = 0
y = 0
xx = 0
m = 0
for i = vf, vs do
if C(i) ~= nil then
m = m +1
n = n + 1*(1+wt*m)
xy = xy + i*C(i)*(1+wt*m)
x = x + i*(1+wt*m)
y = y + C(i)*(1+wt*m)
xx = xx + i*i*(1+wt*m)
end
end
if (n*xx - x*x) ~= 0 and n ~= 0 then
a = (n*xy - x*y)/(n*xx - x*x)
b = (y - a*x)/n
for j = 1, rep do
n = 0
xy = 0
x = 0
y = 0
xx = 0
m = 0
for i = vf, vs do
if C(i) ~= nil then
v = a*i + b
clc = 0
if up == 1 and C(i) >= v then
clc = 1
end
if up == 0 and C(i) <= v then
clc = 1
end
if clc == 1 then
m = m + 1
n = n + 1*(1+wt*m)
--[[
if up == 1 and hl == 1 then
xy = xy + i*H(i)*(1+wt*m)
elseif up == 0 and hl == 1 then
xy = xy + i*L(i)*(1+wt*m)
else --]]
xy = xy + i*C(i)*(1+wt*m)
-- end
x = x + i*(1+wt*m)
--[[
if up == 1 and hl == 1 then
y = y + H(i)*(1+wt*m)
elseif up == 0 and hl == 1 then
y = y + L(i)*(1+wt*m)
else --]]
y = y + C(i)*(1+wt*m)
-- end
xx = xx + i*i*(1+wt*m)
end
end
end --[[--]]
if (n*xx - x*x) ~= 0 and n ~= 0 and n >= 2 then
a = (n*xy - x*y)/(n*xx - x*x)
b = (y - a*x)/n --[[ --]]
end
end
for i = vf, sz do
v = a*i + b
if up == 1 and v >= C(vs) or up == 0 and v <= C(vs) then
SetValue(i, k, v)
end
end
end
end
end
end
end
end
endВсем привет!
У нас новый конкурс на лучший пост!
На этот раз тема почти академическая:
Влияние рынка цветных металлов на отрасли промышленности, реальный сектор экономики.

Призы
1 место — 15 тысяч рублей
2 место — 10 тысяч рублей
3 место — 5 тысяч рублей
Требования к постам
👉Конкурсный пост в любой его части должен содержать ссылку на условия конкурса
👉К посту необходимо поставить тег “промышленные металлы на Мосбирже”, чтобы мы могли его найти по этой ссылке
Время
Старт конкурса — 22.12.2021
Окончание — 28.12.2021
Критерии оценки
👉качество содержания
👉число просмотров
👉число лайков и комментариев
Всем инвестиционных и творческих свершений!
Имеется красивейшая эквити:

Эта эквити интересна не только тем, что у неё высокий шарп, но и тем, что она получена не на копеечном счете.
На стартовые 30 млн заработано 11 млн рублей.
Это опционная торговля, которая велась по трём базовым активам: RI, Si, BR.
Что я сделал для анализа? Скачал все сделки за конкурс и немного подшаманил файлик.
Видимо, там были открытые позиции на начало конкурса ну и остались открытые на момент окончания.
Чтобы всё закрывалось в ноль для финреза, я добавил в начала и в конец файла несколько строк с виртуальными сделками.
Тогда получилась такая картина.
Финрез по бренту (опционы+БА) порядка 230 долларов.
Финрез по сишке (опционы+БА) порядка 650 тыс рублей.
Финрез по ришке (опционы+БА) порядка 7,5 млн пунктов.
То есть можно сказать, что вся эквити получена на ришке.
Что меня интересовало?
1. Как получено?
2. Насколько устойчиво и насколько масштабируемо?