Блог им. OM77

Kernel regression: Identification of local maximum and minimum

Для решения одной практической задачи мне нужно было разработать метод идентификации локальных максимумов и минимумов в динамике цен. Тайм-фрейм был коротким — 1 мин. Я сделал небольшое исследование на эту тему, и его результаты публикую в этом посте. Возможно, это будет интересно кому-либо еще, а может быть кто-нибудь даже поделится своими соображениями по данному вопросу.

Kernel regression: Identification of local maximum and minimum 

В ходе своего небольшого исследования я выделил два подхода, используемых для идентификации локальных максимумов и минимумов цен — это сглаживание и сжатие.

Для сглаживания как правило выбирают следующие методы: Kernel regression, orthogonal series expansion, projection pursuit, nearest-neighbor estimators, average derivative estimators, сплайны и нейронные сети.

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

Я реализовал метод Kernel regression

Параметр сглаживания в данном методе называется bandwidth и имеет обозначение — h. Я выполнил расчеты для 1-минутных цен фьючерса на индекс РТС с различными значениями параметра h (от 7 до 68), и получил следующие результаты:


Kernel regression: Identification of local maximum and minimumKernel regression: Identification of local maximum and minimum 
В целом результатами я доволен и при определенной «сноровке» можно подобрать h, который будет адекватно «расставлять» уровни локальных хаев и лоу на графике цен. Безусловно нужно смотреть на работу алгоритма в реальных условиях, и получая обратную связь, подкручивать h пока не будет выработано некоторое постоянное его значение (либо некоторая простая зависимость).

Стоит ли повторять, что все расчеты я сделал в R. Использовал библиотеку sm (Smoothing methods for nonparametric regression and density estimation).

Более подробно читайте на моем сайте quant-lab.com

P/s В виду резкого одномоментного возрастания траффика иногда возникает превышение лимита нагрузки на ЦП и хостер блокирует мой сайт. Через некоторое время блокировка снимается. Я пока не разобрался, как решить эту проблему быстро и недорого, поэтому в случае блокировки — прошу интересующихся заходить на сайт позже :)
    ★8
    9 комментариев
    купи впс
    Нечаев Константин, что это?
    OM77, VPS, интернет в помощь)
    Интересно.+
    Ничего не понял, сгладили график, а потом просто по линии определяете?
    avatar
    Станислав Иванов, сглаживание нужно чтобы отсеять шум. это своего рода фильтр для локальных экстремумов.
    OM77, все равно не понимаю. У меня после сглаживания будет простая линия, понятное дело что шума не будет. Дальше экстремумы на глазок определяете? А как эта линия в реальном времени строится, часто экстремумы переписываются? (мне почему-то кажется, что это как с вейвлетами, которые меняются во времени ) :))) или вам это неинтересно?
    avatar
    Станислав Иванов, «на глазок» — хороший подход ))) легко формализуемый главное. но не в данном случае. в топике лок хай или лоу в месте, где поменялся знак производной. а про вейвлеты с удовольствием бы послушал, т.к. сам их не использовал (может и зря).
    Присоединяюсь к вопросу Станислава Иванова — при добавлении новых точек в графике значения предыдущих точек в линии меняются? И какой в этом случае период запаздывания формирования экстремума( те какое количество новых баров должно добавиться, чтобы уверенно говорить- что экстремум оформился)?
    avatar

    теги блога Oleg Mubarakshin ~ Quant-lab

    ....все тэги



    UPDONW
    Новый дизайн