Блог им. AleksandrBaryshnikov

Способ избавиться от шума в ценовых данных

Ww
29 комментариев
На картинках уже плохо отработала система устранения выбросов. Потому, наверное, что алгоритм все размазывает, не разбираясь, есть выброс или нет. Впрочем, ценовые данные другие, попробуйте, вдруг Вам повезет.
avatar
SergeyJu, идеал недостижим в принципе, но можно, используя этот подход, существенно улучшить результаты, по крайней мере, сейчас я думаю именно так. Практика покажет.
avatar
заранее понять выброс это или нет невозможно. будет все равно 50 на 50.
avatar
Susanin, это мы проверим, на 30 наиболее ликвидных акциях и 10 фьючерсах.
avatar
bascomo, попробуйте. если вы думаете что будущие приращения зависят от прошлых вас ждет большое разочарование.
avatar
Susanin, я не собираюсь прогнозировать как абсолютные или относительные значения приращений, так и абсолютное значение цены, мне это не интересно. Тут речь шла ровно про то, чтобы убрать шум.
avatar
bascomo, так это тоже самое. отличить шум можно только пост фактум. 
avatar
Susanin, правильно и хорошо обученная нейросеть может убирать его и в реальном времени. Ну в доли секунды.
avatar
bascomo, попробуйте самыми простыми словами описать, что в ценах есть сигнал. 
avatar
SergeyJu, сигналы мы придумываем сами. Я бы даже сказал, мы придумываем то, что можно назвать сигналами, придумывая, таким образом, и сами сигналы.

Вот вам сигналы, например. Даже закодированные в 0 или 1 — как раз тот формат, который так любит кушать нейросеть.



avatar
bascomo, то есть Вы считаете, что в данных (в ценах) только шум, сигнала вообще нет. А сигналы — это привнесенные нашим разумом артефакты? 
avatar
SergeyJu, это философский вопрос, но да, если быть последовательным, то весь мир вокруг — то, как мы его видим, чувствуем и понимаем — это продукт нашего разума.  И если, к примеру, солнечная система существует безотносительно человека, то понятие «цена» придумано им, как и биржи, котировки и сигналы.
avatar
bascomo, все стандартные методы выделения сигнала на фоне шума базируются на их статистически значимых различиях. И чем более сигнал не похож на шум, тем лучше можно построить выделитесь. Незнание природы сигнала нисколько не облегчает его выделение. Скорее, делает всю поисковую деятельность совершенно случайной. 
avatar
SergeyJu, а я вот обнаружил в прошлом месяце, что именно направленная случайность делает поисковую деятельность максимально эффективной. Генетика. Напишу в следующем посте, хотя желания всё меньше и меньше. На этом сайте всегда были так много троллей? У некоторых ЧС из тысяч. Это за гранью.
avatar
bascomo, у меня ЧС под тысячу. Ненавижу пустой треп и пропаганду. 
avatar
На истории и так видно, был это шип или нет. Смысл исторический график сглаживать? Ну уж если так хочется -  да, обычная ma. А здесь нужно чтобы нейросеть в реальном масштабе времени говорила — это движение ложное, не бойся, сейчас назад откатит.
avatar
SAlex, проблема ma в том, что она всегда опаздывает, даже ema. А смысл не в том, чтобы исторический график сглаживать, а в том, чтобы обучить на истории модель, а после подсовывать обученной модели данные в реальном времени для оценки, чтобы она говорила, игнорировать этот пробой или выброс или нет. Она не определит это со 100%-й вероятностью, как и ни одна нейросеть в мире не работает со 100%-й вероятностью, но мне нужно просто увеличить вероятность правильных действий. И если она в этом хоть на 10% поможет — это уже прекрасно.
avatar
bascomo, тогда аналогия с сетью неверна. Вы же скармливаете сети фото целиком и говорите «убери артефакты». Она аппроксимирует соседние участки и убирает найденный артефакт.  В вашем случае, аналогия другая — вы даете фото постепенно, пиксель за пикселем, а нейросеть вдруг раз, и говорит что пиксель неверный. Это немного другая задача.
avatar
SAlex, нет, не так.
Берём, например, минутные бары за, скажем, последние полгода.
Выбираем размер окна, например, 60 баров — 1 час. Это и есть аналог картинки.
Готовим обучающий датасет: с 1 по 60 бар, потом со 2 по 61-й и так до конца выборки. И все эти семплы подаём на вход сети.

А когда предсказываем — подаём последние 60 баров, включая текущий.


P.S. Нейросеть, результаты работы которой представлены выше, обучалась на 13223 картинок из базы лиц знаменитостей http://vis-www.cs.umass.edu/lfw/#download. И вот эти знания она применила, чтобы убрать артефакты на тех 5 фото, что я «зашумил» чёрными квадратами случайных размеров и со случайным расположением.
avatar
bascomo, во-первых, просто подать кучу серий из 60-ти баров какой смысл? Из них надо вырезать шипы, чтоб нейросеть поняла что такое эталонный график. Так же как и в случае фото — в обучающих небыло черных прямоугольников, поэтому сеть и посчитала их артефактами. Во-вторых, полученная нейросеть в боевом режиме тупо сгладит поданные ей последние  60 баров, и что. 
avatar
bascomo, есть MA на базе цифровой обработки сигнала, задержки вроде получаются в полбара, но это особых преимуществ не дает.
avatar
Sergeyka, это что такое?
avatar
bascomo, что имено? Есть ЦОС фильтры Баттерворта, есть SuperSmother от Эллерса, есть фильтр Калмана => Optimal Tracking Filters.doc
На TradingView куча примеров и у Чечета (https://chechet.org/) есть курс по ЦОС в трейдинге.
avatar
Sergeyka, «задержка полбара»? Звучит слишком хорошо, имхо.
avatar
Sergeyka, ПС И очень странно, почему уменьшение задержек фильтров не приводит к повышению эффективности ТС?.. Получается, что при этом слишком много шума начинает пролезать?..
avatar
ch5oh, именно так. Стандартный фильтр, который «без задержки» по сути есть комбинация сглаживателя и оценки производной (скорости), взятых в некоторыми весами. Как следствие, инерция первой компоненты и шум второй.
avatar
У меня есть методика защиты от ложного срабатывания стопа.

Заключается в том, что любую покупку стоит совершать при «бычьей» дивергенции, в таком случае стоп вообще не надо ставить. Если дивергенция сразу сработала, то у нас часть позиции уходит практически сразу в плюс (позиция делится), если происходит прокол вниз, так называемый сквиз, то образуется шип, на самом шипе мы покупаем 2-ю часть (как правило на самом конце шипа), дополнительно можно использовать ещё 3-ю часть, но при условии, что цена становится чуть выше 1-й покупки.

Смысл в том, что дивергенция всегда в 100% случаев себя отрабатывает в самом конце тренда, не важно восходящего или нисходящего, но работает лучше в самом конце нисходящего тренда.

Можете закодировать и проверить сами.

Если покупаете где попало, то стоп обязателен!
avatar

теги блога bascomo

....все тэги



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