Доброго времени суток всем читающим. Ввиду занятости в разных проектах и своей слабости в написании индикаторов хочу предоставить вашему вниманию свое техническое задание. Мои попытки его реализации уже на продолжении нескольких месяцев не могут увенчаться успехом. Приоритетом в разработке является возможная простота использования индикатора в советниках. Индикатор будет состоять из нескольких составляющих, некоторые из которых можно будет отключать из расчетов. Ввод этих составляющих планируется постепенно.
1. Первой составляющей будет образование Уровней Поддержки\Сопротивления на основании зон скопления фактралов. Ширина зоны поиска фактралов регулируется, а сам уровень определяется как средняя арифметическая цена всех фактралов попавших в зону. Эти уровни записываются в отдельный буфер. Желательно чтоб был еще один буфер который хранил бы информацию о количестве фактралов участвующих в образовании каждой линии. После определения всех уровней скопления выделяем самые сильные которые выше цены и заполняем ими буфер Уровней сопротивления. А самые сильные уровни которые, ниже цены записываем в буфер Уровней поддержки. Буфера Уровней Поддержки и Уровней Сопротивления являются внешними.
Искать фактралы необходимо рекурсивным методом Демарка. Вот алгоритм:
Настройкой качества является параметр Lvl, он же и передается в функцию.
double DemHigh(int sh)
{
int cnt=Lvl+1;
if (iHigh(Symbol(),0,cnt)>=iHigh(Symbol(),0,cnt+sh) && iHigh(Symbol(),0,cnt)>=iHigh(Symbol(),0,cnt-sh))
{
if (sh>1) return(DemHigh( sh-1));
else return(iHigh(Symbol(),0,cnt));
}
else return(0);
}
double DemLow(int sh)
{
int cnt=Lvl+1;
if (iLow(Symbol(),0,cnt)>=iLow(Symbol(),0,cnt+sh) && iLow(Symbol(),0,cnt)>=iLow(Symbol(),0,cnt-sh))
{
if (sh>1) return(DemHigh( sh-1));
else return(iLow(Symbol(),0,cnt));
}
else return(0);
}
Итого требуются следующие внешние переменные :
1 Параметр - количество последних баров для поиска фактралов.
2 Параметр отвечающий за ширину зоны поиска фактралов.
3 Параметр отвечающий за минимальное количество фактралов участвующих в образовании уровня.
4 Параметр - Минимальное количество фактралов для возможности переноса уровня во внешний буфер.
5 Параметр отвечающий за минимальное расстояние между соседними уровнями при выборке во внешний буфер.
2 Вторая составляющая – это дополнение первой. Мы определяем круглые ценовые уровни поблизости от уровней поддержки сопротивления из предварительного буфера и если они находятся в установленной зоне то находится среднее арифметическое между круглым уровнем и уровнем скопления. А Новый образованный уровень перезаписывается в предварительный буфер в замен старого.
Итого к этой составляющей требуются следующие переменные:
1 Параметр качество круглого уровня.
2 Параметр - зона приращения круглого уровня к уровню скопления.
Также необходим будет графический модуль. Который отрисовывал бы уровни из внешнего буфера на график. С широкими возможностями настройки.
ТЗ к остальным составляющим пока неготово. И будет добавленно позже. Планируется учет еще 2х настраиваемых уровней Пивотов. То есть с возможностью настройки ТФ для взятия уровней. И алгоритм приращения тяжелых МА в качестве Динамических уровней. Есть еще несколько идей, но и в настоящий момент работы очень много.
думаю данный индикатор будет очень полезен не только мне, но и другим программистам, а при наличии графического модуля и трейдерам ручникам.
Повторюсь. Индикатор изначально рассчитывается на подключение к советникам. И я не видел более менее обширного индикатора с удобной системой подключения.
Помогите пожалуйста в написании.
