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

по

Таблица "Портфель" в 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

Дивидендные "аристократы" ММВБ

    • 16 августа 2017, 19:31
    • |
    • COREz
  • Еще
Начал потихоньку формировать дивидендный портфель на средства, которые не жалко потерять в России если произойдёт системный кризис. Итак первые три бумаги: Газпром, Мосбиржа и Русгидро. Среднегодовая чистая доходность по ним находится сейчас в районе 7%, что в общем-то сравнимо со ставками в топовых банках страны.

Дивидендные "аристократы" ММВБ

Почему именно эти бумаги?

Газпром, потому что монополист и очень дешёвый. Мне просто нравится иметь в портфеле кусочек «Национального достояния». :)

Мосбиржа — это новая «облигация» на рынке акций после Лукойла и ВСМПО. Бизнес любой биржи завязан на клиентских комиссиях. Трудно себе представить, чтобы резко упало количество желающих «припарковать» свои деньги в ценных бумагах. Богатые богатели, богатеют и будут богатеть. Правило «5Б» :) Кроме того сейчас пенсионные фонды активно стали «пылесосить» рынок ценных бумаг, так что «жирных» клиентов у Мосбиржи будет в достатке.

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

Всего одна жизнь !

    • 12 августа 2017, 10:04
    • |
    • konkord
  • Еще
Не моё, но по существу....

Задумайся о двух вещах.
У тебя одна жизнь, второй не будет.
На что ты ее тратишь.
Задумайся еще о том, что время скоротечно и совсем скоро тебе будет 30 лет, 40 лет, 50 лет. Это все будет, время не стоит на месте, пойми это. Не живи так, как будто у тебя впереди вечность, живи прямо СЕЙЧАС. Попытайся прожить 
так, чтобы потом не было стыдно и до горечи больно за трусливую, лживую и тупую жизнь, в которой у тебя не хватило духа что-то исправить. Попытайся прожить так, чтобы твое тело было крепким до конца, а разум острым, мозг молодым, не дай себе стать черствым. 
Я, конечно, юн, но в свои 23 кое-что попытаюсь до тебя донести. У меня в школе и в студенчестве были знакомые, которые играли в разные игры, типа dota 1,2 и wow, lineage 2. Помню в 2013 году спрашивал у своих одноклассников сколько времени они играют в доту, у многих было по 2 тысячи часов, у кого-то по 4 тысячи часов. Знаю, что они играют до сих пор с того времени, но уже меньше. Наверное у них теперь на пару тысяч часов больше. 

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

Путь к 32 млн. пройден без биткоинов

    • 10 августа 2017, 08:51
    • |
    • BigAlex
  • Еще

Человек ранее предложил делиться историями успеха. Чтож, поделюсь и я. Страдаю паранойей, деньги любят тишину, потому зарегил новый ник и вхожу на смарт под VPN.  Это реальная история, врать под анонимным, одноразовым ником смысла нет. Просто тянет поделиться, да и похвалиться, чего уж там, пусть и анонимно.

40 лет, женат-дети. Заработал 31,7 млн. плюс 100 кв.м квартира в мск без ипотеки, сам купил наполовину (после продажи унаследованной поменьше, больше 5 млн. докладывал, плюс ремонт 2 млн.), черный джип за полтора ляма (до девальвации купленный), машина жены (чуть менее ляма) и прочее по мелочам. Взяток не брал, не украл ни рубля за свою жизнь, получал белую зарплату, не имел своего бизнеса, не имел стартового капитала от родителей, только квартиру, биток не покупал. Впрочем по порядку.

Про фондовый рынок узнал в 1999 году. Накупил, помню, акций долларов на тыщу примерно, отложенных с зп. в течение года, а то и двух. Первая зп 200 долл. была. По диалап модему с брокером соединялся, хотя брокер был в соседнем доме. Нынче нет того брокера много лет.



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

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

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

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

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

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

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

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



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

Внутридневные микроуровни РТС.

Смотря на скриншот, сомнений, что на РТС огромное кол-во крупных игроков отпадает. Их следы хорошо видны, на подчеркнутых микроуровнях.

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

1)      Стоит обратить внимание, что данные микро уровни имеют минимум 5 свечей (25 минут), а значит не спешим со входом, ждем сбора стопов и не менее 15-20 минут.

2)      1000 пунктов за день для РТС уже давно не проблема, а значит, стопы по 100 пунктов абсолютно не имеют смысла. Стараемся ставить стоп хотя бы 200 пунктов. Даже на 5ти минутке ТА САМАЯ свеча с длинной тенью имеет длину тени не менее 150 пунктов.

3)      Так же не стоит сразу ставить стоп без убыток, потому что данные МИКРО УРОВНИ могут длиться до нескольких часов. Можно поставить защиту прибыли, когда цена ушла на 400п, а стоп без убыток не ранее чем через 250 пунктов.



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

Результаты в июне 2017 года

    • 15 июля 2017, 16:41
    • |
    • Serg_V
  • Еще
Июнь индекс РТС вновь провел преимущественно в боковых движениях, а вот по паре рубль/доллар состоялось хорошее движение вверх, что позволило заработать обеим стратегиям на срочном рынке. По стратегии «Опционы» результат за июнь +14.36% и общий результат с момента запуска +151.01%.

Результаты в июне 2017 года



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

О некоторых целях по некоторым бумагам в этом году, Сбербанк и Аэрофлот

Я устал читать какая большая прибыль у сбербанка и аэрофлота, мол какой правильный рост.

Это имеет значение только, чтобы тратить чужие деньги на покупку этих бумаг по хаям.

Суть же рынка состоит в возвращаемости ценовых диапазонов.

Сбер уже вернулся к 136, при его «огромной прибыли». И придет осенью на 126, может быть и ниже. больше -20% от текущих бешеных 160 — продавайте как я!))

Аэрофлот  - это пузырь. +48% с начала года ни на чем. дивы разово выплатили 50%, ну прогнулись, про 220 ляпнули перед Пу, исполнили. Издержки растут, компания не эффективна.

Ее цена ниже 130 рублей этой осенью за акцию. Это -40%, от текущих 225. Продавайте, как это делаю я!)))

Газпром с дивами 6.5% никому не нужен ниже 125, а аэрофлот с дивами всего 7.8%, что почти как у газпрома, всем стал нужен на 225? смешно.

Газпром 150-160 к концу года, 220-250 в первой половине 2018 года. Аэрофлот 130 этой осенью. Татнефть под 300 этой осенью, и северсталь к 600 — это уже внеконкурсный прогнозный бонус))

Плюсаните плиз, чтобы пост был в мемориз сайта. Подождать надо всего-то пять месяцев.

Дивидендные истории в России. Статистика закрытия гэпов (автор Spydell)

копипаст. Оригинал тут: http://spydell.livejournal.com/642950.html 

В этом году стремительность закрытия дивидендных гэпов поражает, но как обстояли дела раньше? Сколько времени требуется для закрытия див.гэпа?
Акциям Газпрома с 2007 по 2011 везло, гэп закрывали в тот же день, но и дивиденды никогда не превышали 2%. Как только выросли дивиденды, так и начались сложности. В 2012 году при дивах в 8.97 руб и отсечке на уровне 165 руб потребовалось 89 торговых дней, чтобы вернуться на тот же уровень. В 2013 44 дня, в 2014 80 дней, в 2015 31 день, а в прошлом году 80 торговых дней. Другими словами, чтобы за 5 лет отбить дивиденды в Газпроме в совокупности на 37.25 рублей необходимо было 324 торговых дня. Если в прошлые 5 лет вы бы инвестировали в Газпром фиксированную сумму в рублях, например, 1 млн руб в последний день перед закрытием реестра, то примерно за 16 календарных месяцев смогли бы получить около 250 тыс рублей.
Газпром
Это один из худших показателей среди всех крупных компаний на ММВБ. Газпром отличается тем, что всегда падает и очень неохотно растет. Однако, это все равно заметно выше любого вида депозита в банках.

В таблице «дни» — это количество торговых дней после закрытия реестра, в течение которых акция закрывала дивидендных гэп. «минимум» — минимальная достигнутая цена в процессе закрытия гэапа, а «мин (%)» — величина падения в % от закрытия реестра до самого минимума в дивидендном гэпе. На примере Газпрома с 2012 по 2014 инвесторы терпели в худший момент около 17% убытка от последней котировки перед закрытием реестра.

У Сбербанка раньше были низкие дивы, поэтому и закрытие гэпов стремительное за исключением 2014 года, когда попали на негативную конъюнктуру. Именно в этот момент США и ЕС начали вводить санкции против банковского сектора, чуть позже начался коллапс рубля и банковской системы России, а потом отходняк.
Сбербанк
Инвестируя фиксированную сумму в Сбербанк, можно было бы получить около 10% доходности примерно за календарный год ожидания. Статистику смазывает 2014. В таблице лимит 226 дней – это значит, что котировки не достигли предыдущего закрытия реестра до момент но момента истечения года. В целом, раньше Сбер был не самым выгодным в контексте дивидендной доходности.

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

Пассивный портфель с диверсификацией валют

Итак, у меня снова небольшое исследование, но на этот раз более близкое к настоящим боевым условиям.

Структура портфеля

— Акции индекса ММВБ: 30%
Для расчёта котировок я брал значения индекса полной доходности с сайта биржи.



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

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