Всем привет!
В нескольких предыдущих статьях я разобрал паттерн «падающая звезда», написал скрипт, прогнал его по реальным графикам, сделал выводы по статистике.
Сейчас пора взяться за обратный паттерн «молот». Свеча, соответствующая данному, паттерну выглядит так:
То есть, в отличие от паттерна «падающая звезда» данный паттерн имеет большую нижнюю тень. И нам нужно определять отношение, выделенное красным, к значению, выделенное зеленым.
Как как у нас уже есть скрипт, написанный для паттерна «падающая звезда», то нам достаточно немного его скорректировать и новый скрипт будет готов.
Эти изменения коснуться в первую очередь функции is_pattern(), которая определяла является ли свеча искомым паттерном. Также нам нужно будет из свечей, которые идут до паттерна искать максимальное снижение, а из свечей, которые следуют после паттерна искать максимальное увеличение. Кроме того, я оставлю в скрипте запись направления тренда по всем перебираемым свечам – от 3 до 13.
Функция is_pattern будет выглядеть так:
function is_pattern(max_s, min_s, open_s, close_s, k_s) --функция получает цены по свече: максимум, минимум, вход и выход. Также коэффициент указывающий насколько нижняя тень должна быть больше остальной части свечи.
-- возвращает 1 - если свеча соответствует паттерну, 0 -если не соответствует.
local result = 0;
if ((max_s == open_s)and(max_s == close_s)and(open_s == close_s)) then-- если цены входа, выхода и максимум равны, то эта свеча соответствует паттерну
return 1;
else
local k = (give_min_from_two(open_s, close_s) - min_s) / (max_s - give_min_from_two(open_s, close_s));
if (k > k_s) then
return 1
else
return 0
end
end
end
А для выбора минимального значения из открытия и закрытия нам потребуется новая функция, которая будет выдавать минимальное.
function give_min_from_two(t1, t2) -- функция получает два значения и возвращает наименьший из них.
if (t1 < t2 ) then
return t1;
else
return t2;
end
end
Вот, пожалуй, и все изменения. Скрипт готов. Такая быстрая корректировка была возможна за счет того, что в пером скрипте все реализовывалось с выносом многих блоков в отдельные функции. Теперь нам было достаточно просто поменять некоторые функции.
Давайте запустим скрипт на демо-счете и убедимся, что все работает.
Скрипт работает, ошибок не выдает.
Давайте найдем свечу, которая выделена на рисунке.
Указанная свеча обведена овалом. Свеча, на которую указана стрелка не учтена, так как у нее нижняя тень не превосходит в три раза остальную часть свечи.
В целом, скрипт готов.
В следующей статье я разберу последствия запуска данного скрипта на реальных данных.
Всем счастливо – всем пока!
=================================
Краткое содержание данного канала.
=================================