Избранное трейдера Andrey Gritsun

по

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

Удар,..... Раз, два.............АУТ!

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

Сайт -

Бесплатная часть сайта 

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

Был такой геофизик Мэрион Кинг Хабберт в 1956 г. он опубликовал свою знаменитую статью предназначенную коллегам и статья состояла чуть менее чем полностью из матана вперемежку с кондовой геологией.
К несчастью, автор не поленился нарисовать для статьи кучу забавных графиков. У Хабберта не было доступа к компьютерам (они вообще тогда были во всём мире в количестве трех с половиной штук, каждый размером со школьный спортзал, а производительностью с китайский калькулятор), а рисовал он всё с помощью рейсфедера и логарифмической линейки.
Но читающей публике шибко нравились его графики.



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

Об инвестировании. Чему научили меня 33 года на Уолл-стрит.

Слышали старую поговорку: если бы только я тогда я знал, что знаю сейчас? Как же это верно. Когда я думаю о том, как я в 1987 г., имея неполных 3 года опыта, был назначен руководителем инвестиционной стратегии, я удивляюсь, как мне это вообще удалось. Я тратил почти всю свою энергию на покупку и продажу акций, глупо веря, что всегда смогу предсказать поведение фондового рынка, и мало времени посвящал тому, чтобы узнать и понять, как на самом деле функционируют деньги. Только когда в 1998 г. я познакомился с Фрэнком Конджилоси (Frank Congilose), я узнал правду о деньгах и о том, что традиционное финансовое планирование, применяемое 98% инвесторов (и продвигаемое «профессиональными советниками»), – ужасно ошибочный процесс.



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

Частный трейдинг - не профессия!

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

Аналогичное мнение изложил Тимофей в своей книге. Сравнил трейдера с нейрохирургом. Мол, не будете же делать операцию на мозге без знаний и опыта.

В то же время все знают, что на растущем тренде  зарабатывают абсолютно все инвесторы, какими бы они не были неопытными. Как так?

А так, дорогие мои. Эти сравнения с другими профессиями некорректны.

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

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

Граница успех/неуспех лежит не в отношении к трейдингу. И не в объеме знаний.

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

Brent, Сбербанк и ММВБ. Взгляд на рынок. Trade Market

Нефть

После полумесячного узкого боковика на локальных максимумах нефть не смогла продолжить рост, вернувшись к отметке 50, поставив под угрозу восходящий тренд. В последний раз про нефть я писал, что при уходе ниже 51,5 забываем о покупках, и целью станет уровень 49-50, однако с того момента динамическая поддержка в виде нижней границы канала поднялась вверх, и в данный момент происходит её тест. Если удастся пройти, то следующей целью будет 49-49,5.

Brent, Сбербанк и ММВБ. Взгляд на рынок. Trade Market

Вчера у нас по нефти был открыт шорт, скрин смс рассылки ниже. (Время Новосибирское)

Brent, Сбербанк и ММВБ. Взгляд на рынок. Trade Market



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

Портфель, идеи.

Портфель, идеи.
Прибыль за 2017 год составила 38% и с чистой совестью можно сказать, что годовой план в 35% выполнен.
предыдущий топик здесь. https://smart-lab.ru/blog/407847.php
В двух словах, как это было:
Саратовский НПЗап.
 Идею взял из блога Владимира Ш, он об этом заводе опубликовал три топика, пытаясь объяснить даже полному дураку об потенциале акций данной компании. Ознакомившись с ним, я понял, что это настоящая находка для инвестора, даже можно сказать клад.
Купил по 9500, получил дивиденд 1100 и сейчас акции торгуются около 13000. абсолютная доходность составила 48%, а в годовом выражении 384%. Прикол в том, что о перспективах акций и я написал несколько топиков, искренне желая поделится хорошей идеей с окружающими.
smart-lab.ru/blog/400224.php
smart-lab.ru/blog/409554.php
В итоге получил благодарность от прогрессивного читателя смартлаба. Дебилизм либеральное мышление налицо!


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

Как я реализовал мечту о Margin Call. С 3-ей попытки.

Однажды я открыл демку на форекс и мне сразу позвонили.
С какой целью регистрировали счет? Желаете торговать?
— Да не, я просто хочу протестить, что бывает, если Маржин Колл с последующим Стоп Аут.
— Это вы быстро узнаете!

Время шло… профит капал, а маржин задерживался. Пока не отказался от стопов, и не торганул на всю котлету. А то 13 лет на рынках, а кайфа полного облома не поймал. )) Даже в 2008 году умудрился потерять всего -25 % от депо. Непорядок.

А в этот раз мне (режим камикадце) помогло плечо 1 к 1000. Но не сразу.

Первая попытка приключилась нечаянно..
на счете были 500 usd, и я так доусреднялся, что мигала красная лампочка, а я в прострации все докупал по инерции, на обвале. Но чудо спасло. Инструмент развернулся, и все 10 открытых убыточных позиций, потихоньку вышли в +. Даже заработал на этом прыжке… без парашюта. Тогда повторять не захотел.

Вторая попытка была осознанной. Убрал лишние деньги, оставил чисто 70 баксов для стрессоустойчивости.

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

Дэниел Ергин. «Добыча. Всемирная история борьбы за нефть, деньги и власть»

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

Дэниел Ергин. «Добыча. Всемирная история борьбы за нефть, деньги и власть»

«Добыча» — историческое исследование периода в 150 лет, дополненное множеством редких фактов и подробностей ключевых периодов развития нефтяной индустрии.
Читая книгу Ергина как будто бы становишься невольным свидетелем возникновения нефтедобычных промыслов. Вместе с ключевыми фигурами выводишь нефтепродукты на рынок и в конце концов, понимаешь мотивы шаха Саудовской Аравии, наложившего эмбарго на поставку нефти в США.

После прочтения каждой главы (а всего их 38), все более становятся понятными отношения, сложившиеся между странами-экспортерами нефти и государствами-потребителями. Знание истории борьбы за доходы от продажи нефти между производителями нефти и транснациональными компаниями, позволяет заметить десятилетиями повторяющиеся паттерны, которые и сейчас влияют на объемы добычи и цену нефти.

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

Небольшие элиты меняют жизнь миллионов.

Достойная книга. Проясняет важные моменты во взаимоотношениях стран, которые доят и которых доят.
Логично и доступно описано как можно запустить в отсталую страну капиталы и затем их выкачать обратно, ещё и аборигены в долгах останутся. 
Сплетение экономики с политикой описано.
Если по сути, то описано как нужно  запускать своих красивых вежливых приятных людей к животным отсталым в финансовом плане людям. Далее красивые мальчики кидают понты перед местной элитой показывая как можно хорошо жить, если с ними сотрудничать. Местная элита ведётся на блеск, продаёт народное добро за копейки. Далее на эти же копейки нанимает заморских мастеров, которые им строят, к примеру, высокоростное ж/д сообщение, заводы и прочее. Хорошо если ещё заводы, а то могут быть просто торговые центры для продажи заморских безделушек. Далее заморские мастера получают деньги и уезжают. Всё, у аборигенов снова нет денег. Если остатки какие-то у домохозяйств остались, то их изымут через безделушки в новых ТЦ, либо через сервисное обслуживание иностранных заводов-магистралей.

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

Брокер ВТБ 24 или другого крупного банка для ФР - отзывы пользователей wanted!

Добрый день, коллеги!

В настоящее время пользуюсь услугами «Открытия», всем доволен, расставаться не намерен, однако в связи с явнями проблемами у банка, и практически нулевой защищенностью инвестора на российском рынке от мошеннических действий брокера «в случае чего» — на счет открывашки решил больше не доливать, и для диверсификации открыть счет еще у одного брокера. Основной критерий — надежность, чтобы в случае, если сложится половина банковской системы (повторение событий а-ля 98, а-ля 08 а может и хуже) — мой счет выжил.

Требуемый функционал — самый базовый
  — торгую только ФР
  — только в рублях
  — без плеч
  — целевой размер портфеля — несколько млн. руб. (5-10)
  — среднесрок, раз в месяц ребалансирую портфель в течение 1-2 сессий, соотв-но оборот ~ размеру портфеля
  — желателен минимум всяких фиксированных платежей
  — желательна возможность запретить брокеру засовывать руки в мой счет за бумажками в репо, бесплатно

Сейчас в «Открытии» плачу только 0.057% за оборот, и больше ничего — для меня самый идеальный вариант.

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

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