Избранное трейдера 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. Насколько устойчиво и насколько масштабируемо?