Skip to content

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 из-за их агрессивной рекламной политики в твиттере.