![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дальше лень изобретать. Какой-то намек есть, что в принципе задача решаемая.
Всё эти фиды это просто heatmap от прежних цен. Вид сбоку.😉
Да, уж!
Все просто - когда есть готовые стереотипы.
А выработать их - работенка не простая...
Благодарю за направление!Да, уж!
Все просто - когда есть готовые стереотипы.
А выработать их - работенка не простая...
Благодарю за направление!примерный алгоритм рассчёта heatmap (например на 100 бар):
для всех Close от 1 до 100 :
Close[N]=X будет добавлять в heatmap сумму ряда heatmap[Resolution(X)]+={X/N} + {X/(N+1)}+{X/(N+2)}.. до 100.
То что в фигурных скобочках - это "компоненты" средних, просто выделил.
Resolution(X) - "разрешение", например по 10 пунктов Round((X-MininalX)/Point/10)
получаете вектор в котором потом найти нужные вам локальные максимумы.
сей вектор практически - вертикальный профиль цен
раз уж начал...
непосредственное скопление кривых можно выявлять проcто и быстро.
алг.: поиск макс.скопления точек в пределах D на оси. (возможно проще нарисовать, но не художник)
для каждой точки X на дополнительной оси делаются отметки +1 на уровне X+D и -1 на уровне X-D
дальше бежишь по доп.оси и считаешь нарастающую сумму меток. Заодно запоминая максимум, его длительность и положение.
ВСЁ.
Но вариант с вертикальным профилем или температурной картой лучше, хотя и долгий и ресурсоёмкий
потому что 1) считается непосредственно от цен 2) сохраняет мат.связь с SMA 3) связан со стаканом 4) вариативен - можно "играть" с затуханиями, размытиями и найти что-то своё
Я пробовал пересчитывать повторения МА по цене, по периоду.
Делал так:
- определял момент перехода каждой МА из одного направления в другое - сигнал1
- получив данные считал количество повторений сигнал1 в баре
НО результат оказывался слишком зашумлен
потом выявил, что у скопление МА текущего бара уменьшается период на следующем, то есть жгут смещался на понижение по периоду
Начал связывать данные в цепочку по сигнал1, в получившихся данных находил момент перехода
но работает все ровно не так, то шумит, то не проявляет.
Блин, шаблон не работает, верхнее окно пустое
В идеале задача получить значения помеченные синим маркером
правильно Вам Максим пишет
берете свою МА-шку с максимальным периодом, берете с минимальным
и все по моему, и вот они - фиды
шаблон работает на ура, все замечательно видно и предельно понятно:
Еще вариантик
И еще один
примерный алгоритм рассчёта heatmap (например на 100 бар):
для всех Close от 1 до 100 :
Close[N]=X будет добавлять в heatmap сумму ряда heatmap[Resolution(X)]+={X/N} + {X/(N+1)}+{X/(N+2)}.. до 100.
То что в фигурных скобочках - это "компоненты" средних, просто выделил.
Resolution(X) - "разрешение", например по 10 пунктов Round((X-MininalX)/Point/10)
получаете вектор в котором потом найти нужные вам локальные максимумы.
сей вектор практически - вертикальный профиль цен
Пробую интегрировать формулу... я Правда, вообще тугой...
У меня есть значение каждого периода по каждому бару - pr
Что должен получить в конце вычислений?:
- Вертикальный вектор (массив значений) по каждому бару,
если я буду вычислять значения по первому бару
heatmap[Round((pr-MininalX)/Point/10)]+=pr;
MininalX - минимальное значение цены 100 периодов МА
Понимаю, что ворочу околесицу, прошу милости !)
Пробую интегрировать формулу... я Правда, вообще тугой...
У меня есть значение каждого периода по каждому бару - pr
Что должен получить в конце вычислений?:
- Вертикальный вектор (массив значений) по каждому бару,
если я буду вычислять значения по первому бару
MininalX - минимальное значение цены 100 периодов МА
Понимаю, что ворочу околесицу, прошу милости !)
да, должен получить "вертикальный вектор" из сумм. Каждый элемент вектора отвечает(суммирует) за например 10 пунктов.
то есть для бара:
1. пробегаем цены за Pmax баров, чтобы определить максимум,минимум и от них размер вектора.
2. ещё раз бежим по ценам, для каждой цены:
2.1 определяем в какой элемент вектора складывать
2.2 определяем сколько добавить. Для смещения N будем добавлять ЦЕНА * (сумма 1/N 1/(N+1) 1/(N+2) ... 1/Pmax) .
То что в скобках - это разница двух гармонических рядов = H(Pmax)-H(N-1), при желании можно считать быстро
---
почему так: цена на расстоянии N баров будет "попадать" только в группу SMA от Pmax до N. Меньше N она роли не играет, а глубже Pmax не считаем
в каждой SMA веса будут 1/период, то есть во всех сразу 1/N 1/(N+1) 1/(N+2) ...