Вопрос: испытывал ли кто-нибудь другие методы аппроксимации функций или поиска экстремумов?
Или дело безуспешное?
Или все-таки можно что-то придумать?
Недавно собирал статистику для индюка - при каких значениях пероятность повышения (понижения) цены выше. Кривая получилась скачкообразная. Придумал сгладить. Вроде получилось. Метод прост: берём 3 расматриваемых значения а, б, в. Считаем среднее от крайних значений (а+в)/2. Если оно больше среднего б, то к среднему значению прибавляем их полуразницу (т.е. подтягиваем б б = б + ((а+в)/2 - б)/2 ), а крайние, наоборот уменьшаем (а = а - ((а+в)/2 - б)/4, в = в - ((а+в)/2 - б)/4). За счёт этого происходит сглаживане графика, но теряются явные всплески (но МНЕ ИМЕННО ЭТО И НАДО БЫЛО).
double raznicha; // Наша разница значений через исследуемое for (j = 2; j <= step-1; j++) // Пробегаемся по числу отрезков индикатора от 1 до последнего, т.е. [a - step; a = max] { raznicha = LOG_norm_Bay[j] - (LOG_norm_Bay[j-1] + LOG_norm_Bay[j+1])/2; LOG_norm_Bay[j] =(LOG_norm_Bay[j-1] + LOG_norm_Bay[j+1])/2; // Среднее значение есть среднее из крайних LOG_norm_Bay[j-1]= LOG_norm_Bay[j-1] + raznicha/2; LOG_norm_Bay[j+1]= LOG_norm_Bay[j+1] + raznicha/2; }
Дело безуспешное и является следствием принципиальной невозможности заглянуть в будущее. Поэтому, краевой эффект неустраним в принципе в не зависимости от метода сглаживания, но может быть сведён к теоритическому минимуму, что, впрочем, не даёт заметного торгового преимущества.
Это понятно, но есть же вариант либо уменьшения ошибки, либо предсказания следующих исходов индикатора и сглаживания исходного сигнала с предсказанной частью. Правда я этого не пробовал.
1) Я пробовал его уменьшить. Нашел некоторую закономерность, что ошибка всегда одного знака с первоначальным индикатором и равномерно
уменьшается от максимального значения на последнем исходе до минимального на i-10 исходе. Но как найти это значение, я так и не нашел.
2) Еще пробовал вариант изменения длины преобразования. Само вейвлет преобразование зависит от длины входного вектора.
При этом методом веторного расстояния можно найти наиболее близкое преобразование к текущему вектору.
Но при этом вейвлет на крайних точках часто меняет свое направление и торговля по нему приносит мало успеха.
Кстати, кто-нибудь использовал в качестве индикатора просто центрированный сигнал Close?
Распределение по Гауссу, да и корреляция небольшая есть.
Недавно собирал статистику для индюка - при каких значениях пероятность повышения (понижения) цены выше. Кривая получилась скачкообразная. Придумал сгладить. Вроде получилось. Метод прост: берём 3 расматриваемых значения а, б, в. Считаем среднее от крайних значений (а+в)/2. Если оно больше среднего б, то к среднему значению прибавляем их полуразницу (т.е. подтягиваем б б = б + ((а+в)/2 - б)/2 ), а крайние, наоборот уменьшаем (а = а - ((а+в)/2 - б)/4, в = в - ((а+в)/2 - б)/4). За счёт этого происходит сглаживане графика, но теряются явные всплески (но МНЕ ИМЕННО ЭТО И НАДО БЫЛО).
Сглаживание все равно ломаной получится а не гладкой кривой.
Но идея неплохая, надо будет попробовать.
Иначе не получится:((. Извиняй. Любое сглаживание приведёт к запаздыванию. Сам посуди. Сийчас у тебя хоть и не явная, но подгонка под историю. При любой нормализации максимумы и минимумы улягутся. И тогда это будет точнее, но уже не в +. Может взять за сигнал не возростание и убывание, а уровень, за который индюк перешагнёт. (Меня вот тоже спреды мучают, всего то 2 пункта, а так бы в Сочах уже был. Но уменьшение "моего" сглаживания приводит к сигналам на 1 барр, а увеличение - запаздывание).
Иначе не получится:((. Извиняй. Любое сглаживание приведёт к запаздыванию. Сам посуди. Сийчас у тебя хоть и не явная, но подгонка под историю. При любой нормализации максимумы и минимумы улягутся. И тогда это будет точнее, но уже не в +. Может взять за сигнал не возростание и убывание, а уровень, за который индюк перешагнёт. (Меня вот тоже спреды мучают, всего то 2 пункта, а так бы в Сочах уже был. Но уменьшение "моего" сглаживания приводит к сигналам на 1 барр, а увеличение - запаздывание).
Пересечение уровней дает не очень привлекательный результат. Мне это тоже приходило в голову.
В индикаторе распределение максимумов и минимумов подчиняется гаусовскому закону, только с разным МО.
У максимумов примерно 0.3, у минимумов -0.3.
Чем выше планка, тем достовернее сигналы и тем их меньше.
А зарабатывать 200 пунктов в месяц не интересно :)
Да, к сожалению, либо искажения либо запаздывания.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Господа, доброго времени суток.
Работаю над созданием реверсивной МТС. Советник дает сигналы BUY и SELL а система переворачивает направление сделок
в зависимости от этих сигналов.
SELL появляется на максимуме индикатора, BUY на минимуме. В качестве индикатора служит собственная разработка, основанная
на нескольких скользащих, которая представляет собой импульс изменения цены (похож на RSI, но не он).
Сам по себе индикатор зашумлен, поэтому пытался использовать для сглаживания низкочастотные фильтры и вейвлеты.
Наиболее удачным получилось сглаживание по вейвлетам, но краевой эффект (искажение на крайних точках) портит все.
Провел эксперимент: аппроксимацию индикатора вейвлетами в период с 2000 по 2008 года по EURUSD на минутном графике.
Система дает в среднем 2000-4000 пунктов в месяц при отсутствии какого либо ММ и других добавлений. Чисто советник.
График роста баланса гладкий и почти прямой.
Конечно, радоваться нечему, поскольку в реальной он-лайн торговле краевой эффект дает только минуса.
Вопрос: испытывал ли кто-нибудь другие методы аппроксимации функций или поиска экстремумов?
Или дело безуспешное?
Или все-таки можно что-то придумать?