Избранное трейдера Александр Григорьев

по

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

Зачем ЦБ изъял с рынка более 1 трлн рублей?

По итогам вторника Банк России изъял из банковской системы более 1 трлн рублей. Из которых 150 млрд было абсорбировано на три месяца, а 879 млрд на одну неделю. Зачем ЦБ сделал это?

Во вторник, 15 августа, впервые за шесть лет Центральный банк решился на выпуск купонных облигаций Банка России. Бумаги предлагались только кредитным организациям, поэтому банки заморозили на три месяца 150 млрд рублей. Кроме того, в этот же день ЦБ провел уже традиционный депозитный аукцион, где предлагал взять себе на депозиты до 1,15 трлн рублей, однако банки дали лишь 879 млрд. Тем самым, как минимум, на неделю из банковского сектора изъяли 1 трлн рублей.
Зачем ЦБ изъял с рынка более 1 трлн рублей?

В то же самое время Банк России продолжает увеличивать кредитование через операции РЕПО и “валютный своп”. Через эти инструменты ЦБ выдал уже более 675 млрд рублей. То есть, наводнил систему напечатанными рублями взамен иностранной валюты.



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

Ралли по доллару не будет!

    • 16 августа 2017, 09:40
    • |
    • drow
  • Еще
Новость о том, что минфин США продаст по рынку облиг на 500 ярдов уже набило оскомину. Изъятие ликвидности, индекс доллара на 1000, рубль наверно на миллион, чем только не пугают нас дисторфичные быки в баксе.

Ничего не будет, максиму пара дней повышенной волатильности и всё. Облиги купят те самые пресловутые первичные дилеры, с заранее оговоренной доходность и кэш под это дело уже давно зарезервирован и это будет идеальный вариант для индекса доллара!

Хуже будет, если минфин захочет продавать облиги нерезидентам. А чтобы заставить нерезидентов покупать, надо либо нарисовать очень хорошую доходность — но это неприемлемо для бюджета, либо укатать бакс так, что за предложение его купить будут бить по морде. Второй вариант на мой взгляд более предпочтителен, так что ждем дальнейшее снижение индекса доллара и бережем депошку.

Доллар - два месяца до ралли?

В период с октября по декабрь Казначейство США планирует разместить облигации на сумму $501 млрд. Такой объем за один квартал последний раз размещался почти 10 лет назад — в кризисный 2009 г.
Доллар - два месяца до ралли?




Таким образом, Минфин изымет колоссальный объем долларовой ликвидности, что в свою очередь вызовет спрос на американскую валюту и приведет к ее росту. 

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

Отметим также, что с марта действуют ограничения на новые займы, поэтому Минфин не слишком активно может привлекать средства. Продлятся ограничения до момента повышения потолка госдолга, а решение проблемы, как ожидается, состоится как раз в октябре.

Кстати, еще более сильный импульс доллару могут придать действия Федеральной резервной системы. Напомним, Джанет Йеллен и ее коллеги обещают в скором времени начать сокращение баланса, что приведет к еще большему дефициту долларов на рынке.



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

Схема с дивидендами и ИИС.

Торговая система №77 Дивидендная инвестиционная стратегия. [ТС-077 ДИ]

Описание системы:  
 Данная стратегия работает в комплексе с ИИС (Индивидуальный инвестиционный счет). Суть стратегии сводится к тому что на денежные средства зарезервированные в ИИС покупаются акции определенной компании по которой будут в будущем выплачиваться дивиденды и после отсечки продаем эти самые акции и покупаем следующие по которым дивиденды будут выплачены позднее. Доходность данной стратегии формируется за счет налоговых вычетов на внесения денежных средств на ИИС и дивидендов по различным акциям которые будут покупаться под отсечки. Фишка в том что через дивиденды происходит как бы вывод средств с ИИС которые в ином случае можно будет вывести только закрыв данный тип счета и вернув в органы ФНС (Федеральная налоговая инспекция) полученные ранее налоговые вычеты. Основная сложность стратегии это заполнение налоговых деклараций формы 3-НДФЛ и взаимодействие с органами ФНС, но если использовать ЛК инспекции то все отлично, для получения информации о дивидендах используйте табличку смарт-лаба, она клевая сам пользуюсь.


Конспирология. EUR/USD

Решил написать одну из конспирологических версий, почему доллар падал ко всем валютам последние месяцы. Это версия пришла мне на ум как одна из наиболее правдоподобных для объяснения действий ФРС. Но начнем с «официальной» версии. Она звучит так — Инвесторы разочаровались, что ФРС не будет повышать ставку каждое заседание, и начали продавать доллар. Параллельно инвесторы разглядели бешеный экономический рост в европе на фоне замедления в США.

Кстати, что такое официальная версия в моем понимании? Это то, что нам рассказывают на блумберге и в других влиятельных мировых сми. А также крупнейшие американские банки в своих обзорах. А как вы думали, что у ФРС нет своего рупора «пропаганды»? Т.е. у Кремля есть свой рупор – это госканалы и ведущие российские сми, а у самой влиятельной организации в мире нет??? Мне кажется, что очень наивно так думать. Но я никого не убеждаю.

Зачем же падал доллар? Зачем ФРС явно играл против доллара сбивая его курс? ФРС решил сокращать свой баланс. Что это означает? ФРС будет продавать облигации из своего портфеля. Т.е. изымать доллары, вырученные за проданные облигации. Долларов в системе будет становиться меньше. Когда одной валюты в системе становится меньше по отношению к другой, что происходит? Эта валюта начинает дорожать. Чрезмерное усиление доллара ФРС явно ни к чему. А баланс сократить им хочется. Но это приведет к росту бакса.



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

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

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

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

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

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



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

Недвижимость

    • 09 августа 2017, 17:01
    • |
    • кs567
  • Еще
   Я извиняюсь, господа, что пишу тут первый раз и сразу не по главной вышей теме. просто меня разозлила тут позавчерашняя статья кирпичного «аналитика» — «Инвестировать в недвижимость можно будет года через два», которую тут активно обсуждали, вот я автору статьи и ответил.-
  Гневный ответ «эксперту недвижимости», который мне вчера подвернулся под руку!) http://www.banki.ru/blog/ks567/8818.php

позвольте мне вставить свой «пяточёк». вот мое понимание происходящего на рынке недвижимости. 

Почему недвижимость (жилая), будут долго (или быстро, но сильно) дешеветь.  
1. необходимый товар «квартира», был многие годы, с нач. 90- х годов, недоступен основной массе населения. и за это время, он превратился в огромный, желанный «дефицит» 
… и вот свершилось! народ, получил первый раз в жизни, возможность, купить свою многолетнюю «мечту». не обремененные долгами народные массы, дружно взяли 
в первый раз кредиты… и превратили спрос в огромную денежную волну, размер которой, понимая происходящее, значительно увеличили спекулянты (в т.ч. строители).и вся эта, разовая, финансово — эмоциональная волна и шибанула по ценникам, подбросив их до космических высот. а «эксперты», те небесных высот, ценники, попытались зафиксировать, и начали называть их, «справедливыми». 

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

НефтЪ & РублЪ - Взгляд эксперта

Объективно добыча нефти в мире начала снижаться
и причина этому даже не соглашения достигнутые ОПЕК и Россией

Причина истощение добычи нефти в мире
с низкой себестоимостью
т.е с себестоимостью добычи ниже $50

Давление на цену на нефть оказал Китай
начав ужесточение с января 2017 года
которое продолжается по настоящее время...

Это связано с риском гиперинфляции в Китае

Лишь ужесточение денежной политики Банком Китая
сдерживает цену нефти от роста до $70

"Ожидания рынка т.е ставка Кукла
Кукл в данном случае это банки и фонды США и ЕС
базируются на том что цена на нефть достигнет
отметки в $70-72 уже в октябре 2017 года"

Для исполнения бюджета Р.Ф до конца 2017 года
цена нефти за рубли должна составить
4000 рублей за бочку нефти

57*70=4000

Экспертами Трампу был представлен доклад
что экономика США с октября 2017 года

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

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