-
Notifications
You must be signed in to change notification settings - Fork 0
Articles
Paul Loyd edited this page Jan 8, 2017
·
4 revisions
В статье ребята напилили систему, которая предсказывает тренды по новостям. Выступали с ней на KDD-2000. Одна из первых статей на тему.
- Взяли ~38 000 новостей с Yahoo по 127 компаниям на интервале 10.1999 - 02.2000. Компании выбирали по доступности новостей.
- Взяли котировки за тот же период с интервалом в 5-10 минут.
- Сначала выявили "тренды" — небольшие интервалы, на протяжении которых курс достаточно хорошо описывается линейно. Делали это с помощью сегментированной регрессии следующим образом: шагали по всему временному ряду окном длиной в 10 точек (~1 час), разбивали его каждый раз пополам, и каждую половинку приближали линейной регрессией. Потом смотрели на разницу между наклонами прямой слева и прямой справа — и если она была достаточно большой, делали "разлом". Если сделали разлом, то потом рекурсивно пробовали сломать каждую половинку. Таким образом они превратили временной ряд в дискретные тренды.
- Потом на основе трендов выявили сегменты побольше (каким-то хреном с помощью кластеризации). За 1,5 месяца по Yahoo вышло 16 сегментов, "интересных" (быстро растущих или падающих) из которых — 11. Говорят, по остальным компаниям картина такая же.
- С новостями не игрались.
- В один объект данные объединяли следующим образом: брали тренд, брали N-часовой интервал до начала тренда и заявляли: "каждая новость из этого интервала породила наш тренд". Таким образом получились пары вида {новость, тренд}. В качестве значения N использовали 0, 1, 5, 10. Лучше всего зашло для N = 0.
- TODO
- Торговали виртуальными деньгами во время 40-дневного периода. Акции Yahoo купили-продали 570 раз. Покупали всегда на $10 000. Для одних компаний оказались в значительном плюсе, для других — в значительном минусе. В среднем вышли в плюс на $20 000. Но, если у них было так много шекелей, что они покупали каждый раз на $10 000, то, возможно, деньги можно было вложить и получше.
- Трейдинговая стратегия была простая: покупаешь на $10 000, через час продаешь. Если в течение часа есть вариант получить +1% — продавали сразу. Похожим образом защищались от падений. Аналогичная ситуация с опционами.
- Прогнали 1000 раз случайные покупки по той же трейдинговой стратегии с похожим распределением. В среднем вышел минус на $9 000.
- Пробовали обучать универсальную модель, предсказывающую для всех компаний — получилось хуже раза в два.
- Смущает, что stdev по компаниям получился высокий для всех вариантов обучения.
- Собирали посты с твиттера, чуть больше 4-ёх миллионов за 14 месяцев для 13 компаний, DJIA и NASDAQ-100. По каким термам искали явно не указано, но судя по тем, на кого ссылаются, искали по тикеру.
- Ежедневные котировки.
- Для каждого твита определили тональность (положительный/отрицательный), используя sentiment140.
- На основе тональности выделили несколько признаков:
- Тенденция (bullishness) — логарифм отношения количества положительных к количеству отрицательных статей за день.
- Объём сообщений (message volume) — логарифм суммы положительных и отрицательных твитов.
- Согласованность (agreement) между твитами — выражение от отношения разности количеств твитов разной тональности к общему количеству твитов.
- Для каждой из этих признаков ещё по carried признаку, отличаются тем, что сдвинуты на один день.
- Выделили несколько признаков для котировок:
- Возврат (return) — логарифм прибыли по цене на момент закрытия.
- Изменчивость (volatility) — диковатое выражение, учитывающее цены максимума, минимума, на момент открытия и закрытия.
Корреляционная матрица:
TODO: оценивали причинность по Грэнджеру с окном от 1 до 7 недель.
TODO: EMMS + обычная OLS регрессия.
- Проверяли применением EMMS дважды: с твиттер-фичами и без.
- MAXPE для DJIA — 1.76, для NASDAQ-100 — 2.69.
- Направление: DJIA — 90.8% (kek), NASDAQ-100 — 82.8
- Аномальное поведение для EBay из-за их агрессивной рекламной политики в твиттере.