Избранное трейдера Skifan
Снова слился. В очередной раз.
Всё, хватит с меня! Я дико устал от этой треклятой биржи и навсегда ухожу из трейдинга!
Шутка юмора :)
На самом деле, мне сегодня стукнул полтинник — и я решил увековечить этот день своим первым постом на Смартлабе.
Мозг расставляет ловушки
Не так давно на Смартлабе была интересная серия постов на тему: «Мозг расставляет ловушки» (https://smart-lab.ru/blog/495325.php) Рекомендую почитать.
Все ловушки очень симпатичные, и мой товарищ Мозг, похоже, побывал во всех из них (он побывал, а я приобрёл бесценный опыт, да). Как говорится, есть что вспомнить.
Во всех книгах по трейдингу огромное внимание уделяется психологии, и это неспроста, ибо наш мозг рулит нами (а не мы – им). А этот товарищ Мозг иной раз выкидывает такие фортеля, что «волосы в жилах стынут» (М.Задорнов)… Поэтому я полностью согласен с кем-то сказанной фразой:
«Биржа – это на 90% психология и на 10% математика».
Я заметил тенденцию в финансовых СМИ говорить о том, что активно управляемые фонды не опережают рынок с учетом их комиссий, как будто это то, что мы только недавно обнаружили. Фактически, для тех, кто был готов искать доказательства, основанные на реальных данных, были доступны уже очень давно.
Вы могли бы утверждать, что этот процесс начал французский математик Луи Башелье. В своей докторской диссертации 1900 года «Теория спекуляций» Башелье продемонстрировал, что цены акций движутся таким случайным образом, что «математическое ожидание спекулянта равно нулю».
Однако, именно американец по имени Альфред Коулз III был первым человеком, который измерил эффективность биржевых прогнозистов эмпирически.
Alfred Cowles III
Рожденный в Чикаго и 1891 году и получивший образование в Йельском университете, Коулз стал успешным бизнесменом. Но его истинныой страстью были экономика и статистика. Один вопрос, в частности, занимал его ум — можно ли победить фондовый рынок? — и в 1927 году он решил найти ответ.
Вопрос, который Т.Феррис задал Баффету:
«Если бы вам было 30 лет, не было иждивенцев, но была постоянная работа до того, как полностью посвятить своё время инвестированию, как бы вы вложили свой первый миллион, допуская, что у вас есть другие сбережения, чтобы протянуть 18 месяцев? Заранее спасибо за конкретные классы активов и проценты от портфеля.»
Баффет ответил: «Я бы вложил всё в индексный фонд с низкой комиссией, который отслеживает S&P 500, и вернулся на работу...»
“If you were 30 years old and had no dependents but a full-time job that precluded full-time investing, how would you invest your first million dollars, assuming that you can cover 18 months of expenses with other savings? Thank you in advance for being as specific as possible with asset classes and allocation percentage.”Buffett let out a small laugh and began. “I’d put it all in a low-cost index fund that tracks the S&P 500 and get back to work…”
Всех приветствую. Продолжаем изучение языка MQL4.
В прошлый раз мы рассмотрели целые типы данных, а сегодня поговорим о вещественных типах. Они предназначены для того, чтобы хранить не только целую, но и дробную часть числа. Поэтому они гораздо более универсальны, чем целые типы данных. В плане математических операций с целыми числами мы ограничены тем, что результат обязательно должен быть целым, иначе мы потеряем дробную часть числа. По этой причине целые типы чаще всего применяются для нумерации элементов массива и для всевозможных счётчиков, когда нам необходимо посчитать сколько раз выполнилось какое-либо условие. Например, перебрать все активные ордера и посчитать сколько из них каждого типа: (buy, sell, buy stop, buy limit, sell stop, sell limit).
Вещественные типы в этом смысле могут применяться гораздо шире, в самых разных математических операциях, потому что хранят целую и дробную часть числа.
Вещественных типов данных в языке MQL4 (и в MQL5 тоже) всего 2:
--переменные keyRateCB = 7.5 classCode = "TQOB" function CreateTable() t_id = AllocTable() AddColumn(t_id, 0, "Бумага", true, QTABLE_STRING_TYPE, 15) AddColumn(t_id, 1, "Цена", true, QTABLE_DOUBLE_TYPE, 15) AddColumn(t_id, 2, "Доходность, %", true, QTABLE_DOUBLE_TYPE, 15) AddColumn(t_id, 3, "Дюрация, лет", true, QTABLE_DOUBLE_TYPE, 15) AddColumn(t_id, 4, "Купон, %", true, QTABLE_DOUBLE_TYPE, 15) AddColumn(t_id, 5, "Премия к ЦБ, бп", true, QTABLE_INT_TYPE, 15) AddColumn(t_id, 6, "Погашение", true, QTABLE_STRING_TYPE, 15) t = CreateWindow(t_id) SetWindowCaption(t_id, "ОФЗ") end function string.split(str, sep) local fields = {} str:gsub(string.format("([^%s]+)", sep), function(f_c) fields[#fields + 1] = f_c end) return fields end function getParamNumber(code, param) return tonumber(getParamEx(classCode, code, param).param_value) end function formatData(prm) return string.format("%02d.%02d.%04d", prm%100, (prm%10000)/100, prm/10000) end CreateTable() arr = {} sec_list = getClassSecurities(classCode) sec_listTable = string.split(sec_list, ',') j = 0 for i = 1, #sec_listTable do secCode = sec_listTable[i] securityInfo = getSecurityInfo(classCode, secCode) short_name = securityInfo.short_name if short_name:find("ОФЗ 26") ~= nil then j = j + 1 r = {} r["short_name"] = short_name r["price"] = getParamNumber(securityInfo.code, "PREVPRICE") r["yield"] = getParamNumber(securityInfo.code, "YIELD") r["duration"] = getParamNumber(securityInfo.code, "DURATION")/365 couponvalue = getParamNumber(securityInfo.code, "COUPONVALUE") couponperiod = getParamNumber(securityInfo.code, "COUPONPERIOD") r["coupon"] = ((365/couponperiod) * couponvalue)/10 r["bonus"] = (r["yield"] - keyRateCB)*100 r["mat_date"] = getParamNumber(securityInfo.code, "MAT_DATE") table.insert(arr, j, r) end end table.sort(arr, function(a,b) return a["duration"] < b["duration"] end) for j = 1, #arr do row = InsertRow(t_id, -1) SetCell(t_id, row, 0, arr[j]["short_name"]) price = arr[j]["price"] SetCell(t_id, row, 1, string.format("%.2f", price), price) yield = arr[j]["yield"] SetCell(t_id, row, 2, string.format("%.2f", yield), yield) duration = arr[j]["duration"] SetCell(t_id, row, 3, string.format("%.2f", duration), duration) coupon = arr[j]["coupon"] SetCell(t_id, row, 4, string.format("%.2f", coupon), coupon) bonus = arr[j]["bonus"] SetCell(t_id, row, 5, string.format("%.0f", bonus), bonus) mat_date = arr[j]["mat_date"] SetCell(t_id, row, 6, formatData(mat_date), mat_date) end
На 31 марта 2018 г. 370 брокеров. Объем клиентских активов 3.9 трлн. руб. или 4.3% ВВП.
Количество клиентов 1.5 млн. 75% из них работают через Топ 5 брокеров.
За 2 года количество клиентов выросла на 400 000 лиц
Доля денежных средств в портфелях клиентов – физических лиц снизилась с 17 до 9%.
68% клиентов брокеров имеют размер портфеля, близкий к нулю.
Средневзвешенный размер портфеля оставшихся 32% клиентов составляет 4 млн рублей
Основную часть доходов брокеры получают не от комиссионных доходов, а от операций с финансовыми инструментами
__________________
Не богатый инвестор. Размер портфелей клиентов
И самое интересное...
Без лоха и жизнь плоха. Дали в ДУ ИИС, а управляющие, в свою очередь, разместили деньги в ПИФ'ы (65% средств)