Блог им. Siroeskin

Тюнинг для QUIK. Индикатор диагональных уровней.

Добавляю новую полезность для терминала QUIK.

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

А как же диагональные уровни? Их возможно построить вручную, сколько людей, столько мнений…

Сегодняшний индикатор показывает косые уровни, их можно интерпретировать как диагональные уровни поддержки-сопротиления, линии каналов и т.п.

 Тюнинг для QUIK. Индикатор диагональных уровней.
Тюнинг для QUIK. Индикатор диагональных уровней.
 

Принцип работы основан на исследованиях Томаса Демарка, которые он описал в своей книге «Теханализ – новая наука»

smart-lab.ru/books/tekhnicheskiy-analiz-novaya-nauka/

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

Несколько цитат из его книги:
«

 Тюнинг для QUIK. Индикатор диагональных уровней.
Рис. 1.3. Очевидно, что тенденцию в развитии цен можно графически представить различными прямыми линиями. Главным моментом является выбор из множества точек двух ключевых. Именно через них проходит истинная линия тренда.»

…«В самом начале своих исследований я пришел к заключению, что важные опорные ценовые точки предложения (supply price pivot points) определяются тогда, когда регистрируется ценовой максимум, выше которого цены не поднимались в день, непосредственно предшествующий данному, а также и в следующий за ним (см. рис. 1.4).

 Тюнинг для QUIK. Индикатор диагональных уровней.

 Для определения опорных ценовых точек спроса (demand price pivot points) использовалась обратная процедура; точка считалась опорной, если зафиксирован ценовой минимум, ниже которого цены не опускались в день, непосредственно предшествующий данному, а также и в следующий за ним (см. рис. 1.5). Это показалось мне вполне логичным: подобные точки появлялись в критические дни, являвшиеся поворотными пунктами в развитии тенденции.

 Тюнинг для QUIK. Индикатор диагональных уровней.

 »

Таким образом Демарк систематизирует нахождение опорных точек для построения линий, скромно назвав их TD-точки. Такие же опорные точки в квике определяются с помощью индикатора «fracals», имеют разный период в зависимости от количества баров окружающих экстремум. Например «fracals» вверх с периодом 5 – два бара перед максимальным хаем и два бара после него.

А вот пример и принцип построения линий спроса-предложения по Демарку:

 …«

 Тюнинг для QUIK. Индикатор диагональных уровней.

Рис. 1.6 На графике показаны четыре потенциальные ТD-точки предложения: А-В — первая линия предложения. После образования новой TD-точки предложения С вычерчивается новая линия предложения — В-С. Наконец, с образованием еще одной новой точки D линия предложения вновь пересматривается — C-D. Очевидно, что соотношение спроса и предложения постоянно изменяется. Соответственно меняется и линия предложения, отражающая динамику рынка.»....

 Прочитав Демарка, видно что появляется возможность автоматизировать процесс построения линий спроса-предложения. По этому принципу я сделал индикатор «TD Level»:

  1. Находятся TD точки заданного периода – последняя окончательно сформировавшаяся для High и предыдущая выше нее (последняя окончательно сформировавшаяся для Low и предыдущая ниже нее).
  2. С помощью формулы построения прямой по двум точкам находится значение Level High  и Level Low для текущего бара на его открытии.

Даже визуально можно заметить, что на Level High  и Level Low заметно повышается торговая активность. Существует множество торговых систем, основанных на пробое-отбое от этих расчетных уровней, определяющих ложность пробоя по своим критериям.

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

Ниже код индикатора и инструкция по установке.

 

Settings={
Name = "TD Level",
period=5,
line={
{
Name = "Level High",
Type =TYPE_POINT,-- = LINE --линии  = DASH -- тире  = POINT -- точки
Width = 3,
Color = RGB(0,255, 0)
},
{
Name = "Level Low",
Type =TYPE_POINT,
Width = 3,
Color = RGB(255,0,0)
}}}

idx_prosl=0

function Init()
return 2
end

function OnCalculate(idx)
if idx==1 then
P = math.floor(Settings.period/2)*2+1
t_H,t_L={},{}
t_Fr_H={}
t_Fr_L={}
th=1
tl=1
end
if idx~=nil and idx>P then
if idx_prosl~=idx then
for l=idx-P,idx-1 do
t_H[l]=H(l)
t_L[l]=L(l)
end
if t_H[#t_H-(P-1)/2]==math.max(unpack(t_H,#t_H-P+1,#t_H)) then
t_Fr_H[th]={(idx-1-(P-1)/2),t_H[#t_H-(P-1)/2]}
th=th+1
end
if t_L[#t_L-(P-1)/2]==math.min(unpack(t_L,#t_L-P+1,#t_L)) then
t_Fr_L[tl]={(idx-1-(P-1)/2),t_L[#t_L-(P-1)/2]}
tl=tl+1
end
if #t_Fr_H>=3 and #t_Fr_L>=3 then
i_bar=idx
dd=#t_Fr_H
for s=#t_Fr_H-1,1,-1 do
if t_Fr_H[s][2]>=t_Fr_H[dd][2] then
d=s
break
end
d=s
end
if d==1 then
H_ind_value=t_Fr_H[dd][2]
else
H_ind_value=((i_bar-t_Fr_H[d][1])*(t_Fr_H[dd][2]-t_Fr_H[d][2])/(t_Fr_H[dd][1]-t_Fr_H[d][1]))+t_Fr_H[d][2]
end
dd=#t_Fr_L
for s=#t_Fr_L-1,1,-1 do
if t_Fr_L[s][2]<=t_Fr_L[dd][2] then
d=s
break
end
d=s
end
if d==1 then
L_ind_value=t_Fr_L[dd][2]
else
L_ind_value=((i_bar-t_Fr_L[d][1])*(t_Fr_L[dd][2]-t_Fr_L[d][2])/(t_Fr_L[dd][1]-t_Fr_L[d][1]))+t_Fr_L[d][2]
end
end
end
else
H_ind_value=nil
L_ind_value=nil
end
idx_prosl=idx
return H_ind_value, L_ind_value
end


 

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

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

В настройках вводится только период для расчета TD. По умолчанию уровни отображаются точками, можно заменить в коде или настройках.

Еще для «тюнинга» терминала выкладывал тут некоторые индикаторы и систему автоматической установки стоп ордеров:

smart-lab.ru/blog/325360.php

smart-lab.ru/blog/329047.php

http://smart-lab.ru/blog/336797.php

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

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

★53
12 комментариев
Во. Наконец. А то я программера нанимал это дело считать. Правда года 3 назад.
 Но кстати об этих линиях… Верхняя линия не учитывает насколько рынок вниз опускался между хаями. А это важно. Ну и нижняя аналогично. Есть более умные линии ;)
Правильный трейдинг, интересно. По какому принципу это учесть? Скорректировать на разницу?
avatar
Не люблю нижних подчеркиваний в коде…
Еще есть индюк по Демарку для мт5, если кого заинтересует.https://www.mql5.com/ru/market/product/9420
avatar
а к такому виду нельзя привести, выглядеть будет куда дружелюбнее


очередное дурево теханализа, новые черточки по новой формуле ппц
avatar
Сыроешкин, чего больше нечего не пишешь?
avatar
Здравствуйте, вижу как много полезного Вы делаете для коллег. Я только сейчас заинтересовался индикаторами Демарка. Видел ваши коды на луа для квика но почему то никак не могу найти в рунете код для стандартного демаркера для квика (внешне похож на RSI строится в отдельном окне внизу), где есть линии зон перепроданности и перекупленности (70/30). Не подскажите, как найти этот код?
avatar

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

....все тэги



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