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

по

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

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

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

--[[
параметры: 
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 ГК РФ), банк обязан в письменном виде донести до клиента информацию об изменении от тарифов до условии, т.к согласно

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

Рецензия на книгу Александра Силаева "Деньги без дураков"

В начале зафиксирую свое отношение: эта книга из разряда тех, которые и стоит прочитать и должны быть прочитаны. И сразу добавлю: таких книг на русском языке не переведенных маловато. Потому эта книга ценна, а автор заслуживает уважения!

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

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

Чем еще хороша книга? Она не даёт однозначных советов и рецептов, т.е. читатель не ставится в зависимость от какого-то метода или индикатора. Единственное, на что Александр пытается направить читателя — мышление (критическое и практическое). Именно такое мышление точно нужно для успеха на рынке. Без него возможно разве что быть успешной обезьяной. Кстати, обратите внимание на ник смартлабовский ник Александра, в нем есть небольшая подсказка, на что он опирается или ориентируется в этом мышлении.

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

Список интересных телеграм каналов для трейдеров и инвесторов.

@MarketTwits – оперативные новости. 
@dohod – аналитическая компания. 
@AK47pfl – рынки Деньги Власть. 
@marketstoday – сборник обзоров со всех областей на английском языке. 
@sistema_news – новости от компании АФК Система. 
@sgcapital  — авторский канал об инвестициях. 
@oil_capital – аналитические обзоры нефтегазовой отрасли и комментарии ведущих экспертов. 
@globalcommodities — комментарии по сырьевым рынкам от УК «Система-Капитал». 
@glhfx — телеграмм-канал о глобальном рынке акций. Автор — Емельянов Никита, Head of Equities в УК «Система Капитал». 
@rusbiotech  — канал о биотехнологиях и фармацевтике. Автор Ушаков Андрей, старший аналитик УК «Система Капитал.» 
@bcs_express — новости про бизнес, акции, инвестиции. Аналитические обзоры и рекомендации от экспертов БКС Экспресс. 

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

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

 

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

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

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

Бэнкинг по-русски: «Бумажный» НДС. Все, что вы не знали и боялись спросить (c)


Автор Кирилл Соппа , эксперт по налоговой оптимизации, налоговый консультант.

Очень часто приходится профессиональным налоговым юристам и консультантам сталкиваться с мнением, что они просто не понимают сложных схем продавцов «бумажного» НДС и поэтому не рекомендуют его применять. Ситуация как раз обратная, мы слишком хорошо понимаем (не все, конечно же, но большинство) всю внутреннюю «кухню» «бумажного» НДС. И именно поэтому не рекомендуем с ним связываться.

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

  1. Почему НДС законно не оптимизируется в отличие от налога на прибыль, хотя принцип расчета у них вроде бы одинаковый — доходы минус расходы умножить на ставку — просто при расчете НДС не все расходы учитываются (только НДСные)?
  2. Как работает АСК НДС-2? Почему из-за нее невозможно оптимизировать НДС?
  3. Каким образом несмотря на работу АСК НДС-2 продолжают продавать «бумажный» НДС? «Обнальщики» придумали схему обхода АСК НДС-2?
  4. Почему сейчас «бумажный» НДС продается отдельно от кэша? Это делает схему безопасной?
  5. Что за различные законные схемы оптимизации НДС, которые продают на семинарах популярные налоговые консультанты?
  6. Продавцы «бумажного» НДС предлагают купить вычеты, которые не создают разрывов в АСК НДС-2. Якобы есть компании, у которых есть входящий НДС, но он им не нужен. Это правда?
  7. Продавцы «бумажного» НДС продают некий «экспортный» НДС, который тоже не формирует разрывов по АСК НДС-2. Его можно безопасно покупать?
  8. Реально ли вообще купить настоящие вычеты у продавцов «бумажного» НДС? Есть ли способы отделить реальные вычеты от искусственного «бумажного» НДС?
  9. Что будет если купить искусственный «бумажный» НДС?
  10. Пример реального кейса, когда мы по заказу клиента разбирали предложение продавца «бумажного» НДС.


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

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