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

 
AlexHacker007 >>:

Визуальность больше нравится Синяя вверх красная вниз цена выше синей вверх при риближении к машке, машка красная обратный ход .. индикаторов миллион это одна из интерпретаций ... так же сделаны стохастики в РУМУСе .. они там динамические .. по ним торговать можно только если они уже развернулись и вышли из зоны перекупки.. ранние сигналы учитывать нелья, но это лучле чем постоянно вручную менять параметры под нужную длину тренда.. автоматизация ручного труда..

Извините, а с чего Вы взяли, что в румусе динамический блохастик?

variable : d1($data), d2($data);
n = inparam("MA parameter1", 1, 100, 10);
n2 = inparam("MA parameter2", 1, 100, 3);
n3 = inparam("MA parameter3", 1, 100, 3);
n4 = inparam("z", 1, 100, 1);
k1=100*(c-LLV(l,n))/(HHV(h,n)-LLV(l,n));
d1_1=ref(d1,-1);
d2_1=ref(d2,-1);
d2_2=ref(d2,-n4);
d1=d1_1+(k1-d1_1)/n2;
d2=d2_1+(d1-d2_1)/n3;
d2;
d2_2;

 
leman писал(а) >>

Извините, а с чего Вы взяли, что в румусе динамический блохастик?

variable : d1($data), d2($data);
n = inparam("MA parameter1", 1, 100, 10);
n2 = inparam("MA parameter2", 1, 100, 3);
n3 = inparam("MA parameter3", 1, 100, 3);
n4 = inparam("z", 1, 100, 1);
k1=100*(c-LLV(l,n))/(HHV(h,n)-LLV(l,n));
d1_1=ref(d1,-1);
d2_1=ref(d2,-1);
d2_2=ref(d2,-n4);
d1=d1_1+(k1-d1_1)/n2;
d2=d2_1+(d1-d2_1)/n3;
d2;
d2_2;


Я в Румусе в коде не копался просто глянул на цифры в скобочках мне возможно захотелось чтобы это был динамический.. но как то красиво оно максимумы рисует в МТ4 обычно на затяжных трендах линия просто горизонтальная в зонах перекупки а тут все красиво ...
 
AlexHacker007 >>:

Я в Румусе в коде не копался просто глянул на цифры в скобочках мне возможно захотелось чтобы это был динамический.. но как то красиво оно максимумы рисует в МТ4 обычно на затяжных трендах линия просто горизонтальная в зонах перекупки а тут все красиво ...
Согласен, красиво :)
 
leman >>:
Я вот обратил внимание на то, что на форе, да и на других рынках, работает очень много музыкантов. Как думаете, почему?
Музыканты разные бывают(на этом форуме не исключение), есть те кто на дудке пиликает, а есть те кто ещё в 80-ых синтезаторы "паяли" :)
 
San_Sani4 >>:
Музыканты разные бывают(на этом форуме не исключение), есть те кто на дудке пиликает, а есть те кто ещё в 80-ых синтезаторы "паяли" :)
Или в 70-е "дистоушн" :)
 

Пробовал я идею создания индикатора, с динамически-меняющимися параметрами. Мне не хватило какой-то информации. Цитирую свои посты сюда и прилагаю индикатор.

Базис.

Для работы внутри дня трейдер может использовать некую скользящую среднюю. Чтоб видеть среднесуточное направление движения цены он должен верно выбрать период этой скользящей. Как ему это сделать?
В сутках 24 часа и точно так же таймфрейм Н1 состоит из 24-х свеч графика - по одной на каждый час. Значит, если мы кинем на Н1 обычную скользящую среднюю с периодом = 24, то она нам покажет среднесуточное направление тренда - среднестатистическое направление за последние 24 часа.
Если трейдер работает на интервалах М30, то его скользящая должна изменить свой период усреднения с 24 на период, = 24*2=48. Просто потому, что в одном часе тридцатиминутка укладывается дважды. Или потому, что в 24-х часах ровно 48 свеч периода М30.
На М15 период этой скользящей должен стать уже = 24*4 = 96, или = число минут дня / на 15, что тоже равно 96.
Итак, мы только что сформулировали метод, при помощи которого на разных таймфреймах трейдер может выбрать скользящую правильного периода усреднения для отображения среднесуточного направления тренда. Назовём эту скользящую базовой.

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

Теперь проблема.

  Недостаток использования скользящей средней в том, что период её усреднения является фиксированной величиной. Вот поэтому мне и пришло в голову, что совместно с базовой скользящей средней мы можем использовать другую скользящую, у которой период усреднения будет меняться в зависимости от того. какова ситуация на рынке.
На тренде эта скользящая должна уменьшить свой период усреднения. Тренд - штука быстрая (по сравнению с флетом). Поэтому и скользящая должна стать быстрой, чтоб успевать за трендом.
На флете рынок замирает, становится медленным. Поэтому и скользящая должна стать медленная. То есть, скользящая должна увеличить свой период усреднения.
Если создать такой индикатор, то получится, что на флете скользящая будет почти горизонтальна. Но как только начнётся тренд, она тут же отреагирует и тут же (пусть с малым опозданием) поедет вслед за ним. В результате мы получим цифровой фильтр, который может отсечь шумовые движения флета и чётко показывать переломные точки тренда. То есть, это почти грааль.

Проблема в том, что у меня нет алгоритма, руководствуясь которым индикатор дожен менять период усреднения.
Но я всё же попробовал - написал индикатор - написал такую скользящую среднюю.
Чтоб написать индикатор мне нужно было к чему-то "привязаться". В качестве привязки я выбрал изменение расстояния между двумя миддл-точками двух соседних свеч (ниже поясню что это такое). В результате скользящая получилась очень "резкая". Например, у неё на текущей свече период = 200, на следующей вдруг становится = 8, на последующей уже = 400, потом, скажем = 52 и так далее...
Сам процесс тестирования индикатора показал на деле, что создать такой код вполне возможно. Нужно лишь выбрать верный алгоритм изменения периода усреднения (верную привязку).

Теперь о том, какой алгоритм я выбрал в качестве пробного.

На нулевой свече вычисляем середнииую (middle) точку первой и второй свечи и запоминаем разницу в какую-нибудь ячейку памяти.
middle[1] = (High[1]+Low[1])/2
middle[2] = (High[2]+Low[2])/2
Пусть у нас middle[2] получился ниже, чем middle[1]. Это говорит о том, что первая свеча выше второй - тренд растёт. Вычисляем разницу
Razn_1 = middle[1] - middle[2]
Итак, рассточние между серединами первой и второй свечи лежит у нас в переменной Razn_1. Теперь текущая свечка закрывается и возникает ноавя. На первом же тике этой новой свечи мы проделываем то же самое - вычисляем расстояние между серединными точками первой и второй свеч. Теперь смотрим, во сколько раз это расстояние изменилось по сравнению с предыдущим расстоянием. Пусть оно увеличилось (например, в 1,5 раза). Это значит, что рынок поехал в тренд и мы должны уменьшить период усреднения скользящей средней. Вот тут то я и стал делать так: во сколько раз увеличивается расстояние между middle-точками, во столько же раз я и уменьшил период усреднения. И обратно - во сколько раз уменьшилось расстояние, во столько же раз я увеличил период усреденния.

Не могу сказать, что это хорошая идея - я остановился на данном алгоритме просто потому, что хотел попробовать осуществить данный индикатор в коде и посмотреть как он себя поведёт.

Итак, проблема в том, что нужен алгоритм, руководствуясь которым умная скользящая средняя будет автоматически изменять период усреднения.

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

 

Индикатор приложен. Тестируйте в тестере на М15, ибо на других таймфреймах он подглючивает почкму-то. Работает толко в реалтайме. Плэтому в тестере его нужно кидать на пустого советника и тестировать в режиме визуализации. 

Файлы:
live_ma.mq4  6 kb
 

Anshegar писал(а) >>
.......... .........

Вот вам ТЗ. Техническая реализация, формулы и прочее…господа я гуманитарий, я могу примерно оформить идею, но вот насчет того какими формулами её рассчитать…боюсь я не в силах вам подсказать.

Есть такой учебник "Формальная логика для гумманитариев". Она поможет Вам оформлять не только техзадания, но и много чего другого с максимальной точностью. Вообще удивительно, как можно отвечать за связи с общественностью и при этом проигнорировать такую дисциплину, как логика - это же букварь по основам аргументации. А эти основы рассматривают как логические, так и внелогические приёмы аргументативного процесса. Отвечать за связи с общественностью и не уметь построить аргументацию.... Минус Вам, извините за прямоту. Не хотел обидеть - удивлён. Сильно удивлён.
 

))) Знаете, я столько перепробовал в свое время различных способов адаптации и пришел после всего к мнению, что это (я повторяюсь)) натягивание фрачной пары на осьминога.

Всех способов уже не упомню, но из тех, что были упомянуты/выложены здесь:

- Привязка периода к "датчикам" волатильности через нормированные объем (это для ФР было сделано), TR, СКО (StDev). Там можно тупо задать границы, в ктр. будет колебаться период (вообще любой параметр) адаптируемого индикатора в зависимости от текущей волатильности.

- Использования несимметричного сглаживания волатильности, чем решались две "нестыкуемые" проблемы, чтобы индикатор:
а) с минимальной (даже с нулевой) задержкой реагировал на повышение градуса рыночных страстей с одной стороны и
б) эффективно подавлял шум на текущем уровне волатильности с другой.

- Устранение из анализа баров ниже нектр. шумового порога. Там период индикатора увеличивается до тех пор, пока не накопится нужное количество баров для базового периода. Т.е. для МА(14) период будет увеличиваться до тех пор, пока в выборку не попадет 14 баров, превышающих этот шумовой порог.

- Просто различные варианты шумоподавления без изменения периода. Один из них - бесшумный стохастик.

Много чего еще было. Но все это - ИМХО - фигня по принципиальным причинам, т.к. изначально рассматривается временное фреймирование ЦР. Ближе всего к реальной импульсной модели - это несимметричная фильтрация, не лишенная по причине выше родовых недостатков.

Причина обращения: