Избранное трейдера Dmitryy

по

Пенсионный фонд здорового человека vs Пенсионный фонд курильщика. Часть 1 (Норвежская)

Часть 2 — тут
Хотел бы поговорить ещё на больную тему пенсий и почему самостоятельное накопление на пенсию смолоду – рациональное решение для любого жителя России.
Вряд ли для опытных пользователей Смарт-Лаба я здесь смогу открыть Америку, но в части 2, которую допишу уже завтра, у меня будет много вопросов к вам, уважаемые опытные пользователи Смарт-Лаба!

Есть такая маленькая, но гордая страна – Норвегия. Нам она известна в первую очередь викингами, да и звёздами лыжных видов спорта, в особенности биатлона. Возможно, для многих не секрет, что это страна, стоящая на первом месте в списке стран по Индексу человеческого развития (сочетание уровня жизни, грамотности, образованности и долголетия).

Норвегия – северная страна с ужасным климатом, основу экономики которой составляет добыча нефти (ничто не напоминает?..), причем проблема сырьевой направленности экономики и зависимости её от цены на нефть там ещё более актуальна, они добывают в 4 раза больше нефти на душу населения, чем мы.



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

Camarilla Equation. Индикатор для QUIK. Часть 3.

    • 22 августа 2019, 12:29
    • |
    • XXM
  • Еще
Получил такое сообщение:

привет!
у меня в квике стояла камарилла аж с 2014 года, когда вы выложили здесь этот индикатор.
квик обновился до 8 и камарилла пропала.
это не исправить?

Глянул по тэгу https://smart-lab.ru/tag/Camarilla/ и вот они:
1. Camarilla Equation. Индикатор для QUIK.
2. Camarilla Equation. Индикатор для QUIK. Часть 2.

Выкладываю вариант, не зависящий от обновлений QUIK.

-- Camarilla.lua
Settings={
	Name = "Camarilla",
	period = 'D',
	line =
		{
			{Name = "S5", Color = RGB(255, 0, 0), Type = 1, Width = 2},
			{Name = "S4", Color = RGB(255, 165, 0), Type = 1, Width = 2},
			{Name = "S3", Color = RGB(255, 255, 0), Type = 1, Width = 2},
			{Name = "PP", Color = RGB(0, 255, 0), Type = 1, Width = 2},
			{Name = "R3", Color = RGB(0, 191, 255), Type = 1, Width = 2},
			{Name = "R4", Color = RGB(0, 0, 255), Type = 1, Width = 2},
			{Name = "R5", Color = RGB(139, 0, 255), Type = 1, Width = 2},
		}
}

local math_floor = math.floor
local levels = 0
local ydH, ydL, ydC, ydO = {},{},{},{}
local PP, R3, R4, R5 = 0,0,0,0
local S3, S4, S5 = 0,0,0
	local delta = 0
	local cl = 0
local predThisDay=0
local function dTs(t) return 100*(100*t.year+t.month)+t.day; end
local OldDay = ''	-- для выделения начала торгового дня

function Init ()
	local t=getDataSourceInfo()
	local tt = t.interval
	if tt == -3 then 
		message('Месячный график не обрабатывается.',1)
		return 
	end
	return 7
end

function OnCalculate (index)
	local time tt=T(index); ---время из свечи
	--local ThisDay=dTs(tt)	-- дата в формате yyyyMMdd
	local tDay=dTs(tt)	-- дата в формате yyyyMMdd
	local ThisDay = tDay
	if Settings.period == 'W' then
		ThisDay=tt.week_day	-- номер недели
	end
	if index == 1 then
		--message('First ThisDay = '..tostring(ThisDay),1)
		local t=getDataSourceInfo()
		--7.2.5 Функция предназначена для получения информации об источнике данных для индикатора.
		local scale = getSecurityInfo(t.class_code, t.sec_code).scale	--	NUMBER, Количество значащих цифр после запятой
		mul = 10^scale  -- возведение в степень
		local tt = t.interval
		if tt == -3 then tt = 'месяц' 
		elseif tt == -2 then tt = 'неделя'
		elseif tt == -1 then tt = 'день' 
		else
			tt = tt..' мин.'
		end
		--message(t.sec_code..'('..t.class_code..'), цифр после запятой: '..scale..', mul = '..mul..', дата = '..ThisDay,1)
		levels = levels + 1
		if ThisDay ~= OldDay then
			OldDay = ThisDay
		end	
		predThisDay = ThisDay
		--
		delta = H(index) - L(index)
		cl = C(index)
		R5 = (H(index) / L(index))*cl
		calcLevels(index)
		local per = 'daily'
		if Settings.period == 'W' then
			per = 'weekly'
		end
		message('Camarilla '..per..', Т = '..tt..', © xsharp.ru 20.06.2015', 1)
		return
	end
	if Settings.period == 'W' then
		if ThisDay < OldDay then	-- для неделек
			OldDay = OldDay + 1
			if OldDay ~= ThisDay then
				OldDay = ThisDay
			end
			levels = levels + 1
			delta = ydH[levels-1] - ydL[levels-1]
			cl = ydC[levels-1]
			R5 = (ydH[levels-1] / ydL[levels-1])*cl
			calcLevels(index)
			--if index<120 then
			--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
			--end
			predThisDay = ThisDay
		else
			if ThisDay ~=predThisDay then
				--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
				predThisDay = ThisDay
				OldDay = OldDay + 1
			end
			ThisDayF(index)
		end
	elseif Settings.period == 'D' then
		if ThisDay ~= OldDay then	-- для дневок
			OldDay = OldDay + 1
			if OldDay ~= ThisDay then
				OldDay = ThisDay
			end
			levels = levels + 1
			delta = ydH[levels-1] - ydL[levels-1]
			cl = ydC[levels-1]
			R5 = (ydH[levels-1] / ydL[levels-1])*cl
			calcLevels(index)
			--if index<120 then
			--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
			--end
			predThisDay = ThisDay
		else
			if ThisDay ~=predThisDay then
				--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
				predThisDay = ThisDay
				OldDay = OldDay + 1
			end
			ThisDayF(index)
		end
	elseif Settings.period == 'H4' then
		if ThisDay ~= OldDay then	-- для дневок
			OldDay = OldDay + 1
			if OldDay ~= ThisDay then
				OldDay = ThisDay
			end
			levels = levels + 1
			delta = ydH[levels-1] - ydL[levels-1]
			cl = ydC[levels-1]
			R5 = (ydH[levels-1] / ydL[levels-1])*cl
			calcLevels(index)
			--if index<120 then
			--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
			--end
			predThisDay = ThisDay
		else
			if ThisDay ~=predThisDay then
				--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
				predThisDay = ThisDay
				OldDay = OldDay + 1
			end
			ThisDayF(index)
		end
	end
	return S5, S4, S3, cl, R3, R4, R5
end

function round(value)
	return math_floor(value*mul + 0.5) / mul
end

function ThisDayF(index)
	ydC[levels] = C(index)
	if H(index) > ydH[levels] then
		ydH[levels] = H(index)
	end
	if L(index) < ydL[levels] then
		ydL[levels] = L(index)
	end
end

function calcLevels(index)
	ydO[levels] = O(index)
	ydH[levels] = H(index)
	ydL[levels] = L(index)
	ydC[levels] = C(index)
	--
	R3 = cl + delta * 1.1/4
	R4 = cl + delta * 1.1/2
	--
	S3 = cl - delta * 1.1/4
	S4 = cl - delta * 1.1/2
	S5 = cl - (R5-cl)
	--
	R5 = round(R5)
	R4 = round(R4)
	R3 = round(R3)
	S3 = round(S3)
	S4 = round(S4)
	S5 = round(S5)
end
  • обсудить на форуме:
  • QUIK

Портфельная оптимизация как бустинг на «слабых» моделях-3

Устойчивые долгосрочные модели


В предыдущих частях (часть 1, часть 2) мы рассмотрели построение композитных систем оценок ценных бумаг, построенных при помощи распространённых средств машинного обучения (Bag/Boost методы). Однако, такой подход, несмотря на все свои преимущества (скорость, точность) имеет ряд больших недостатков – отсутствие универсальности моделей в результате проблем «переобучения»  (точной настройки на определённые типы рынков и временные интервалы) и сложность интерпретации полученных композиций.

В результате решения этих проблем мы разработали базовую модель на основе наших представлений о стохастических дифференциальных уравнениях с квантовыми скачками, образующих улыбку волатильности. Эта макромодель получила в наших исследованиях наиболее полную микроскопическую интерпретацию.



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

Еще раз про уведомление ФНС о счете у зарубежного брокера

Зашел в личный кабинет налогоплатильщика. Там есть такая закладка
Еще раз про уведомление ФНС о счете у зарубежного брокера

далее нужно указать признак уведомления

Еще раз про уведомление ФНС о счете у зарубежного брокера

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

Скоро рецессия? Что покупать?

В декабре я написал большой текст почему я покупаю трежерис. 
 
Главная мысль — главный драйвер ставок на долгосрочные облигации — изменение роста экономика и инфляции.
Пик цикла пришёлся на август 2018:

Скоро рецессия? Что покупать?

Поэтому акции с того времени вернули около 0%, а «скучные» облигации, в виде TLT вернули больше 20% без учёта дивидендов:
Скоро рецессия? Что покупать?

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

БАБЛО ИЗ ВОЗДУХА или теория портфельной ребалансировки.

 

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

БАБЛО ИЗ ВОЗДУХА или теория портфельной ребалансировки.

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

Таблицы Google с кучей полезных формул и информацией об индексах ММВБ, S&P500, Nasdaq и проч. от 40-летнего "пенсионера"

Я тут год назад решил инвестировать с целью достигнуть пассивного дохода, равного моим текущим расходам на жизнь — начал все активы и накопления перекидывать в фондовый рынок, всё заработанное тоже туда же. Так как я придерживаюсь мнения, что при моих входных данных рынок я все равно не обгоню, решил инвестировать «в индексы».
ETF конечно инструмент хороший, но не использую его по ряду причин:
1. Комиссии на российских ETF оставляют желать лучшего.
2. Не совсем понятная для меня структура управления опять же русскими операторами — ну это субъективно, ни в коем случае не рассматривать как претензию.
3. и главное. Непрямое владение акциями/компаниями.

Поэтому для себя потратил месяц свободного времени по вечерам и запилил такую табличку по индексу ММВБ:

1) На главной страничке вбивается в зеленое поле Цель (капитал), будь то 100 тыс. р., будь то миллиард. Все остальные поля на странице считаются автоматически.
Таблицы Google с кучей полезных формул и информацией об индексах ММВБ, S&P500, Nasdaq и проч. от 40-летнего "пенсионера"

2) На второй страничке весь индекс ММВБ (40 тикеров), +их вес в индексе на данный момент. Цена, Изм., P/E, EPS — все тянется с Google Finance, все это динамические значения и обновляются сами по себе. «Акций купить» — это сколько надо купить например Яндекса на 3,3% от суммы запланированного капитала (такой же %, как и в индексе). «Куплено» — тянется из пункта 3 (читай ниже). "% готово" — сколько собственно куплено, у меня например можно увидеть, что я люблю наших металлургов больше, чем их любит индекс мосбиржи. По дивидендам информация обновляется со Смарт-Лаба.

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

Interactuve Brokers. Вопросы отбора инструмента по ликвидности

Коллеги, всем добра! 
При работе на Мосбирже вопросов по ликвидности инструментов применительно к опционной торговле как правило не возникает — есть пара-тройка ликвидного инструментария со своей спецификой, остальной инструментарий нужно рассматривать с осторожностью.
При выходе на зарубежный рынок, трейдер сталкивается с тем, что торгуется колоссальное количество инструментария, включая опционные серии. Соответственно, остро встает вопрос использования скриннеров для отбора инструментов с хорошей ликвидностью по опционам. На данный момент для себя я выделил 2 скриннера - barchart.com и finviz.com, первый привлекает солидностью, второй  нравится своими фишками с графическим отображением информации. 
Ну и теперь просьба дать советы, по каким параметрам можно проводить отбор инструментов, дабы получить на выходе высоколиквидный инструментарий для опционной торговли. И второй вопрос — можно каким-то образом настроить отбор на этих двух площадках, чтобы наборы отобранных на выходе инструментов бились?

С уважением! ББ


Расчёт размера плеч для фьючерсов Мосбиржи. Проясняю раз и навсегда.

Столкнулся с тем, что нигде ни на смартлабе, ни в интернетах нет информации ни о размере плеч для фьючерсов РФ, ни о формуле расчета.
Сам долго мучился с расчетами и решил оставить это здесь. Надеюсь кому-нибудь пригодится.


Размер плеча на 15.07.2019 на фьючерсном рынке
Надо понимать, что размер плеча меняется и зависит от размера ГО и курса валют

Рублевые инструменты
Формула расчета плеча: Стоимость актива /ГО
В рублевых инструментах стоимость актива не надо умножать на лот, так как цена актива уже умножена на лот.

SBRF  (24176/4335)      =5
LKOH  (52876/9604)      =5
VTB    (4518/803)          =5
GAZP  (23478/4467)      =5
SI       (63400/4236)      = 14
EU      (71717/4770)      =15

Валютные инструменты
Формула расчета: Стоимость актива * лот * цену доллара /ГО

GOLD  (1421,2*1*63,40/6695)       =13
BR      (66,79*10*63,40/4954)       =8
ED      (1,1339*1000*63,40/3253)  =22


С RI, все намного интересней)

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

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