Избранное трейдера Vitastic
привет!
у меня в квике стояла камарилла аж с 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
Воодушевлённый статьёй с рекламой структурных продуктов на Хабре, адаптировал python-скрипт для их самостоятельного тестирования. Основная идея в том, что подобные продукты предлагают 100% защиту капитала. А учитывая 10 лет бычьего рынка, исторические показатели подобных продуктов одурманивают безрисковым раем.
Скрипт подойдёт для быстрого и понятного тестирования своих портфелей с ребалансировкой в разные периоды. Ну а кому-то данный инструмент может пригодиться для самостоятельного построения подобных стратегий. Их наипростейшей формы. Однако брокеры пишут, что это не каждому под силу.
Код выложен в GitHub в виде Jupyter-блокнота. Поехали!
19.06.2019
Создал стратегию «Бугорок09». Продал сентябрьские путы, в небольшом количестве. При увеличении IV буду добавляться.
Есть еще остаток второй стратегии, которая уже давно ведется, скрин не сделал.
20.06.2019.
В 18:10 выровнял дельту у обоих стратегий.
Большинство российских компаний платят дивиденды раз в год. Из-за этого некоторые акции целый год держать неинтересно, особенно, если вы купили их чисто ради дивидендов. Но в то же время часть компаний делится с акционерами прибылью раз в полгода или даже раз в квартал, как принято на западном фондовом рынке. В обзоре ниже – компании, которые стабильно выплачивают ежемесячные дивиденды – квартальные или полугодовые.
Компании, которые выплачивают квартальные дивиденды
Северсталь
НЛМК
ММК
Фосагро
Татнефть
Тинькофф
QIWI
Компании, выплачивающие дивиденды дважды в год
Акрон
ВСМПО-АВИСМА
Газпром нефть
Лукойл
Роснефть
Новатэк
Распадская
Магнит
Алроса
Норникель
Мосбиржа
МТС
Русагро
VEON
Планируют перейти на промежуточные дивиденды
ТМК
Сбербанк
Россети
Компании, которые выплачивают квартальные дивиденды
Во первых, Вам потребуются удобные среды разработки (программы, где Вы сможете писать свой код), о том, где их взять и как установить прочтите здесь. Для написания скриптов QLua Вам понадобится только Notepad++.
Во вторых, получите терминал QUIK с демо-счетом, можете получить его либо в компании Arqa (разработчик терминала) по данной ссылке, либо у практически любого брокера.
И в третьих, начинайте изучать QLua.
Рекомендую начать с раздела меню «QLua(Lua) основы», в частности со статей: «База скрипта в QLua (lua)» и «Функции обратного вызова, встроенные в QLua», остальные статьи данного раздела используйте как справочники при написании скрипта, в них практически к каждой функции есть пример кода с комментариями.
Следующим шагом переходите к разделу меню «QUIK + QLua(Lua)», в нем речь идет о том, как взаимодействует скрипт с терминалом QUIK, как обменивается данными, все так же с примерами и комментариями. Особое внимание обратите на раздел «Блоки кода», в особенности на статью в нем: «Пример простого торгового движка „Simple Engine“ QLua(Lua)», разобрав код которой Вам многое станет понятнее, хоть по началу такой подход может показаться несколько сложным.
20 мая стартует размещение 3 выпуска облигаций «ОбъединенияАгроЭлита». Размер выпуска 400 млн.р., купонная ставка 13,75%.
Один из случаев, когда уже крупный эмитент еще готов предлагать высокую купонную ставку.
«ОбъединениеАгроЭлита» является центром бизнеса красноярского вертикально-интегрированного холдинга Goldman Group (в этот же холдинг входит еще один эмитент облигаций – Торговый дом «Мясничий»).
Базовые финансовые показатели холдинга Goldman Group за 2018 год по РСБУ:
#эмитенты #мясничий #бэлтигранд #пионерлизинг
Меньше 30% выпуска осталось разместить Торговому дому «Мясничий» (Красноярск). Из проходящих сейчас размещений – Мясничий, Пионер-Лизинг, ЛК БЭЛТИ-ГРАНД – темпы размещения первого выше, чем второго и третьего вместе взятых. Или организаторы стараются, или рынок голосует за реальный сектор и величину бизнеса. Скорее, второе. Все же ставка Мясничего ниже, чем ставки Пионера и БЭЛТИ, срок тоже не короток.
Исходя из темпов, Мясничему осталось размещаться 2 недели, БЭЛТИ – около полутора месяцев, Пионеру – 4 месяца. Впрочем, это лукавая арифметика. Рынок может решить очень по-своему.
@AndreyHohrin
TELEGRAM t.me/probonds
YOUTUBE www.youtube.com/channel/UC0BqXPUXHD-ih_0wXgkD4Uw/featured