Избранное трейдера Камиль
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
* Во 2 части мы подробно разберём кейсы, на которых можно заработать с помощью ОФЗ и фьючерса на ОФЗ.
Ценообразование и доходность
Вы хотите вложиться в облигации, но зарубежный рынок Вам неинтересен, а ценообразование корпоративных бондов кажется Вам дремучим лесом? Тогда добро пожаловать на рынок ОФЗ и фьючерсов на ОФЗ, где Вы можете не бояться кредитного риска, низкой ликвидности и прочих опасностей.
Многим инвесторам до сих пор торговля облигациями кажется непонятной. Друзья, на самом деле, это даже проще, чем торговля акциями! Покупая облигацию, весь Ваш доход формируется из купонных платежей, их реинвестирования и изменения цены бонда (будем разбирать облигации с постоянным купоном, а они одни из самых ликвидных). Цена облигации имеет обратную зависимость от рыночной доходности, а чувствительность цены к изменению доходности называется дюрацией. Таким образом, Ваш финансовый результат от покупки бонда (в % от вложенного капитала):
ФР = -Дюрация * Изменение доходности + Доходность облигации * Срок инвестирования в годах
Мы сидели на уже знакомой террасе офиса Седого, только на этот раз в бокалах был не сок, а кое что покрепче. Пятница. Это обязывает. Седой никогда не упускал повода.
— Хочешь я открою тебе истину? — вдруг спросил он меня
— Про банки?
— Да какие нахер банки, — отмахнулся он, — настоящую ИСТИНУ.
не мое, но в свете постов о здоровье от 50-летных, думаю, актуально
10 советов 40-летнего 20-летним.
Достигнув сорока начинаешь поражаться, сколько же людей даже не дожило твоего возраста. Илья Ильф умер в 39. Максим Горький в 37. Да много кто умер.
Дожив до сорока начинаешь задумываться, достиг ли ты всего чего хотел, и много ли ты успел сделать.
Ты поражаешься, что Александр Македонский до твоего возраста не дожил, но уже успел завоевать полмира, оставив тысячелетние наследие. Осознавая свои достижения, ты понимаешь, что великие люди в твоем возрасте тебя превзошли многократно. Читая книги начинаешь ловить себя на мысли, что автор тебя явно младше (и думаешь, ну чему этот сопляк может тебя научить?).
Анализируя свой опыт хочется кое что посоветовать нынешним 20-летним с высоты, так сказать, прожитых лет.
Итак,
1. Перестань бухать. Перестань курить. Как бы круто тебе это сейчас не казалось, бухать и курить это не айс. Больше того, я скажу тебе то, что может показаться банальностью, но бухать и курить крайне вредно для здоровья. Да, сейчас здоровье у тебя железное и никак тебя не беспокоит. Но будь уверен, что если продолжишь бухать/курить, через 20 лет ты поймешь, что здоровье свое ты загубил безвозвратно. Помни, что даже пиво ведет к выработке не свойственного тебе женского гормона эстрогена. К каким последствиям это приводит нагуглишь сам. Или можешь посмотреть на большинство нынешних сорокалетних. Хочешь быть таким — продолжай.
Для спецов в опционах сегодня я могу поделиться опытом использования обратного пропорционального спреда. За последнее время это наиболее популярная конструкция в моей торговле (направленная торговля опционами), и расскажу почему.
Обратный пропорциональный спред активно применяется мной по следующим причинам: по наблюдениям даёт хороший прирост цены (обычно выше, чем участвующие в нём опционы на его страйки по отдельности), а также хорош для управления позицией.
Не буду рассказывать теорию, а поделюсь практикой.
Вообще я читал в западных источниках, что такая конструкция подходит, когда вы ожидаете например резкий рост на БА, но его вероятность — невысокая. Тогда типа покупай такую конструкцию за практически 0 – в случае роста цены на БА вы получаете хорошую прибыль, а если его не происходит – то цена опциона не меняется да и вы ничем не рисковали, в смысле не было ваших расходов. Например, это подходит для биотеха, если ждете прорыва у какой-то компании, выдачи разрешения FDA и т.п.
Инвестиционные стратегии на основе фундаментальных индикаторов, на первый взгляд, являются простым способом отбора акций. Во-первых, они относительно легки и интуитивно понятны в расчётах, во-вторых, они доказали свою эффективность, о чем можно прочитать в исследованиях, приведенных в книгах Stocks for the Long Run и What Works on Wall Street.
Такие стратегии называются активными. Их задача — получать доходность в среднем выше рынка (например, индекса ММВБ) с помощью выбора структуры портфеля (отбора бумаг), отличных от фондовых индексов. В противоположность этому пассивные стратегии предполагают инвестирование в индексные фонды. Но как и пассивные стратегии, активные также требуют широкой диверсификации и периодическую ребалансировку.
Пассивные стратегии на долгосрочном инвестиционном горизонте, как правило, обыгрывают активные, однако часто несут в себе и более высокие риски. Волатильность многих активных стратегий может быть ниже рыночной при большей краткосрочной/среднесрочной доходности.