Избранное трейдера sam

по

Дивиденды2017.Прощайте и здравствуйте снова:))

Большой дивидендный сезон 2017  закончился. Прошли все отсечки и до 14.08.2017 будут выплачены все утвержденные акционерами компаний дивиденды.

Конечно, полноводная дивидендная река обмелеет, но не иссякнет совсем. СД эмитентов начали обьявлять промежуточные дивиденды за 6 месяцев 2017 года.

Совет директоров "Северстали" рекомендовал внеочередному общему собранию акционеров компании утвердить дивиденды по результатам первого полугодия 2017 года в размере 22 рублей 28 копеек на одну акцию.

Предложенная дата закрытия реестра акционеров для получения дивидендов — 26 сентября 2017 года.

Внеочередное собрание акционеров «Северстали», на котором будет рассмотрен вопрос о дивидендах, назначено на 15 сентября 2017 года, закрытие реестра — 21 августа 2017 года.

Совет директоров Магнит рекомендовал дивиденды по итогам 1 п/г 2017 г. в размере 115,51 руб/ао 
ВОСА — 31 августа 
Закрытие реестра для ВОСА — 7 августа 
Закрытие реестра под дивиденды — 15 сентября 2017 года



( Читать дальше )

Откуда берётся электричество и КПД электромобилей

Всё больше мировых производителей обещают нам выпустить новые модели электромобилей, даже консервативный Porsche обещает нам Mission E в 2018 году:

Откуда берётся электричество и КПД электромобилей

Часто при обсуждении электромобилей возникают комментарии, что КПД электродвигателя 95%, а у ДВС КПД всего 55%, но электричество у нас не из розетки же берётся.

Это действительно всё так, но бензин/дизель в двигатель не сам из мирового эфира попадает.

Раз уж мы решили рассматривать потери на полном цикле превращения полезных ископаемых в движение самобеглых повозок, то начнём с самого начала: добычи нефти и газа.

Откуда берётся электричество и КПД электромобилей

( Читать дальше )

Убыток Яндекса от Яндекс-такси вырос в 21 раз до 3,2 млрд рублей!

… Зато Яндекс переоценил свое такси за квартал в два раза вверх...
Убыток Яндекса от Яндекс-такси вырос в 21 раз до 3,2 млрд рублей!

В 1-м квартале убыток от такси составил 1,245 млрд руб (EBITDA)
Во 2-м квартале он вырос на 58% до 1,966 млрд руб.
За полгода убыток вырос со 153 млн раблей до 3,2 млрд, то есть в 21 раз.
Убыток Яндекс таки в 2 раза больше выручки от Яндекс-такси, которая составила 1,55 млрд. в 1п17
Выручка от Яндекс-такси  составляет всего 4% от выручки Яндекса
Убыток Яндекса от Яндекс-такси вырос в 21 раз до 3,2 млрд рублей!
Убыток от Яндекс-такси составляет 19% от остальной части EBITDA Яндекса.
Если бы не Яндекс-такси, то скорректированная прибыль Яндекса была бы на 40% выше.

<Ссылка на отчет Яндекса за 2 квартал>

Квартал назад руководство Яндекса увидело эти результаты, и вдруг заявило что они хотят продать 17% акций Яндекс-Такси  и выручить за них аж до 11 млрд рублей. Я тогда обращал внимание на эту историю:
Цинизм ситуации в том, что у Яндекса у самого на счетах 61 млрд руб!!! То есть по сути, Яндекс мог бы купить такси сам у себя, если бы верил, что это хорошая инвестиция))
Но что-то не срослось, продать долю в такси не продали, но все-таки придумали объединить свое мега-убыточное подразделение с Убером. Если раньше гениальные финансисты оценивали Яндекс-Такси до 66 млрд рублей, то объединившись с Убером общая оценка уже выросла до $3,725 млрд или 221 млрд рублей. С учетом того, что доля Яндекса в СП составит 59,3%, оценка Яндексом Яндекс-таки за квартал подросла с 66 млрд рублей до 131 млрд рублей)

В общем, когда бизнес идет, кубышка растет, всё в компанию. Если возникает растущая убыточная дыра, ее надо отделить и желательно подороже продать инвесторам, взяв с потолка максимальную оценку:)

p.s. Яндекс люблю, просто обращаю внимание на интересные моменты отчетности.

Поквартально сгруппированная отчетность Яндекса тут: https://smart-lab.ru/q/YNDX/f/q/MSFO/ 
Обращает на себя внимание то, что кэш на балансе Яндекса, который всегда стабильно рос, сокращается 3 последние квартала подряд.
Убыток Яндекса от Яндекс-такси вырос в 21 раз до 3,2 млрд рублей!
Объясните кто-нибудь, если Яндекс каждый квартал зарабатывает деньги, почему наличность падает?
Свободный денежный поток стал отрицательным?

Об управлении ценой продукта

Об управлении ценой продукта

Тут постоянно появляются публикации с пророчествами о скором крахе нефтяного рынка и о падении цен на нефть ниже уровня пола из-за избытка предложения и развития электромобилей.
Но при этом забывают три момента.
Первое. Для электромобиля нужно производить электроэнергию. А с учетом того, что возникает дополнительное звено в цепочке источник энергии — конечный потребитель, то тех же углеводородов в конечном итоге уйдет больше. Умные люди давно это просчитали, и ушлому бизнесмену, который пару лет назад хотел в Гонконге (или Сингапуре, точно не помню) получить какие-то льготы за то, что он купил Теслу, льгот не дали. Наоборот. Посчитали, что он загрязняет среду больше, чем на авто с бензиновым двигателем. И заставили заплатить за это.
Второе. Академик П.Л.Капица еще 40 лет назад рассчитал и доказал, что возобновляемые источники энергии (солнечная, ветровая, геотермальная, энергия приливов и т.п.) в принципе не могут закрыть потребности человечества в энергии. И не из-за более высокой стоимости, а просто из-за недостатка мощностей. Этот пузырь альтернативной энергетики будет существовать только до тех пор, пока существуют традиционные источники энергии за счет сжигания углеводородов, и будет существовать именно за счет льгот и выплат, предоставляемых в ущерб традиционным производителям. По словам того же Капицы, единственной реальной альтернативой углеводородному пути является атомная энергетика. 

( Читать дальше )

АльЭфес-Бей достал мел... (for linux users)

и написал в терминале суру:
curl --request POST "http://node.finam.ru/imcf3.asp?" --data "id=19898&type=3&ma=6&maval=7&freq=5&uf=1&indval=&cat=8&cai=7&v=&idxf=&curr=0&mar=14&gifta_mode=1&clnt=&clnkey=">/home/my_dir/Pictures/finam.gif;


что немедленно привело к загрузке картинки с финама.
mar=14
это фортс
mar=1
это ФР
id
#«SBER»3, «GAZP» 16842, «SNGS»4,«VTBR»19043, «GMKN»795, «CHMF»16136, #«AFLT»29, #«RTKM» 7, «MTSS» 15523, «TATN»825,«SBERP» 23,«RTKMP» 15,

SPFB.Si  19899
SPFB.RTS  17455
SPFB.SBRF  17456

итд...
может кому помогут заклинания…

Бэнкинг по-Русски: "Секвестирование валюты баланса" БКС-банка. Не так страшен черт, как его малюют....

Всем привет!
После ЮгроКазуса пару недель назад, прогнозируемого снижения рейтинга у Банка Открытие и слухов вокруг структурных проблем «Карфагена» (так неформально называют  одну группу банков, связанную с одной северокавказской республикой) взор читателей смарт-лаба небезосновательно устремился к БКС-банку.

Поводом для этого стал почти двухкратное «секвестирование» (пропорциональное снижение активов и пассивов) валюты баланса банка за июнь 2017 года.

Давайте вместе разберем почему это произошло и чем это может грозить банку и рядовому инвестору Бкс_брокера.


Для начала, хотел бы обратить внимание, что БКС-Банк ИНВЕСТИЦИОННЫЙ, а это значит что основные его активы сосредоточены в ценных бумагах и операций по кредитованию банкой под залог этих бумаг.

Бэнкинг по-Русски: "Секвестирование валюты баланса" БКС-банка. Не так страшен черт, как его малюют....

Итак, мы видим, что доля кредитов Юридическим лицам крайне мала, а кредиты физлицам настолько ничтожны, что поместились в прочие активы.


( Читать дальше )

В РФ доступна куча данных, в т.ч. экономических.

Весной был на вписке «Open Data», это не реклама!!!
oki-russia.timepad.ru/event/439731/

Был поражен масштабом открытости наших данных. Оказалось, что мы еще будучи в G8 подписали меморандум по открытию бесплатного доступа к статистическим донным. Поразительно, но по оценке НКО система госзакупок в РФ самая продвинутая. Но также имеется доступ к огромному массиву статистик начиная с количества кинотеатров в разрезе муниципалитетов до структуры правонарушение МВД.

Вот эта контора АНО «Информационная Культура» сотрудничает с различными НКО, включая инноагентов типа эмнисти, по международному соглашению и продвигает в массы доступ различным базам данных, включая буржуйские.
www.infoculture.ru/projects/

У них есть подписка на рассылку новостей по открывающимся статистическим ресурсам. И есть ежегодная сходка для разработчиков и зевак. Бутеры и пирожки там вполне съедобные. Куча конкурсов для разработчиков и внушительные призы.

Сегодня рассылку получил.

( Читать дальше )

Код робота на LUA для QUIK

В двух словах: робот анализирует спот, выставляет лимитные и стоп-лимитные заявки по фьючерсу. Делает пересчет сигналов по выбранному тайм-фрейму, снятие выставленных заявок, запись в файл текущего состояния, ведение логов, сообщения, запрос текущей позиции и пр. Из робота удалена алгоритмика вычисления сигнала и в текущем виде скрипт будет иметь сигнал на покупку на каждом баре.

Предназначается для новичков в алготрейдинге, что-то типа болванки.

Важно: выставление заявок я закомментировал, поэтому можете смело запускать этот скрит, он не натворит ужаса по счету.

require"QL"

log = "sbrf.log"
seccode = "SRM6"
lots_in_trade = 80
accnt = ""
better = -5
chart = "sberbankxxx"
is_run = true
prev_datetime = {}
len = 100
basis = 9
k_bal = {0,1,2,3}
sell = false
buy = false
id = 0
first = true

function trade_signal(shift)
        number_of_candles = getNumCandles(chart)
        bars_temp,res,legend = getCandlesByIndex(chart,0,number_of_candles-2*len-shift,2*len)
        bars={}

        i=len
        j=2*len
        while i>=1 do
                if bars_temp[j-1].datetime.hour>=10 then
                        sk=true
                        if bars_temp[j-1].datetime.hour==18 and bars_temp[j-1].datetime.min==45 then
                                sk=false
                        end
                        if sk then
                                bars[i]=bars_temp[j-1]
                                i=i-1
                        end
                end
                j=j-1
        end

        t = len+1

        do_sell = false
        do_buy = true

        value = 0
        if do_sell then value = 1 end
        if do_buy then value = -1 end
        toLog(log,"value="..value.." on candle: "..bars[len].datetime.year.."-"..bars[len].datetime.month.."-"..bars[len].datetime.day.." "..bars[len].datetime.hour..":"..bars[len].datetime.min.."   O="..bars[len].open.." H="..bars[len].high.." L="..bars[len].low.." C="..bars[len].close.." V="..bars[len].volume)
        return value
end

function mysplit(inputstr, sep)
        if sep == nil then
                sep = "%s"
        end
        local t={} ; i=1
        for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
                t[i] = str
                i = i + 1
        end
        return t
end

function OnInit(path)
        log=getScriptPath()..'\\'..log
        toLog(log,"==========OnInit: START")
        toLog(log,"==========OnInit: FINISH")
end

function OnStop()
        is_run = false
        toLog(log,"==========OnStop: script finished manually")
end

function CheckBit(flags, bit)
   -- Проверяет, что переданные аргументы являются числами
   if type(flags) ~= "number" then error("Ошибка!!! Checkbit: 1-й аргумент не число!"); end;
   if type(bit) ~= "number" then error("Ошибка!!! Checkbit: 2-й аргумент не число!"); end;
   local RevBitsStr  = ""; -- Перевернутое (задом наперед) строковое представление двоичного представления переданного десятичного числа (flags)
   local Fmod = 0; -- Остаток от деления
   local Go = true; -- Флаг работы цикла
   while Go do
      Fmod = math.fmod(flags, 2); -- Остаток от деления
      flags = math.floor(flags/2); -- Оставляет для следующей итерации цикла только целую часть от деления
      RevBitsStr = RevBitsStr ..tostring(Fmod); -- Добавляет справа остаток от деления
      if flags == 0 then Go = false; end; -- Если был последний бит, завершает цикл
   end;
   -- Возвращает значение бита
   local Result = RevBitsStr :sub(bit+1,bit+1);
   if Result == "0" then return 0;
   elseif Result == "1" then return 1;
   else return nil;
   end;
end;

function killorders(ccode,scode)
    for i=0,getNumberOf("orders")-1,1 do
        local t=getItem("orders", i)
        if t ~= nil and type(t) == "table" then
            if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then
                local transaction={
                    ["TRANS_ID"]=tostring(math.random(2000000000)),
                    ["ACTION"]="KILL_ORDER",
                    ["CLASSCODE"]=ccode,
                    ["SECCODE"]=scode,
                                        ["ACCOUNT"] = accnt,
                    ["ORDER_KEY"]=tostring(t.ordernum),
                }
                                res=sendTransaction(transaction)
            end
        end
    end
end

function killstoporders(ccode,scode)
    for i=0,getNumberOf("stop_orders")-1,1 do
        local t=getItem("stop_orders", i)
        if t ~= nil and type(t) == "table" then
            if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then
                local transaction={
                    ["TRANS_ID"]=tostring(math.random(2000000000)),
                    ["ACTION"]="KILL_STOP_ORDER",
                    ["CLASSCODE"]=ccode,
                    ["SECCODE"]=scode,
                                        ["ACCOUNT"] = accnt,
                    ["STOP_ORDER_KEY"]=tostring(t.ordernum),
                }
                                res=sendTransaction(transaction)
            end
        end
    end
end


function main()
        toLog(log,"==========main: START")
        while is_run do
                if isConnected() == 1 then
                        ss = getInfoParam("SERVERTIME")
                        if string.len(ss) >= 5 then
                                hh = mysplit(ss,":")
                                str=hh[1]..hh[2]
                                h = tonumber(str)
                                if (h>=1000 and h<1400) or (h>=1405 and h<1845) or (h>=1905 and h<2350) then
                                        if first then
                                                for ti = 50,2,-1 do     trade_signal(ti) end
                                                if buy and not sell then message(seccode.." Current state: green and buy",1) end
                                                if sell and not buy then message(seccode.." Current state: red and sell",1) end
                                                if buy and sell then message(seccode.." ERROR: green and red",1) end
                                                if not buy and not sell then message(seccode.." WARNING: nothing",1) end
                                                first = false
                                        end
                                        prev_candle = getPrevCandle(chart,0)
                                        if not isEqual(prev_candle.datetime,prev_datetime) then
                                                current_value = trade_signal(1)

                                                if current_value ~= 0 then
                                                        optn = "B"
                                                        if current_value==1 then optn = "S" end
                                                        curvol=0
                                                        no=getNumberOf("FUTURES_CLIENT_HOLDING")
                                                        if no>0 then
                                                                for i=0,no-1,1 do
                                                                        im=getItem("FUTURES_CLIENT_HOLDING", i)
                                                                        if im.sec_code==seccode then
                                                                        curvol=im.totalnet
                                                                        end
                                                                end
                                                        end
                                                        trvol = -current_value*lots_in_trade-curvol
                                                        if trvol ~= 0 then
                                                                killorders("SPBFUT",seccode)
                                                                killstoporders("SPBFUT",seccode)
                                                                f = io.open(getScriptPath().."\\sbrf2_pos.txt","r")
                                                                sbrf2_pos=f:read("*n")
                                                                f:close()
                                                                f = io.open(getScriptPath().."\\sbrf3_pos.txt","r")
                                                                sbrf3_pos=f:read("*n")
                                                                f:close()
                                                                pr,n,l = getCandlesByIndex ("futsber", 0, getNumCandles("futsber")-1, 1)
                                                                local trans =
                                                                {
                                                                        ["ACTION"] = "NEW_ORDER",
                                                                        ["CLASSCODE"] = "SPBFUT",
                                                                        ["SECCODE"] = seccode,
                                                                        ["ACCOUNT"] = accnt,
                                                                        ["OPERATION"] = optn,
                                                                        ["PRICE"] = toPrice(seccode,pr[0].close+current_value*better),
                                                                        ["QUANTITY"] = tostring(math.abs(curvol-sbrf2_pos-sbrf3_pos)),
                                                                        ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id)
                                                                }
                                                                id = id+1
                                                                --res = sendTransaction(trans)
                                                                message(seccode.." Send : " .. res, 2)
                                                                toLog(log,"Send: ".. res)
                                                                for btr=0,200,5 do
                                                                        local trans =
                                                                        {
                                                                                ["ACTION"] = "NEW_STOP_ORDER",
                                                                                ["CLASSCODE"] = "SPBFUT",
                                                                                ["SECCODE"] = seccode,
                                                                                ["ACCOUNT"] = accnt,
                                                                                ["OPERATION"] = optn,
                                                                                ["PRICE"] = toPrice(seccode,pr[0].close-current_value*btr),
                                                                                ["STOPPRICE"] = toPrice(seccode,pr[0].close-current_value*(btr+better)),
                                                                                ["QUANTITY"] = tostring(6),
                                                                                ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id),
                                                                                ["EXPIRY_DATE"] = "GTC"
                                                                        }
                                                                        id = id+1
                                                                        --res = sendTransaction(trans)
                                                                        message(seccode.." Send : " .. res, 2)
                                                                        toLog(log,"Send: ".. res)
                                                                end
                                                                if current_value == 1 then
                                                                        message(seccode..' RED: buy->sell',1)
                                                                        toLog(log,"RED signal")
                                                                else
                                                                        message(seccode..' GREEN: sell->buy',1)
                                                                        toLog(log,"GREEN signal")
                                                                end
                                                        else
                                                                if current_value == 1 then
                                                                        message(seccode..' RED: buy->sell',1)
                                                                        toLog(log,"RED signal, but nothing to do")
                                                                else
                                                                        message(seccode..' GREEN: sell->buy',1)
                                                                        toLog(log,"GREEN signal, but nothing to do")
                                                                end
                                                        end
                                                else
                                                        if buy and not sell then toLog(log,"Nothing to do. Current state: green and buy",1) end
                                                        if sell and not buy then toLog(log,"Nothing to do. Current state: red and sell",1) end
                                                        if buy and sell then toLog(log,"Nothing to do. ERROR: green and red",1) end
                                                        if not buy and not sell then toLog(log,"Nothing to do. WARNING: nothing",1) end
                                                end
                                                prev_datetime = prev_candle.datetime
                                        end
                                end
                        end
                end
                sleep(5*1000)
        end
        toLog(log,"==========main: FINISH")
end
  • обсудить на форуме:
  • Quik Lua

Китай объявил о рекордной добыче сланцевого газа. У Газпрома проблемы.

Ссылка на новость. 
www.finanz.ru/novosti/aktsii/kitay-obyavil-o-rekordnoy-dobyche-slancevogo-gaza-1002164437

«Сланцевая революция» в Китае, объявленная британо-голландским концерном BP в 2015 году, продолжает набирать обороты. По итогам прошлого года добыча сланцевого газа в КНР выросла на 76% и достигла 7,9 млрд кубометров, сообщает «Синьхуа» со ссылкой на данные министерства земельных и природных ресурсов страны. В разведку сланцевого газа за год было инвестировано 8,79 млрд юаней (1,3 млрд долларов), а найденные эксплуатационные запасы достигли 21,8 трлн кубометров.

По данным американского управления энергетической информации, Китай обладает крупнейшими в мире технически извлекаемыми запасами сланцевого газа в мире. Минэнерго США оценивает их в 31,57 трлн кубометров, что на 68% выше, чем в Штатах. Впрочем, с геологической точки зрения они отличаются и стоят дороже — стоимость бурения в зависимости от формации составляет 11-13 млн долларов в при 2,6-9,3 млн в США.

Договоренности о совместно добыче на сланцевых месторождениях правительство КНР и BP достигли в октябре 2015 года. В апреле 2016-го был подписан первый контракт на разработку блока «Нэйцзян-Дацзу» в Сычуаньской котловине на Юго-Западе КНР. Согласно плану развития газовой отрасли Китая, который был опубликован в январе управлением по делам энергетики КНР, собственная добыча сланцевого газа полностью покроет рост внутреннего спроса на топливо.



( Читать дальше )

....все тэги
UPDONW
Новый дизайн