Блог им. Siroeskin

Для QUIK индикатор Parabolik учитывающий волатильность

   Добавляю код сделанного мной индикатора Parabolik в котором параметр ускорение зависит от волатильности. Чем больше волатильность, тем больше увеличивается ускорение и индикатор быстрее «догоняет» цену. Подобные есть на просторах интернета для метатрейдера (и не бесплатно), для квика не встречал.

 Для QUIK индикатор Parabolik учитывающий волатильность

Видно, что он дает меньше перескоков (красный), чем обычный Parabolik (черный). Хорошо себя зарекомендовал для выходов из позиций, открытых по тренду. На вход в боковике конечно будет давать ложные сигналы, как и обычный Parabolik (но меньше!), создатель которого не рекомендовал только его использовать для открытия позиций.

Код индикатора:

Settings = {
Name = "Parabolic ATR",
Period_ATR=14,
line = {{
                Name = "Parabolic ATR",
                Type = TYPE_POINT,
                Color = RGB(255,0,0),
                Width = 2
                }
                }
}

old_idx=0
long=false
short=false
revers=false


function Init()
        return 1
end

function OnCalculate(idx)
if idx<Settings.Period_ATR then
return nil
else
if idx==Settings.Period_ATR  then
psar={}
psar[idx]=L(idx)
long=true
hmax=H(idx)
per_ATR=Settings.Period_ATR
local TR=0
for js=(idx-per_ATR),idx-1 do
TR=(TR+H(js)-L(js))
end
Old_ATR=TR/per_ATR
revers=true
else

if idx~=old_idx then
local TR=0
for js=(idx-per_ATR),idx-1 do
TR=(TR+H(js)-L(js))
end
local ATR=TR/per_ATR
af=ATR/(Old_ATR+ATR)
af=af/10
Old_ATR=ATR
if long then
if hmax<H(idx-1) then
hmax=H(idx-1)
end
psar[idx]=psar[idx-1]+af*(hmax-psar[idx-1])
end
if short then
if lmin>L(idx-1) then
lmin=L(idx-1)
end
psar[idx]=psar[idx-1]+af*(lmin-psar[idx-1])
end
revers=true
end
if long and L(idx)<psar[idx] and revers then
psar[idx]=hmax
short=true
long=false
lmin=L(idx)
af=Step
revers=false
end
if short and H(idx)>psar[idx] and revers then
psar[idx]=lmin
long=true
short=false
hmax=H(idx)
af=Step
revers=false
end
end

old_idx=idx

return psar[idx]
end
end


Добавляется в Quik как индикатор, надо скопировать код в блокнот (например) и сохранить с расширением .lua (можно так: Ind_Parabolik.lua) в папке LuaIndicators в Quik, если папки LuaIndicators нет, то создать ее в папке Quik именно с именем LuaIndicators.

В меню индикаторов появится Parabolic ATR.

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

   Какие вопросы по индикаторам, роботам и прибамбасам для QUIK, отвечу.

Профитной торговли!

★59
49 комментариев
не появляется в индикаторах
avatar
APACHE, проверил сейчас — работает. Сохраняли в папке LuaIndicators с расширением .lua?
avatar
СыроеШкин, а версия Quik влияет? 6.12.0.31
avatar
APACHE, наврядли. У меня на 6х работает. Проверьте, иногда при копипасте кавычки из " превращаются в треугольные (нет на планшете таких), ну как в ворде. Надо тогда исправить на ". А лучше удалить тот файл и попробовать заново через блокнот.
avatar
СыроеШкин, все заново сделал получилось, первый раз почему то файл получился 0 килобайт, сейчас все ок
avatar
APACHE, Ок! Пользуйтесь наздоровье!
avatar
вроде очень похоже, если шаг у квиковского параболика увеличить — вы бы сравнили не с тем же шагом, а визуально близким
avatar
.i., тут шаг считается автоматически, похож бывает на штатный то с одним периодом, то с другим. Но больше да, похож на «малошаговый».
avatar
Хорошая работа!
Молодец!
kbrobot.ru, спасибо!
avatar
управляется предыдущим значением сглаженного  на 14 атр.
А оптимизировали на каких инструментах — секрет?
avatar
vladimir doigt, параметр 14 просто произвольный, ну почти — четырнадцать часов торговли на срочке.
avatar
СыроеШкин, 
Спасибо автору.
Интересная жила.
avatar
спасибо
avatar
похож на индикатор АМА
avatar
kaliostro, да идеи схожие, управлять параметрами через волу.
avatar

   Какие вопросы по индикаторам, роботам и прибамбасам для QUIK, отвечу.

Как можно сделать, чтобы в таблице видеть разницу между Си и USDRUB_TOM?
Анатолий И., надо написать скрипт считающий спред с учетом количества лотов в Си, он создаст таблицу и выведет инфу. Можно сделать и графическое отображение спреда. Это вполне реально.
avatar
СыроеШкин, значит только в отдельную специальную таблицу можно будет ввести значение получается.
Анатолий И., вывести? Эта таблица будет как квиковская. Можно также в текстовый или эксельский файл. Или организовать автоторговлю по полученным данным тем же скриптом в квике. В любую штатную таблицу вывод не пойдет. С вводом данных тоже масса вариантов.
avatar
af=ATR/(Old_ATR+ATR) <br>//- дошло - в одну сторону - полволатильности... ;-))
avatar
vladimir doigt, можно еще убыстрить 
af=(H(idx-1)-L(idx-1))/(H(idx-1)-L(idx-1)+ATR)
т.е. диапазон предыдущего бара противопоставить ATR (бомба?)
avatar
СыроеШкин,
Недоразумение, вероятно, я хотел сказать — что не понял сразу, что Вы испльзуете половину АТР  параболик ведь в одну сторону считается, поэтому половина АТР, я сразу не понял.
Просто в текст не удалось зайти, а то можно понять что я подкалываю, а это не так — я просто разбирался.
А что означает «Бомба»?
avatar
vladimir doigt, да все верно. af получается от 0 до единицы, чаще вокруг 0.5
Не думаю что подкалываете. А если заменить рассчет af в коде на тот что выше я написал параметры изменятся, реакция станет быстрей. Только af=af/10 надо оставить, это приведение к разряду для параболика.
avatar
У меня индикатор так и не появился после всех манипуляций. Даже в списке отсутствует.
avatar
golubevart, скорее всего ошибка при копировании, попробуйте еще раз через блокнот, предварительно удалив нерабочий файл. Проконтролируйте кавычки, как выше писал.
avatar
индикатор ахахах… наркомания не лечится, есть только фазы ремиссии а потом снова срывы
avatar
напишите плиз как для мт4 называется такой тип параболика. спасибо
avatar
Trader-profit, посмотрите  www.mql5.com/ru/code/8686
Или адаптивный параболик
avatar
СыроеШкин, Спасибо.
avatar
СыроеШкин. Спасибо Вам большое за предоставленные индикаторы.
Доброго дня.
На часовом графике не появляется.
Если уменьшить время выскакивает следующая ошибка
C:\SBERBANK\QUIK_SMS\LuaIndicators\Ind_Parabolik.lua:60: attempt to perform arithmetic on field '?' (a nil value)
В чем ошибка не подскажите?
avatar
Вот такая ошибка выдаётся
:47: attempt to perform arithmetic on global 'Old_ATR' (a nil value)
Версия 7.12.1.10
Выдаёт такую же ошибку:
47: attempt to perform arithmetic on global 'Old_ATR' (a nil value)
avatar
Деление на «0» не проверяется.
Из-за этого на некоторых графиках не полностью отражается индикатор, т.к. могут идти подряд N=Period_ATR свечей у которых H=L.
Из-за этого TR=0 -> ATR=0 -> Old_ATR=0 и происходит деление на «0»

Что нужно сделать:
строку af=ATR/(Old_ATR+ATR)

Необходимо заменить на:
af=0
if Old_ATR+ATR>0 then
af=ATR/(Old_ATR+ATR)
end
avatar
robot_bsk, ваше решение не работает
avatar
AmiGator, не информативно. Что именно не работает? Есть ли ошибки? Если есть то какие? Какой инструмент? Какой таймфрейм?
avatar
robot_bsk, attempt to perform arithmetic on a nil value, любой, любой
avatar
AmiGator, Замените строчку
for js=(idx-per_ATR),idx-1 do
на
for js=(idx-per_ATR+1),idx do




avatar

Здравствуйте. Спасибо за статью.
Обратил внимание на то, что переменная Step — нигде не инициализируется, но при этом она используется.

Не подскажите, как это работает?
Я не эксперт в qlua, но сейчас похоже, что инструкция «af=Step» — это простое зануление

avatar
Также выдает ошибку
47: attempt to perform arithmetic on global 'Old_ATR' (a nil value)
попробовал все выше исправления, не хочет запускатся
avatar
DJ, строчек for js=(idx-per_ATR),idx-1 do  в коде 2шт. Попробуйте заменить обе
avatar
robot_bsk, огромное спасибо,  заработало!!!
avatar
Проверил, работает, только на ТФ 1 час не работает. Подскажите что подкрутить?
avatar
я был в тех местах где побывали мы, и по горам рядом с боржоми и в Тбилиси и в Ахалцихе, правда еще в Батуми, и сейчас в Алании)
avatar
Пасаны, а где взять код индикатора демаркер в инете на луа для квика
avatar
Огромное спасибо всем ребятам которые скорректировали код. у меня заработал после двух исправление что советовали в конце ветки
avatar

теги блога СыроеШкин

....все тэги



UPDONW
Новый дизайн