Преобразование абсолютных показателей осциллятора в относительные показатели

 

Есть ряд осцилляторов, показатели которых отображаются не в процентном выражении (относительные), а в абсолютных показателях (целых и дробных числах).
Задача стоит в унификации использования в советнике индикатора путем преобразования абсолютных показателей в относительные.
 К примеру, границы максимума и минимума ATR могут меняться в зависимости от волатильности рынка, и хотя сам индикатор показывает волатильность рынка, нам не ясно какая волатильность является сильной, а какая слабой. Для понимания границ мы смотрим на график и определяем на глаз примерные стандартные точки максимумов и минимумов индикатора, которые служат ориентиром для определения силы волатильности.
Если мы используем советник, то задаем эти границы в его настройки, но рынок может меняться, соответственно и настройки диапазонов должны меняться.
Как этот процесс адаптации наиболее вероятных максимумов и минимумов можно автоматизировать? Есть идеи? Какие варианты наиболее эффективны?
Я же сам пока вижу три варианта:

  1. Определение максимума и минимума за последние N баров и преобразование на прошлом (или текущем – зависит от потребностей) значения осциллятора в процентное выражение (Формула=(Значение-Минимум)/(Максимум-Минимум));

  2. Определение максимума и минимума за последние N баров, потом значения на каждом баре за период N преобразовываем в относительное, по выше указанной формуле, и распределяем по группам – допустим в группу по 5%. Далее определяем, сколько в каждой группе значений в процентном выражении от всех показателей (N). Ищем в группах с минимальным индексом (5%-15%) и максимальным индексом (85%-100%) наиболее большое заполнение относительно N баров, а потом в выбранных индексах рассчитываем среднее значение. Полученные средние значения будут диапазоном от 0% до 100%, и соответственно производим расчет на прошлом (текущем) баре, согласно все той же формуле из первого варианта;

  3. Определяем за N баров линейную регрессию и среднеквадратическое отклонение, строим некий канал по которому и определяем верхнюю и нижнюю границу.  Полученные значения будут диапазоном от 0% до 100%, и соответственно производим расчет на прошлом (текущем) баре, согласно все той же формуле из первого варианта.

Пересчет делать на каждом баре нет смысла, я думаю, что раз в N/10 раз достаточно будет.

Файлы:
Primer_01.png  93 kb
 
...Как этот процесс адаптации наиболее вероятных максимумов и минимумов можно автоматизировать? Есть идеи? Какие варианты наиболее эффективны?

Что значит эффективны?

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

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

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

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

Интересный может быть робот, с глазами :-)

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

 
denkir:

Что значит эффективны?

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

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

Интересный может быть робот, с глазами :-)

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

Эффективный - значит достаточно успешно заменяющий ручную настройку.

 Из ответа видно, что вы не вчитывались в алгоритм, да и вообще в сообщение. Я не предлагаю сглаживать значение индикатора, а говорю о его описании границами (индикатор должен вписываться на процентов 90% в границы).

Если говорить о вашем примере использования индикатора, то применение предлагаемого мной подхода позволит выставить значение индикатора не в пунктах, а в процентах - к примеру в диапазоне >60% большой шаг трала, а при <60% переходить на малый (или поджимать). И главное, при изменении тайм фрейма не нужно будет перенастраивать советник, так как произойдет адаптация под новый числовой диапазон.

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

 

Добавил в шапку пример того, о чем я говорил - по третьему варианту.

 
-Aleks-:

Добавил в шапку пример того, о чем я говорил - по третьему варианту.

1. Стандартизация- > центрирование(минус среднее) + шкалирование(делим на стандартное отклонение)

2. Нормализация -> приведение переменной в диапазон 0-1 или -1..1. Мне известно более полутора десятков методов.

3. Трансформация -> преобразование непрерывной переменной в дискретную по нужным Вам правилам. Мне известно 3-4 способа.

Всё давно придумано... Как говорил один персонаж Хазанова.

Удачи 

 

-Aleks-:

...Я не предлагаю сглаживать значение индикатора, а говорю о его описании границами (индикатор должен вписываться на процентов 90% в границы).

Всё равно это некоторая игра с абс.значениями. При одинаковых относительных значениях волатильность может быть разной... другое дело, насколько это учитывается в советнике...

Вот отлично высказался vlad1949 о методах обработки данных:

1. Стандартизация- > 

2. Нормализация ->

3. Трансформация ->

Так что всё украдено до нас :-)

-Aleks-:

Эффективный - значит достаточно успешно заменяющий ручную настройку...

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

А вообще перед любым преобразованием данных нужно знать цель преобразования...

 
vlad1949:

1. Стандартизация- > центрирование(минус среднее) + шкалирование(делим на стандартное отклонение)

2. Нормализация -> приведение переменной в диапазон 0-1 или -1..1. Мне известно более полутора десятков методов.

3. Трансформация -> преобразование непрерывной переменной в дискретную по нужным Вам правилам. Мне известно 3-4 способа.

Всё давно придумано... Как говорил один персонаж Хазанова.

Удачи 

Спасибо за участие. И информацию для размышления.
Но, раз Вы обладаете познаниями в этом вопросе, быть может поможете выбрать именно наиболее оптимальный вариант, который можно будет эффективно использовать в советнике:
- Быстрый алгоритм;
- Хороший прогноз (вероятность разворота индикатора на верхней, нижней линии, являющимися условными приделами (наиболее вероятными пределами)), при этом прогноз должен давать результат не раз в год, а в зависимости от поведения рынка (средней амплитуды колебания осциллятора);
- Краткосрочный прогноз, к примеру на 1/3 от анализируемых данных.

 
denkir:

Всё равно это некоторая игра с абс.значениями. При одинаковых относительных значениях волатильность может быть разной... другое дело, насколько это учитывается в советнике...

В этом то и смысл! Вы рисунок посмотрели, что я дал? Рынок меняется и та волатильность, что год назад была средней сегодня высокой является, предложенный мной метод позволяет менять фактически именно оценку волатильности, а не её среднее значение. Таким образом советник сможет всегда знать к какому уровню относится текущая волатильность без подстроек пользователем.

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

Определил на глаз точки где наиболее часто происходил разворот индикатора

 
 

-Aleks-:

...Определил на глаз точки где наиболее часто происходил разворот индикатора

Так это правило можно формализовать в виде формулы (а значит запрограммировать)... простой пример для поиска вершин:

1) число баров - 100 шт.;

2) найти вершины (здесь задать окрестность баров, пусть по 10 баров слева-справа для определения вершины);

3) усреднить.


Можно применить к исходному ряду либо к обработанному ряду...

 
-Aleks-:

Спасибо за участие. И информацию для размышления.
Но, раз Вы обладаете познаниями в этом вопросе, быть может поможете выбрать именно наиболее оптимальный вариант, который можно будет эффективно использовать в советнике:
- Быстрый алгоритм;
- Хороший прогноз (вероятность разворота индикатора на верхней, нижней линии, являющимися условными приделами (наиболее вероятными пределами)), при этом прогноз должен давать результат не раз в год, а в зависимости от поведения рынка (средней амплитуды колебания осциллятора);
- Краткосрочный прогноз, к примеру на 1/3 от анализируемых данных.

Две решаемые задачи:

1. Регрессия - прогноз числовой величины с определенной доверительной вероятностью.

2. Классификация - предсказание (к какому классу относится текущее состояние).

Вы чем планируете заняться?