Избранное трейдера Свин Копилкин (Дмитрий)

по

Как обогнать индекс (пример выигрышной торговой стратегии)

    • 15 октября 2018, 09:37
    • |
    • AlexChi
  • Еще

Как обогнать индекс (пример выигрышной торговой стратегии)

          В кругу экономистов бытует мнение, что обогнать фондовый индекс на длительной перспективе невозможно, и если вам удалось в какой-то определенный год вырваться вперед, получив прибыль гораздо выше той, которую продемонстрировал индекс акций, то в будущем неизбежно ваши результаты не превзойдут индекс, а могут оказаться только хуже него. Подобная точка зрения следует из гипотезы эффективного рынка. К сожалению, экономика отличается от математики тем, что строгое доказательство практически любого утверждения представляется невозможной задачей. Тем не менее, в данной статье мне бы хотелось привести пример одной из стратегий, которая способна обогнать индекс акций в длительной перспективе. Разумеется, я отдаю себе отчет в том, что не могу доказать это математически. Впрочем, в экономике практически везде используются различные гипотезы, которые невозможно доказать, например, почему-то принято  считать, что движение цен подчиняется нормальному распределению, и я что-то нигде не встречал какого-либо доказательства подобного утверждения. Тем не менее, именно на основе гипотезы о нормальном распределении была придумана знаменитая формула Блэка-Шоулза для оценки стоимости опционов, за которую ее авторы даже получили нобелевскую премию.



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

Как и обещал ГРААЛЬ от знакомого трейдера. Держите пользуйтесь.

Пошаговая инструкция по применению грааля :)
Первое и самое главное: сначала определить баланс рынка. В какую сторону торговать).
Мы не входим ни по каким формациям в шорт в зоне бычьего перевеса и не покупаем ни от каких поддержек в зонах медвежьего перевеса.
Если определить баланс на рынке в торгуемой зоне затруднительно – мы пропускаем сигналы.

Что нужно учитывать при определении текущего баланса?
 1) В какую сторону пирамидятся уровни.
Если поддержки отменяем, сопротивления тестируем – рынок медвежий
Если сопротивления отменяем, поддержки тестируем – рынок бычий.
Баланс на рынке не может измениться пока сохраняется данная тенденция.
Примечание – баланс может поменять образование мощной консолидации (пилы) из которой может быть 
непредсказуемый выход. Признаки пилы: цена начинает возвращаться и в локальные поддержки и в локальные сопротивления.
Защищенные зоны на часовике внутри диапазона дневной пилы очень быстро теряют свою силу (особенно при подходе цены к противоположной стороне пилы))).

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

ЭТИ 13 АКЦИЙ от GOLDMAN SACHS которые ждет РОСТ ПРИБЫЛИ В 2018

Аналитики GOLDMAN SACHS составили рейтинг акций S&P 500 по ожидаемому росту прибыли на акцию в 2018 году.

 
13. Alphabet

Tикер: GOOGL

Сектор: Информационные технологии

Рейтинг Goldman Sachs: Покупка

Ожидаемый прирост прибыли на акцию в 2018: 28%

 12. Salesforce.com

Tикер: CRM

Сектор: Информационные технологии

Рейтинг Goldman Sachs: Покупка

Ожидаемый прирост прибыли на акцию в 2018: 29%

 11. Adobe Systems

Tикер: ADBE

Сектор: Информационные технологии

Рейтинг Goldman Sachs: Нейтральный

Ожидаемый прирост прибыли на акцию в 2018: 31%

 10. Chevron

тикер: CVX

Сектор: Энергетический

Рейтинг Goldman Sachs: Покупка

Ожидаемый прирост прибыли на акцию в 2018: 32%

 9. Berkshire Hathaway

Tикер: BRK.B

Сектор: Финансовый

Рейтинг Goldman Sachs: Нет данных

Ожидаемый прирост прибыли на акцию в 2018: 32%

 8. Chubb Limited

Tикер: CB

Сектор: Финансовый

Рейтинг Goldman Sachs: Покупка

Ожидаемый прирост прибыли на акцию в 2018: 48%

7. Schlumberger

Tикер: SLB



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

Доходность к погашению (Yield to maturity, YTM)

Давно хотел понять, что такое доходность к погашению, но всё никак руки не доходили. Одно дело, когда тебе квик/сайт ММВБ показывает какое-то число, типа 5.25%, и вроде оно и должно быть правильным, но что за этим стоит? И что это означает на практике? В инете есть сложные формулы доходности, и (если сможешь разобраться) они вроде считают приблизительно то же самое, но, опять же, почему они именно такие, как они получены? Хочется, чтобы этот процент, какой бы он ни был, можно было напрямую сравнивать со ставками банковских вкладов, потому что это просто и понятно.

Зачем нужно уметь считать доходность самому? 

  1. Чтобы проверить, что она на самом деле такая.
  2. Чтобы учесть налог на купон для корпоративных бумаг, т.к. в квике он не учитывается.
  3. Чтобы учесть комиссию.
  4. Чтобы посчитать доходность для бумаг, по к-м нет торгов на бирже (есть на внебирже) и поэтому в квике показывается 0.
  5. Можно посчитать для любой цены или даты.

Сразу скажу, что самый простой способ посчитать доходность – это использовать функцию ДОХОД в Excel. Для примера я буду использовать еврооблигацию GAZPR-34 на 10.01.18 с ценой 137.5 и НКД 17,7292. В данном случае ф-я ДОХОД получает 4,284% (тут учитывается налог), но при этом она требует очень мало параметров:



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

Сбережения - для бедных, инвестиции - для богатых

Взято из https://nakhusha.livejournal.com/20142.html

Ник Маджиулли (ofdollarsanddata.com) напоминает нам о важности сбережений, что весьма коррелирует с моим недавним постом.

Вольный пересказ мой.
Оригинал Saving is For the Poor, Investing is For the Rich

Когда мой блог стал довольно популярным среди моих друзей, я стал получать от них вопросы типа:

"Ник, я скопил 1 000 долл., куда мне их вложить, чтобы получить наилучшую отдачу?"

Я начинаю облачаться в костюм консультанта, вспоминаю все заумные речи и диаграммы, и тут мне приходит понимание: сумма столь незначительна, что доход в 10% даже не покроет ужин с друзьями. Это проблема всех бедняков. Их капитал настолько мал, что проценты практически не играют роли. С другой стороны, если у вас есть 2 000 000 долл., то даже 5%-ое снижение вызовет 100 000 долл. убытков, которые не покрыть из текущих заработков. Таким образом, мы приходим к мысли, что для 

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

Список ресурсов для начинающего инвестора на ММВБ

Список ресурсов для начинающего инвестора на ММВБ

Это мой первый пост на Смарт-Лабе. Пишу скорее для себя, давно хотел в одном месте собрать ссылки на ресурсы, которыми регулярно пользуюсь. На рынке с 2011 года, с самого начала – как долгосрочный инвестор. Был небольшой опыт спекуляций, даже в плюс, но затраты времени и нервов совершенно не окупаются. То есть заработать можно, но быстро утомляешься, нервничаешь, снижается качество жизни.



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

60 метких цитат подслушанных на Уо́лл-стрит ❗

На Wall Street, есть человек, который работая в одном из крупнейших инвестиционных банков в мире Goldman Sachs — ведет Твиттер аккаунт: https://twitter.com/GSElevator

Он собирает цитаты подслушанные в лифтах офисов Уолл-Стрит. Хотя они порой высокомерные и смешные, но некоторые из них раскрывают правду жизни.

60 цитат подслушанных на Wall Street:

Научи человека ловить рыбу, и он снова проголосует за того, кто ему пообещает дать эту рыбу. 

Если меня уволят — это будет хорошей проверкой моей жены на верность, если же меня повысят — то проверкой меня. 

Если у вас хороший метаболизм, голова полна волос и хорошая работы, не женитесь молодым, Подождите 10 лет и делайте выбор. 

Статистически, тебе нет смысла волноваться, как выглядит мама твоей первой жены. 

Я бы с тобой согласился, но тогда мы оба будем не правы. 

Каждый телефонный разговор я начинаю со слов: «Мой телефон почти сел и может отключиться, так что давай по-быстрому». 

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

Таблица "Портфель" в QUIKе


    Представляю таблицу для портфельных инвестиций. В квике до сих пор такого нет. Цвет строки меняется если Прибыль%<>5%. Обновление каждые 5 сек.
Таблица "Портфель" в QUIKе

Для её создания необходимо:
1. Создать файл «tablePortfolio.txt» в папке «C:\QUIK\Scripts». Если папки нет, создать её.
2. Скопировать туда код скрипта
3. Сохранить, выбрав кодировку «ANSI», иначе вместо русских букв могут быть кракозябры.
4. Сменить расширение файла с ".txt" на ".lua"
5. Запустить скрипт командой Сервисы->Lua  скрипты->Добавить (выбрать файл tablePortfolio.lua) ->Запустить

Код скрипта:
IsRun = true
class_code="TQBR"

function main()
   -- Получает доступный id для создания
   t_id = AllocTable()   
   
   -- добавить столбцы
   AddColumn(t_id, 1, "Бумага",       true, QTABLE_STRING_TYPE, 20)
   AddColumn(t_id, 2, "Кол-во",       true, QTABLE_INT_TYPE,     7)
   AddColumn(t_id, 3, "Цена покупки", true, QTABLE_DOUBLE_TYPE, 14)
   AddColumn(t_id, 4, "Цена текущая", true, QTABLE_DOUBLE_TYPE,   14)
   AddColumn(t_id, 5, "Прибыль, р",   true, QTABLE_DOUBLE_TYPE,   14)
   AddColumn(t_id, 6, "Прибыль, %",   true, QTABLE_DOUBLE_TYPE, 14)
   t = CreateWindow(t_id)

   for iRow=1, getNumberOf("depo_limits")-1, 1 do
      rowInPortfolioTable = getItem("depo_limits", iRow) -- получить текущую строку из таблицы "Лимиты по бумагам"            
      qtyBoughtLots  = tonumber(rowInPortfolioTable.currentbal)         
      limitKind = rowInPortfolioTable.limit_kind          
      if qtyBoughtLots>0 and limitKind<1 then      
         InsertRow(t_id, iRow)-- добавить новую строку вниз таблицы   
      end
   end
   local rows, columns = GetTableSize (t_id)
   InsertRow(t_id, rows+1) -- добавить новую строку вниз таблицы для "Итого"
   
   SetWindowCaption(t_id, "Портфель: прибыли и убытки    © [email protected]") 

   -- исполнять цикл, пока пользователь не остановит скрипт или не закроет окно таблицы
   while IsRun do 
      if IsWindowClosed(t_id)==true then
         IsRun=false
      end

      local currentPrice=0
      local qtyBoughtLots=0
      local profitAbs = 0
      local profitPerc = 0
      local currentSecCode= ""
      local fullNameOfInstrument = ""
      local limitKind = 0
      local rowInPortfolioTable = {}    -- строка из таблицы "Лимиты по бумагам"
      local tableInstrument = {}    -- данные "Таблицы текущих торгов"
      local iRowInOutTable = 1
	  local totalInvest = 0
	  local totalPortfolio = 0
	  local totalProfit = 0
	  local totalPercent = 0

      for iRow=0, getNumberOf("depo_limits")-1, 1 do
         rowInPortfolioTable = getItem("depo_limits", iRow) -- получить текущую строку из таблицы "Лимиты по бумагам"         
         
         qtyBoughtLots  = tonumber(rowInPortfolioTable.currentbal)
         
         limitKind = rowInPortfolioTable.limit_kind 
         
         if qtyBoughtLots>0 and limitKind<1    then      -- если кол-во лотов >0 и тип лимита T0
            currentSecCode = rowInPortfolioTable.sec_code
            fullNameOfInstrument =  tostring(getParamEx(class_code, currentSecCode, "SHORTNAME").param_image or "0") --"LONGNAME"
            avgPrice       = tonumber(rowInPortfolioTable.awg_position_price)                  
            currentPrice = GetAskPrice(currentSecCode)   
            profitAbs = (currentPrice-avgPrice)*qtyBoughtLots      
            profitPerc    = 100*currentPrice/avgPrice   - 100
			
			totalInvest = totalInvest + avgPrice*qtyBoughtLots  
			totalPortfolio = totalPortfolio + currentPrice*qtyBoughtLots   
            
            SetCell(t_id, iRowInOutTable, 1, fullNameOfInstrument) -- "Бумага"
            SetCell(t_id, iRowInOutTable, 2, tostring(qtyBoughtLots)) -- "Кол-во"RemoveZero(tostring(qtyBoughtLots)))
            SetCell(t_id, iRowInOutTable, 3, tostring( math_round(avgPrice, 3) ))  -- tostring(avgPrice))   -- "Цена покупки"
            SetCell(t_id, iRowInOutTable, 4, RemoveZero(tostring(currentPrice)))   -- "Цена текущая"
            SetCell(t_id, iRowInOutTable, 5, tostring( math_round( profitAbs, 0)) ) -- "Прибыль, р"
            SetCell(t_id, iRowInOutTable, 6, tostring(math_round(profitPerc, 1)) .."%") -- "Прибыль, %"
            
            if profitPerc >5 then       -- окрашиваем
               ColourRowInGreen(iRowInOutTable)
            elseif profitPerc<-5 then 
               ColourRowInRed(iRowInOutTable)
            else 
               ColourRowInYellow(iRowInOutTable)
            end   
            iRowInOutTable = iRowInOutTable+1
         end
      end
      totalProfit = totalPortfolio - totalInvest 
      totalPercent   = 100*totalProfit/totalInvest  
	  SetCell(t_id, iRowInOutTable, 1, "Итого") 
      SetCell(t_id, iRowInOutTable, 3, tostring( math_round(totalInvest, 0) ))  
      SetCell(t_id, iRowInOutTable, 4, tostring( math_round(totalPortfolio, 0)))  
      SetCell(t_id, iRowInOutTable, 5, tostring( math_round( totalProfit, 0)) ) 
      SetCell(t_id, iRowInOutTable, 6, tostring(math_round(totalPercent, 1)) .."%") 
	  
	  if profitPerc >5 then       -- окрашиваем
               ColourRowInGreen(iRowInOutTable)
            elseif profitPerc<-5 then 
               ColourRowInRed(iRowInOutTable)
            else 
               ColourRowInYellow(iRowInOutTable)
            end   
            iRowInOutTable = iRowInOutTable+1
      sleep(5000) -- пауза 5 сек.
      end
   --message("script table portfolio finished")
end


function ColourRowInRed(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(255,150,150), RGB(0,0,0), RGB(255,150,150), RGB(0,0,0))
end
function ColourRowInYellow(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(255,255,200), RGB(0,0,0), RGB(255,255,200), RGB(0,0,0))
end
function ColourRowInGreen(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(150,255,150), RGB(0,0,0), RGB(150,255,150), RGB(0,0,0))
end
function GetAskPrice(inp_Sec_Code )
   local ask = tostring(getParamEx(class_code, inp_Sec_Code, "OFFER").param_value or 0)
   return ask
end
-- Округляет число до указанной точности
function math_round (num, idp)
   local mult = 10^(idp or 0)
   return math.floor(num * mult + 0.5) / mult
end
-- удаление точки и нулей после нее
function RemoveZero(str)
   while (string.sub(str,-1) == "0" and str ~= "0") do
      str = string.sub(str,1,-2)
   end
   if (string.sub(str,-1) == ".") then 
      str = string.sub(str,1,-2)
   end   
   return str
end
function OnStop()
   DestroyTable(t_id)
   IsRun = false   
end
  • обсудить на форуме:
  • QUIK

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