Избранное трейдера Камиль

по

Таблица "Портфель" в 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: ценообразование, доходность и ответы на вопросы

* Во 2 части мы подробно разберём кейсы, на которых можно заработать с помощью ОФЗ и фьючерса на ОФЗ.

Ценообразование и доходность

Вы хотите вложиться в облигации, но зарубежный рынок Вам неинтересен, а ценообразование корпоративных бондов кажется Вам дремучим лесом? Тогда добро пожаловать на рынок ОФЗ и фьючерсов на ОФЗ, где Вы можете не бояться кредитного риска, низкой ликвидности и прочих опасностей.

Многим инвесторам до сих пор торговля облигациями кажется непонятной. Друзья, на самом деле, это даже проще, чем торговля акциями! Покупая облигацию, весь Ваш доход формируется из купонных платежей, их реинвестирования и изменения цены бонда (будем разбирать облигации с постоянным купоном, а они одни из самых ликвидных). Цена облигации имеет обратную зависимость от рыночной доходности, а чувствительность цены к изменению доходности называется дюрацией. Таким образом, Ваш финансовый результат от покупки бонда (в % от вложенного капитала):

ФР = -Дюрация * Изменение доходности + Доходность облигации * Срок инвестирования в годах



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

Об успехе. Пятничное

Об успехе. Пятничное

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

— Хочешь я открою тебе истину? — вдруг спросил он меня

— Про банки?

— Да какие нахер банки, — отмахнулся он, — настоящую ИСТИНУ.



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

10 советов 40-летнего 20-летним

не мое, но в свете постов о здоровье от 50-летных, думаю, актуально

10 советов 40-летнего 20-летним.

Достигнув сорока начинаешь поражаться, сколько же людей даже не дожило твоего возраста. Илья Ильф умер в 39. Максим Горький в 37. Да много кто умер.
Дожив до сорока начинаешь задумываться, достиг ли ты всего чего хотел, и много ли ты успел сделать.
Ты поражаешься, что Александр Македонский до твоего возраста не дожил, но уже успел завоевать полмира, оставив тысячелетние наследие. Осознавая свои достижения, ты понимаешь, что великие люди в твоем возрасте тебя превзошли многократно. Читая книги начинаешь ловить себя на мысли, что автор тебя явно младше (и думаешь, ну чему этот сопляк может тебя научить?).

Анализируя свой опыт хочется кое что посоветовать нынешним 20-летним с высоты, так сказать, прожитых лет.

Итак, 
1. Перестань бухать. Перестань курить. Как бы круто тебе это сейчас не казалось, бухать и курить это не айс. Больше того, я скажу тебе то, что может показаться банальностью, но бухать и курить крайне вредно для здоровья. Да, сейчас здоровье у тебя железное и никак тебя не беспокоит. Но будь уверен, что если продолжишь бухать/курить, через 20 лет ты поймешь, что здоровье свое ты загубил безвозвратно. Помни, что даже пиво ведет к выработке не свойственного тебе женского гормона эстрогена. К каким последствиям это приводит нагуглишь сам. Или можешь посмотреть на большинство нынешних сорокалетних. Хочешь быть таким — продолжай.



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

Обратный пропорциональный спред - мощь и красота

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

 

Обратный пропорциональный спред активно применяется мной по следующим причинам: по наблюдениям даёт хороший прирост цены (обычно выше, чем участвующие в нём опционы на его страйки по отдельности), а также хорош для управления позицией.

Не буду рассказывать теорию, а поделюсь практикой.

Вообще я читал в западных источниках, что такая конструкция подходит, когда вы ожидаете например резкий рост на БА, но его вероятность  — невысокая. Тогда типа покупай такую конструкцию за практически 0 – в случае роста цены на БА вы получаете хорошую прибыль, а если его не происходит – то цена опциона не меняется да и вы ничем не рисковали, в смысле не было ваших расходов. Например, это подходит для биотеха, если ждете прорыва у какой-то компании, выдачи разрешения FDA и т.п.



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

Инвестор или "Дурак"? Всего 9 лет...время летит незаметно...

     Всем привет Уважаемые Ребятушки!


   Решил написать свой первый пост — это будет моя маленькая история о себе, о инвесторах и «дураках», а так же о моих правилах торговли!
   
   На рынке я всего лишь с 2008 — 2009 годов. В 08 — м работая в банке и общаясь с нашим управляющим, который занимался 
фондовыми рынками и заработал достаточно много денег, решил тоже попробовать. Но увидев слишком большие движения, испугался.
Почему, я что трус? Нет! Я люблю цифры, а цифры говорили мне что лезть в рынок рано, нужно заниматься изучением его. В итоге самый сок я пропустил.

   В 2009 открыл счет в Альфе и начал торговать. Первый год торговал без плечей и заработал 60% за год. Решил, что я самый умный и что без обучения 60% — это круто, нужно рубить еще больше и ОБЯЗАТЕЛЬНО НУЖНО УЧИТЬСЯ  — Лучше самому, честно сказать тут начались ошибки и еще я сделал вторую ошибку! Я ушел на Форекс!)))) Замечательный ФОРЕКС, чтоб тебя)))

   Вплоть до середины 2011, начала 2012 — сливы! А все почему?
Потому что на рынке есть свои правила.

   1. Не торгуйте с плечом больше 4-5. А лучше торгуйте без плеча или с 2 — м. 
Можете торговать с бОльшим, если у Вас есть инсайдерская информация или Ваш риск ограничен стопом. Пример Ванюта, доигрался парень с плечами и торговлей без стопов в путешествиях, но это его выбор и там были не только эти причины;

   2. Если решили торговать самостоятельно, то торгуйте самостоятельно. Не слушайте МЕГА ГУРУ! Я занимался обучением и сделал один вывод из всего этого — люди, которые приходят, которым ты доносишь все, даже если не очень хорошо (потому что я не профессиональный лектор) поймут о чем я говорю, подтвердят, что это работает, но в 90% случаев им мой стиль торговли не подойдет, после обучения окажется, что они ничего не поняли и скажут, что все методы не работают, и маленькая горстка людей попадет с Вами в один такт;

   3.
Если начали обучаться, то идите в индивидуальную работу до результата или изучите основы и долбите-ДОЛБИТЕ и еще раз ДОЛБИТЕ своим лбом, КРОВЬЮ и ПОТОМ рынок самостоятельно! Никто за Вас торговать не будет!

   4. Не торгуйте агрессивно! Торгуйте стабильно! Хотите много денег? А в кармане 50 000 рублей, да хоть 500 000, Вам же хочется гораздо больше!? НЕ торгуйте агрессивно! Торгуйте всегда стабильно, найдете инвесторов и будет Вам счастье! Даже 3% в месяц уже у инвесторов вызовет Уважение, только вопрос в том, чтобы Ваша стратегия Масштабировалась и Риски были в пределах 0,3% — 2% в месяц, тогда это будет интересно. Хочу напомнить, что самый высокий вклад, на сегодня 11.07.2017 года в банке РФ10,5%, а средняя ставочка 7 — 8% годовых, очень часто без возможности снятия. А в Валюте — 2,25%. При стабильных 2-3% в месяц и хорошей статистике Инвесторов будет у Вас достаточно, ГЛАВНОЕ РИСКИ КОНТРОЛИРОВАТЬ ВСЕГДА!

   5. Торгуйте биржевыми инструментами!
Хотите большие деньги? Стабильность и меньше головной боли? Да плюньте Вы на это все! ФОРЕКС не Ваша тема! Бинарные Опционы тем более, Вам самим не смешно? Кухонные компании? В топку их!

   6. Мои любимые биржи! Западные! Наша биржа замечательная и ее я люблю. Но Американские рынки более развитые, больше ликвидности и больше возможностей. Минус в том, что я живу и трачу рубли, а зарабатываю $. Курсы валют меняются и тут не угадаешь конечно, иногда в плюсе хорошем иногда плюс не такой существенный.

   7. Начинать нужно с нашего рынка! Акции, фьючерсы + опционы! 
В начале только так, дальше по возможности переходить на американские площадки, хотя у нас много примеров, как можно стабильно торговать и много мильЁнов зарабатывать на России. Мой стиль торговли больше подходит для американских рынков.

Возможно 6 и 7 пункт нужно было поменять местами!))))

АХ да, я же не написал о Инвесторах, да есть инвесторы, которые хотят кучу денег и %.

Пусть самостоятельно поторгуют, поймут, что это все сложно и не так просто, оставаясь в пределах риска от 0,1% до 1% зарабатывать 10-20% в месяц НЕРЕАЛЬНАЯ затея. Все хотят Яблочек небесных из Эдема, но должны понимать, что все не просто, особенно на их суммах хотя бы от 100 000 $.

Работал с такими и работаю — это сложно, лучше по чуть-чуть!  

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

P.s. да люблю я ВОСКЛИЦАТЕЛЬНЫЕ ЗНАКИ! И улыбаться тоже)))
Всем попутного тренда! Успехов в торговле, меньше дураков на пути и меньше ошибок!

Инвестиционные стратегии для российского рынка акций

Инвестиционные стратегии на основе фундаментальных индикаторов, на первый взгляд, являются простым способом отбора акций. Во-первых, они относительно легки и интуитивно понятны в расчётах, во-вторых, они доказали свою эффективность, о чем можно прочитать в исследованиях, приведенных в книгах Stocks for the Long Run и What Works on Wall Street.

Такие стратегии называются активными. Их задача — получать доходность в среднем выше рынка (например, индекса ММВБ) с помощью выбора структуры портфеля (отбора бумаг), отличных от фондовых индексов. В противоположность этому пассивные стратегии предполагают инвестирование в индексные фонды. Но как и пассивные стратегии, активные также требуют широкой диверсификации и периодическую ребалансировку.

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



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

Ваш портфель акций на смартлабе: прикрепили календарь событий

Как вы знаете, вы можете составлять список акций (портфель) на смартлабе, чтобы следить за изменением цены бумаг.

http://smart-lab.ru/q/watchlist/


По вашим просьбам мы добавили туда: валюту, фьючерсы и FinEx ETFы.

А сейчас еще и прикрепили календарь предстоящих событий, привязанный именно к тем бумагам, которые лежат в вашем портфеле.
Например: http://smart-lab.ru/q/watchlist/dr-mart/1/

Ваш портфель акций на смартлабе: прикрепили календарь событий

Согласитесь, удобно)

Создавайте свои списки акций!
Ваш портфель акций на смартлабе: прикрепили календарь событий

Даты закрытия реестров для выплаты дивидендов

Сегодня три бумаги последний день торгуются с дивидендами: Мосэнерго, Сбербанк и НЛМК.
Как это узнать при помощи инструментов смартлаба? Есть 2 способа.

1. Зайти в календарь (команда <ECO>).
Даты закрытия реестров для выплаты дивидендов

2. Зайти в дивиденды 2017. итсортировать по дате T-2. Получится такая таблица:
Даты закрытия реестров для выплаты дивидендов
Тут кстати видим что еще и по Курганской ГК сегодня отсечка.

Действительно ли пут-опционы переоценены?

    • 08 июня 2017, 16:47
    • |
    • ataden
  • Еще
Этот пост посвящен одному феномену, который присутствует в пут-опционах на широких индексах акций, по крайней мере акций американских. А именно, хронической переоцененности пут-опционов в среднем.

Есть довольно много академических исследований, именующих этот феномен не иначе как «overpriced puts puzzle» или «put anomaly». Примеры можно посмотреть, например, здесь, здесь, здесь и еще много в каких источниках. Биржа CBOE также уже довольно давно публикует индексы стратегий продажи опционов вроде PutWrite для продажи путов и  BuyWrite для продажи колов. Почти все они показывают результаты лучше простой пассивной покупки индекса, выступающего базовым активом(S&P 500, Russell 2000). На сайте CBOE есть довольно много исследований на эту тему, кто интересуется, полная библиография

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

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