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

по

В нашей действительности люди много чего не замечают, а ведь это наша жизнь, и она проходит...

    • 18 сентября 2019, 22:59
    • |
    • Arslan
  • Еще
Заранее извиняюсь за копипасту.

Продал машину — плати налог. Купил машину — плати налог. Осаго плати. Техосмотр плати.
На юг собрался? — плати за дорогу и туристический сбор.
Купил бензин — плати за акциз и не забудь налог.
Масло решил поменять? — плати акциз.
Продукты? — привет НДС.
Квартира? — налог. Хоть и маленький пока.

Куришь? Пьёшь? И так здоровью вредишь, значит до пенсии не доживешь — денег государству съэкономишь, но за свой счёт.
Плати акциз.

Ах, тебя цена одежды и её качество не устраивает? Заказываешь из загнивающего запада! Вот тебе ограничение на закуп без дополнительных налогов.

Но ты же предприниматель! У тебя, сука, есть точка продаж! И она за пару лет подызносилась — и вот ты решаешь перестелить полы в тт чтобы бабульки «прямо в ад на*уй» не провалились и покупаешь куб досок в леруа, е*ать его в сраку мерлен.

Но ты же ипешник, а б2б всегда пойдёт на встречу и даст скидку брату бизнесмену. Не то что этой челяди–рознице. И вот ты доволен, купил стройматериалы со скидкой аж 15%.

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

Грааль так рядом

Нашёл интересный пост на Смарт-Лабе и считаю, что таким надо присваивать звание «Золотой пост».
https://smart-lab.ru/blog/465713.php

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

Кто бы мог подумать, что обычна стратегия по простым правилам на Боллинжерах может дать, на мой взгляд, такие хорошие результаты!

фРТС
период теста 10 лет (без А/Б)
ТФ М15
Вход по закреплению свечи по линиям Боллинджера
стоп — тянется

Грааль так рядом
Грааль так рядом

( Читать дальше )
  • обсудить на форуме:
  • TSLab

Как посчитать популярные мультипликаторы без знания МСФО за минуту. Очень полезные короткие видео для начинающих.

Все на понятном и доступном языке. 
Видео разбиты на серии  стиле «а как посчитать…?» знание МСФО не требуется! К концу, вы научитесь строить и считать большинство мультов за минуту и не больше. Видосики короткие и без воды.
Как посчитать популярные мультипликаторы без знания МСФО за минуту. Очень полезные короткие видео для начинающих.
Рекомендуем самостоятельно собрать файл или просто скачать готовый пример из видео. 
Темы: 
1. Как посчитать, сколько годовых прибылей стоит компания. 
2. Как посчитать чистый долг. 
3. Как посчитать полную стоимость компании EV. 
4. Что такое EBITDA и как это считать. 
5. Как посчитать свободный денежный поток. 
6. Как посчитать мультипликатор P/BV. 
7. Как построить пузырьковую диаграмму. 
Внимание! Данный метод не является методическим пособием или последней инстанцией. Сообщество не несет ответственности за все сказанное в данном видео и тем более за сделки, заключенные на его основе.  
Данный метод является поверхностным и упрощенным для понимания начинающих инвесторов.

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

Модель, которая даёт прибыль в 80% случаев

Рассказываю про одну из моих любимых формаций или моделей в трейдинге, которая позволяет зарабатывать на любой фазе рынка. Я назвал эту модель «Тест экстремума». Примеры её использования на графиках под видео



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

Индикатор наклонных уровней

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

Индикатор наклонных уровней

--[[
параметры: 
Procent - процент зигзага 
--]]
Settings={
Name="ZIGZAGPROF",
Procent=1,
    line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 0)
                    },
                    {  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    }							
                }
}

function Init()
  
  y1 = nil
  y2 = nil
  x1 = 1
  x2 = 1
    
  return 1
  
end

function OnCalculate(index)

  de = Settings.Procent
  
  delt = 0.01

  vl = C(index)
  if index == 1 then 
	y1 = vl
    y2 = vl
  else   
	  if C(index) > y1*(1+de/100) and y1 < y2 then 
	    x2 = x1
	    y2 = y1	
	    x1 = index 
	    y1 = C(index)	        
	  end 	
	  if C(index) > y1 and C(index) > y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 
	  	  		
	  if C(index) < y1*(1-de/100) and y1 > y2 then 
	    x2 = x1
	    y2 = y1
	    x1 = index 
	    y1 = C(index)  		
	  end 	
	  if C(index) < y1 and C(index) < y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 	  	  		
	end 	
  
  if x1 ~= index then 
    curfrom = x1
	curto = index
  else 
    curfrom = x2
	curto = x1
  end 
 
 --[[
  if curto ~= curfrom and curfrom ~= nil and curto ~= nil then 
    if C(curto) ~= nil and C(curfrom) ~= nil then 
      k = (C(curto)- C(curfrom))/(curto- curfrom)  
      for i = curfrom, index  do
        curv = i*k + C(curto) - curto*k  		          
	    SetValue(i, 1, curv)
      end   	
	end 
  end
--]]
    
    lev = nil
	if x1 ~= x2 then  
     
	
	k = (C(x1)- C(x2))/(x1- x2)    
	maxd = 0
    for i = x2, x1  do
      
	  lev = i*k + C(x1) - x1*k  		
	  
	  if  C(x2) > C(x1) and lev <= H(i) 
	  then 
	    if maxd < H(i) - lev  then 
          maxd = H(i) - lev 
		end
        --maxd = 0.5		
      end 
	  
      if  C(x2) < C(x1) and lev >= L(i) 
	  then 
	    if maxd > L(i) - lev  then 
          maxd = L(i) - lev
		end 
		--maxd = -0.5
      end 	  
	  
    end   	
      
    lev = nil 
    --[[if x1 < index 
	  and 
	  (
	  C(x2) > C(x1) and C(x1) < C(index) 
      or 
      C(x2) < C(x1) and C(x1) > C(index) 	  
	 )
	then --]]
      lev = 
	    index*k + C(x1) - x1*k + 
		maxd
	--end   
    
	  
	  
	--[[  
	
	map = 10
	lev = 0
	if index-map+1 > 0 then 
      for i = index-map+1, index  do
        lev = lev + C(i)
      end   		
	  lev = lev/map
	  ma = lev
	end
	
	map = 30
	lev2 = 0
	if index-map+1 > 0 then 
      for i = index-map+1, index  do
        lev2 = lev2 + C(i)
      end   		
	  lev2 = lev2/map
	  ma2 = lev2
	end	

	
	if 
	  C(x2) > C(x1) and C(x1) < C(index) and C(index) > lev and C(index) - C(x1) > C(index)*delt
	  or 
	  C(x2) > C(x1) and C(x1) < C(index) and C(index) > lev2 
	then 
	  lev = C(x1)--*(1-delt)
	  prev = lev        
	else  	
	  if 
	    C(x2) < C(x1) and C(x1) > C(index) and C(index) < lev and C(x1) - C(index) > C(index)*delt
	    or
	    C(x2) < C(x1) and C(x1) > C(index) and C(index) < lev2 
	  then 
	    lev = C(x1)--*(1+delt)
	    prev = lev
	  else
        lev = lev2  
	  end		
    end	

	if 
	  C(x1) > C(x2) and ( lev < C(index) or prev == C(x2) )
	then 
	  lev = C(x2)--*(1+delt)
	  prev = lev
	end
	
	if
	  C(x1) < C(x2) and ( lev > C(index) or prev == C(x2) )
	then 
	  lev = C(x2)--*(1-delt)
	  prev = lev
	end	
	
    if C(x1) < C(x2) and ( lev < C(index) or prev == C(x1) )
	then         	  
	  lev = C(x1)
	  prev = lev
    end
	  
    if C(x1) > C(x2) and ( lev > C(index) or prev == C(x1) ) 
	then         	  
	  lev = C(x1)
	  prev = lev       		
	end
	 --]] 

	
  end   
  
  return  lev
 
  
end



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 методы). Однако, такой подход, несмотря на все свои преимущества (скорость, точность) имеет ряд больших недостатков – отсутствие универсальности моделей в результате проблем «переобучения»  (точной настройки на определённые типы рынков и временные интервалы) и сложность интерпретации полученных композиций.

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



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

Выбор рабочего таймфрейма

    • 19 августа 2019, 19:09
    • |
    • AlexChi
  • Еще

Введение

Если вы торгуете на фондовом рынке уже не первый год, то не могли не заметить, что в последнее время резко увеличилась геополитическая нестабильность и так называемая “дерганность” рынка. Санкции, торговые войны и твиты Трампа приводят к резкому и неожиданному росту волатильности и частой смене текущей торговой тенденции.

Мне все это знакомо не понаслышке. Торгуя по системе BWS уже не первый год, я могу сделать некоторые выводы о том, как изменилась доходность торговых систем на различных интервалах от дневного до годового.

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

Необходимость ограничения убытков



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

Отчет о движении средств на брокерском счете

Добрый день!

С 1 января 2020 года каждый инвестор, который имеет брокерский счет у зарубежного брокера, обязан будет сдавать Отчет о движении денежных средств. Правильно называется такой документ – «Отчет о движении средств физического лица – резидента по счету (вкладу) в банке за пределами территории Российской Федерации».

Все дело в том, что в Федеральный закон «О валютном регулировании и валютном контроле» были внесены изменения, которые вступают в силу с нового года (изменения вносятся Федеральным законом от 02.08.2019 г. № 265-ФЗ).

В частности, изменения коснулись статьи 12 указанного закона. Посмотрите ниже на фото, как изменилось название статьи…

Было
Отчет о движении средств на брокерском счете

Стало
Отчет о движении средств на брокерском счете



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

Правила работы с банками.

Тут в личку спрашивают, как мы работаем с банками. Возможно кому то еще пригодится. Речь ниже с позиции вкладов.


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

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

В правилах банки обычно пишут, что могут их поменять в любой момент в одностороннем порядке. Это противоречит судебной практики и законодательству (ст 450 ГК РФ), банк обязан в письменном виде донести до клиента информацию об изменении от тарифов до условии, т.к согласно

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

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