Постов с тегом "Портфель": 2635

Портфель


Таблица "Портфель" в 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, "Портфель: прибыли и убытки    © ramirzaev@mail.ru") 

   -- исполнять цикл, пока пользователь не остановит скрипт или не закроет окно таблицы
   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

Друзья, соратники - покритикуйте портфель плз, часть 2.

    • 23 августа 2017, 11:56
    • |
    • DAMAN
      Популярный автор
  • Еще
Всем доброго дня.
Подумав решил постить два раза в неделю, в середине и после завершения недели, пишу в том числе для себя, что бы удобнее было отслеживать собственные мысли и изменения в поведении. Так сказать дневник о состоянии своего эксперемента и кратко/среднесрочного портфельчика.

Буду рад, если кому-то еще это будет инересно, всегда всем рад. 

Эксперимент, напомню:
Краткосрок для меня тема новая, и тестирую для себя продажи и докупки на откатах внутри недели. шорт и плечи самим собой себе запрещены, считайте это своего рода челленджем.

Сейчас потихоньку убираю перекос в долях бумаг, вывожу при удобном случае инструменты в общее равновесие. Интересно пока. Заодно, на этом депо учусь, читаю умные мысли и ожидания формумчан ибо во многом я откровенный нуб и очень многого не знаю. )))) 

Итак, пост «апдейт» по следам вот этого топика. 
smart-lab.ru/blog/415761.php#comment7515079

Апдейт. 
1- Газпром (куда ж без него) средняя цена 116,5 доля 10,17%
2- ГМК, скидывал 14 августа по 9073, подобрал на просадке назад, средняя 8716, доля 10,15%
3- ЛСР, средний вход 758,4, доля 10,3%
4- ЛУКОйл, добирал на проливах в надежде на рост ближайший, средняя (высокая, не нра) 2865,5, доля 24,8%
5- Магнит, та же история что и с Лучком, поза не особо нравится, несколько раз накосячил на эмоциях, скидывал когда не надо было, средняя 9358, доля 32,78% — планирую сокращать в дальнейшем до 15-20%  
6- Ростелеком, средняя 65,25, доля 8,7%, планирую добирать до 10-12% с копейками. 
7- ну и Системы немного, и больше набирать стремно, и выбросить жалко ) 


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

Hibbett Sports - 3% от портфеля

Инвестиционная идея на Американском рынке №4

О компании: Hibbett Sports inc.— является одним из крупнейших спортивных ритейлеров с 1025 розничными магазинами в 32 штатах США. 

Hibbett Sports - 3% от портфеля

Фундаментальный анализ: Все расчёты проведены самостоятельно, данные были взяты из отчётов компаний по международным стандартам финансовой отчётности GAAP, цифры в тыс. долларах США. 

Hibbett Sports - 3% от портфеля



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

Плевок в глаз для адептов ТА. И рынки уходят от рисков

В начале июля все защитные активы полетели из каналов, об этом я писал и приводил примеры.
Были все признаки «кишки навыпуск» — свеча с гэпом вниз, пробитие сма200, побитие каналов, трендов и тд… И что в итоге? Как в шутке про известного комментатора «пас! гол! %уй!» (
Это укрепляет во мне мнение, что на ТА смотрит толпа, а в это же время большие деньги торгуют по своим принципам, собирая с лошков стопы и разводя на популярные паттерны (каналы, сма, уровни поддержки).
А по итогу безопасные гавани (трежерис, золото) выросли.
Опять можно заводить песни про тренды, поддержки, флаги, сопли, уши...
А пока тренд все увереннее показывает уход денег от рисков. Смотрите сами, как начали расти ютилитиз, золото и трежерис:
Плевок в глаз для адептов ТА. И рынки уходят от рисков
Вот таймфрейм 3 месяца:
Плевок в глаз для адептов ТА. И рынки уходят от рисков



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

Друзья, соратники - покритикуйте портфель плз!

    • 19 августа 2017, 14:35
    • |
    • DAMAN
      Популярный автор
  • Еще
Держу портфель из 7 инструментов какое-то время, планирую держать как минимум до конца года. 
Периодически скидываю часть позиции в некоторых эмитентах, и добираю обратно на просадке. 
Итог последних двух месяцев (с момента формирования основы портфеля, середина июля) без особенных временных затрат на мониторинг рынка — меня устраивает, сейчас 11,57%

Для себя, в целом, считаю результат весьма хорошим, при условно пассивном портфеле, средняя годовая банковская ставка по депозиту обогнана в два раза и за каких-то два месяца, что есть весьма радостно. 

Итак, портфель: 
1- Газпром (куда ж без него) средняя цена 116,5 доля 10,17% 
2- ГМК, скидывал 14 августа по 9073, подобрал на просадке назад, средняя 8716, доля 10,15%
3- ЛСР, средний вход 758,4, доля 10,3%
4- ЛУКОйл, добирал на проливах в надежде на рост ближайший, средняя (высокая, не нра) 2865,5, доля 24,8%
5- Магнит, та же история что и с Лучком, поза не особо нравится, несколько раз накосячил на эмоциях, скидывал когда не надо было, средняя 9358, доля 32,78% — планирую сокращать в дальнейшем до 15-20% 

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

Портфельное упражнение

Трудно не заниматься улучшением торгуемого подхода, хотя надо от этого отходить потихоньку:)

За последний месяц уделил внимание изменению спекулятивной части торговли. Добивался повышения средних сделок, чтобы снизить влияние проскальзывания и комиссий, а также избавиться от влияния любого отдельно взятого дня в году на итоговый результат.

Отбросив лишнее, остались у меня пять спекулятивных систем: RI-long, RI-short, SR-long, Si-long, Eu-long. Торгуются они примерно с равными весами. Может возможно что-то лучшее, чем паритет по весам (логический паритет по риску в моем понимании)?

Сделал сеточку весов от 0 до 1 с шагом 0.25. Итого получилось 3124 портфеля:
Портфельное упражнение
























RET — среднегодовая доходность за >10 лет.
MINDD — наихудшая просадка за >10 лет.
MEANDD — среднедневная просадка за > 10 лет.
DDD — ср.кв.откл. подневных просадок за > 10 лет.

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

Пожалуйста помогите по структуре портфеля

    • 17 августа 2017, 18:55
    • |
    • zhynna
  • Еще

Добрый день.

Мне 33 года. Работаю, своя недвижимость. Кредитов нет. Других обязательств нет. Планируется двое-трое детей. Сейчас есть 2,5 млн рублей на депозите в банке.

Планирую создать портфель. Цель — выйти на пенсию в возрасте 50 лет, и получать чистый доход с портфеля в размере не менее 60.000 в рублях 2017 года.

Думаю какая структура портфеля подойдет для моих целей.

Пока остановился на такой:

50% акций, 50% облигаций:

25% — ОФЗ, купленные на ИИС;
25% — Индекс ММВБ-10, собранный руками на ИИС;
25% — Индекс облигаций США (ETF), счет у американского брокера, скорее всего Interactive Brokers.
25% — Индекс акций S&P500 (ETF), счет у американского брокера, скорее всего Interactive Brokers.

Ребаланс раз в квартал путем покупки примерно на 100.000 рублей (в рублях 2017 года) тех активов, которые просели в цене. В случае резких просадок индексов акций возможен сдвиг баланса в пользу акций до 75% акций, 25% облигаций.

Пожалуйста покритикуйте портфель.


Тренды. Риск офф начинается?

Мои портфели сформированы по трендам лучшего перфоманса за 1,3,6 месяцев. (далее все графики со стокчартс.ком)
И вот по итогам недели начал проявляться интересный тренд — защитные активы начали обгонять акции.
Даже на 3 месячном отрезке золото и трежерис вырвались вперед.
Однако на самом ценном, 6 месячном, у акций еще приличный запас, и может рано паниковать. Но запас (особенно у США) уже небольшой.
но, не исключено, что происходит выход больших денег из акций в защитные активы.

З.ы. Ничего не предугадываю и не знаю. Просто комментирую что вижу.
мой портфель сейчас: кэш, IEF, gld, dbb, jo, pall, dbc

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