Избранное трейдера 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
привет!
у меня в квике стояла камарилла аж с 2014 года, когда вы выложили здесь этот индикатор.
квик обновился до 8 и камарилла пропала.
это не исправить?
-- 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
Устойчивые долгосрочные модели
В предыдущих частях (часть 1, часть 2) мы рассмотрели построение композитных систем оценок ценных бумаг, построенных при помощи распространённых средств машинного обучения (Bag/Boost методы). Однако, такой подход, несмотря на все свои преимущества (скорость, точность) имеет ряд больших недостатков – отсутствие универсальности моделей в результате проблем «переобучения» (точной настройки на определённые типы рынков и временные интервалы) и сложность интерпретации полученных композиций.
В результате решения этих проблем мы разработали базовую модель на основе наших представлений о стохастических дифференциальных уравнениях с квантовыми скачками, образующих улыбку волатильности. Эта макромодель получила в наших исследованиях наиболее полную микроскопическую интерпретацию.
Введение
Если вы торгуете на фондовом рынке уже не первый год, то не могли не заметить, что в последнее время резко увеличилась геополитическая нестабильность и так называемая “дерганность” рынка. Санкции, торговые войны и твиты Трампа приводят к резкому и неожиданному росту волатильности и частой смене текущей торговой тенденции.
Мне все это знакомо не понаслышке. Торгуя по системе BWS уже не первый год, я могу сделать некоторые выводы о том, как изменилась доходность торговых систем на различных интервалах от дневного до годового.
В данной статье я хочу поделиться своими наблюдениями о том, как изменился рынок в последнее время, какие таймфреймы наиболее пострадали от геополитической нестабильности и какие таймфреймы стоит выбрать, чтобы попытаться снизить влияние этих геополитических факторов.
Необходимость ограничения убытков
Добрый день!
С 1 января 2020 года каждый инвестор, который имеет брокерский счет у зарубежного брокера, обязан будет сдавать Отчет о движении денежных средств. Правильно называется такой документ – «Отчет о движении средств физического лица – резидента по счету (вкладу) в банке за пределами территории Российской Федерации».
Все дело в том, что в Федеральный закон «О валютном регулировании и валютном контроле» были внесены изменения, которые вступают в силу с нового года (изменения вносятся Федеральным законом от 02.08.2019 г. № 265-ФЗ).
В частности, изменения коснулись статьи 12 указанного закона. Посмотрите ниже на фото, как изменилось название статьи…
Вам говорили о том, что на рынке есть доходность «из воздуха»? Скорее всего нет, а она есть. Сейчас, как всегда, четко и без воды, откроем все «тайны», которые никакие не тайны. Просто люди в индустрии хотят, чтобы вам казалось, что все это сложно и без них вам ну никак не обойтись. В реальности портфельных инвестиций, как правило, все сильно проще.
Очень часто приходится профессиональным налоговым юристам и консультантам сталкиваться с мнением, что они просто не понимают сложных схем продавцов «бумажного» НДС и поэтому не рекомендуют его применять. Ситуация как раз обратная, мы слишком хорошо понимаем (не все, конечно же, но большинство) всю внутреннюю «кухню» «бумажного» НДС. И именно поэтому не рекомендуем с ним связываться.
Налоговый эксперт Кирилл Соппа на своем канале в «Яндекс.Толк» представил разбор всех мифов и вопросов, касающихся схем по оптимизации НДС. Статья получилась большая, потому что мифов распространяется много. В связи с этим в начале в форме оглавления приведен список вопросов, которые разбираются в статье. Можно читать только то, что интересно, но лучше все же по порядку.