Чтобы это можно было отдать программисту под сканер, условия надо записать в числах. Для закрытой свечи (индекс 1) на каждой паре и ТФ:
Код:
body = |Close - Open|
upper = High - MathMax(Open, Close)
lower = MathMin(Open, Close) - Low
range = High - Low
идеальный пин вниз (длинная нижняя тень):
lower >= 1.5 * body и upper <= tol
неидеальный:
lower > body и upper <= k * lower
Сразу всплывают три вопроса, на которые нужно ответить тебе, а не кодеру:
1. «Тени нет совсем» на пятизнаке почти не бывает, там почти всегда 1–3 пункта. Нужен допуск tol: в пунктах (например, 2) или в доле от range (например, 5 %). Иначе идеальных пинов будет единицы.
2. Что такое «небольшая тень с другой стороны»: k = 0,25? 0,33? Без этого числа два человека разметят одни и те же скрины по-разному.
3. Свечи с body = 0 (доджи) под условие «тень в 1,5 раза больше тела» попадают всегда. Обычно добавляют минимальное тело или минимальный range, например range больше среднего ATR(14) × 0,5, чтобы не ловить пины на мёртвом рынке.
По «4 пина разом на одной свече»: в MT5 сверять надо время открытия бара, iTime(symbol, tf, 1), а не номер бара. У золота свой перерыв и свои часы, и на M5 после паузы бар с индексом 1 у XAUUSD может оказаться другим по времени, чем у EURUSD. Так что считаем совпадение, только если время баров одно.
Панель тогда простая: цикл по списку символов и ТФ, по каждому iOpen/iHigh/iLow/iClose для бара 1, проверка условий, вывод таблицы через Comment() или объекты-метки на графике, и счётчик «сколько пар дали пин на этом баре». Сигнал — счётчик ≥ 4.