Перекуплена ли Америка?

13 июля 2021     556   

Выводы.

  1. Перекуплена.
  2. И похоже это для нее плохо.
  3. Но это не точно.

А дальше будет простыня текста, но помните, что вывод №3 главный.
А еще п.4: я мог накосорезить в элементарных вещах, код на R в конце, буду благодарен за проверку.

Пара вводных слов в режиме вопрос-ответ:

Прошлые доходности не гарантируют будущих. – Согласен. Гарантий вообще нет. Сжигаем все бектестеры? На основании исторических данных я бы ожидал большей вероятности того или иного сценария. При условии, что за этими данными (наблюдениями) есть какая-то модель. Мы ожидаем, что в будущем доходность акций скорее всего будет выше доходности облигаций. Потому что премия за риск (модель) и исторические данные (бектестеры).

А чем CAPE ну строило? – Оценка одного и того же объекта через метрики разной природы скорее всего точнее. В отличие от CAPE я не использую ни доходность, ни инфляцию. Да и сам Шиллер прекрасно объясняет, почему капе не работает (сейчас? теперь?).

Ты что, открыл грааль? Зачем выкладываешь? – это совсем не грааль, и даже близко неприменимо для спекуляций (на мой взгляд). Не вижу смысла расписывать подробно, но идея использовать найденные закономерности (закономерности ли?) для «торговли» примерна так же глупа, как встать в позицию «шорт облигаций+лонг акций» на основании того, что обычно акции вырастают сильнее облигаций.

Идея посчитать перекупленность той или иной страны (региона, отрасли…) не через CAPE родилась у меня после поста Михаила @Disputy. Оригинальную метрику я решил изменить. Моя метрика:
(цена_USA_сегодня/цена_USA_n-месяцев-назад)/( цена_ WORLDexUSA _сегодня/цена_WORLDexUSA_n-месяцев-назад).
Цена здесь - значение индекса total return.
И такое на скользящем окне. Идея посмотреть как соотношение доходностей в прошлом влияло на соотношение доходностей в будущем. А то разговоров вокруг «как брать такую дорогую Америку?», «Пузырь не виден, пока не лопнул», «Деревья не растут до небес» и т.д... Хочется чего-то более-менее численного.

По сути, просто на исторических данных пытаюсь выяснить, существует (существовала ли, если точнее) ли регрессия к среднему или нет. Вот только средним мы будем считать не традиционные 5% сверх инфляции, а доходность всего мира (акции) за период. Почему вообще должна наблюдатся регрессия к среднему я для себя строго не формулировал, думаю рассуждению будут примерно как тут

И, да, никакого фундаментала, тупо «трейдинг на безумно больших таймфремах» (с) Силаев.

Источник данных https://www.msci.com/end-of-day-data-search, тип индекса Gross. Пока сравнивал World_ex_USA (из раздела DM), и USA. Данные доступны с 1970 года, на них и считаю. Потом может сделаю по развивающимся, но там короткая история.

Метрику в дальнейшем буду называть r.rise (relative rise). n.past- количество месяцев истории для расчёта метрики (фактически это моментум)). Будущая доходность рассчитывал тоже на окне n.future- количество месяцев, через которое будем смотреть относительную доходность. r.rise- относительный рост. Он показывает во сколько раз лучше или хуже вложение в Америку по сравнению со всем миром без Америки. Если 1 – то все равно. Больше 1 – кто вложился в Амерку- выиграл. Если меньше единицы – наоборот. Внимание! Положительный или отрицательный результат будущих инвестиций не оценивался. То есть если США упали на 20%, а мир-без-сша на 25% то r.rise=0.8/0.75=1.067 (то есть США потеряли наших денег меньше, чем альтернативные вложения)

Разумные (на мой взгляд) окна

n.past_n.future (Почему так). Длинна окон в месяцах.
180_60 (Что-то штаты 15 лет перформят, как сейчас. Чего ждать через 5 лет?)
120_36 (10 лет в прошлое, 3 года в будущее- срок меньше минимального для акций, но пусть будет)
60_60 и 36_36 (Все данные старше 5 лет не актуальны, а если данных меньше 3 лет- их мало. (житейская мудрость аналитиков))
36_12 (Кое-кто желал таймить, срок поставил себе в 1 год 😉)
180_12 (Максимальная разумная история, ребаланс раз в год).

180_60

(т.е. 15 лет истории, ожидаемый результат через 5 лет)
Распределение относительной доходности. Зрительно достаточно периодов, когда США проигрывали «миру» (т.е. значение менее 1)


Я проверил два способа порезать на карманы: с равным количеством наблюдений внутри кармана

И на карманы равной ширины с сильно переменным количеством измерений внутри кармана

Буду использовать первый способ, т.к. в нем лучше видна «переходная зона». Во всех случаях красной заливкой выделен карман, куда попадает текущее значение r.rise.

Поясню, это violin_plot, огибающая кривая- симметрично отраженная плотность вероятности получения значения r.rise.future, горизонтальные прямые внутри – медиана и квартили. Обратите внимание на группу в кармане NA- это значения относительно роста, для которых нет предыдущей истории.

Ещё про виолины. По оси x карманы, в которые попадает значение r.rise на конец периода n.past. Пусть условное "сейчас" как раз находится в конце периода n.past. По оси y значения (разброс значений) r.rise которое будет получено по прошествии периода n.future от условного "сейчас". Удаление огибающей от вертикальной оси виолина-вероятность получения конкретного значения с оси y.

Кому ящик с усами привычнее, вот, для сравнения.


Но может быть рост за период был аномально сильным? То есть, возможно, когда Штаты растут лучше мира, но в целом рост не взрывной- то это ок, а когда «взлет ракеты» то это пузырь? Цветом обозначим рост Штатов за период n.past, вертикальная черта- значение r.rise в мае 2021, текущее значение роста США 4,63 (за последние 15 лет!) и это совсем не рекорд. Зрительно абсолютный рост слегка коррелирует с последующей относительной доходностью.

Предыдущая доходность влияет: «чем хуже было, тем лучше будет».

Ладно, но наши окна нельзя считать независимыми, они идут одно за другим. Попробуем посмотреть последовательность результатов. Цветом от синего к красному обозначена хронология. Сначала строил только точками, но со стрелочками оказалось нагляднее, проще понять направление движения «во времени»


Конец графика это 2016-05-31. Дальше этого срока будущих пятилетних доходностей естественно нет. Верхний график: ось x – относительная доходность США/Мир в конце 15 летнего периода (r.rise); ось y – относительная доходность спустя 5 лет (r.rise.future) Нижний график – наши дни. По оси x тот же r.rise, по оси y -случайные значение, чтобы линия не сливалась в одну горизонтальную черту. Мы же не знаем r.rise.future для текущего момента. Где-то в этот момент я подумал, что переизобретаю велосипед. Или что-то идеологически похожее. Ну, как минимум, видно, что история до 1990 года- уже история.

Вообще, самый неоднозначный график. Видно, что США могли быть достаточно долго хуже мира, и в прошлом и в будущем. И с позицией "лучше мира"- так же. Пока это позиция не "сильно лучше". А вот с таким диким опережением, как сейчас, данных мало.

Есть еще возражения против полученных результатов, приведу их в конце. А пока посмотрим другие окна.

Окна 120_36


Все так же апокалиптично, с ростом r.rise Америка становится все более неуютной. Обратите внимание, как иногда врет медиана. Медиана то около 1 (нет особого преимущества ни у мира ни у США), а вот максимум вероятности лежит совсем не на ней (а еще есть бимодальное распределение)
Диаграмма рассеивания.

Шанс, что США будут лучше мира через 3 года есть, но невелик, при текущих значениях r.rise (черная черта, как и везде далее). Последний usa.rise на этих окнах 3.8 (т.е. индекс США вырос в 3.8 раза в 10 летний период для которого есть данные о будущих доходностях, в данном случае с 2008-05-31 по 2018-05-31), а перформанс США был при usa.rise ближе к 6.

Видимо я устал смотреть на график пути. Нет однозначных интерпретаций. Разве что далекая история оказалась ближе.

Окно 60_60



Текущее значение 1,36 на этих окнах- в целом позитивно. И на виолинах (ниже), формально все хорошо. Вот только положение медианы ведет себя не монотонно. Изменение r.rise о 0,5 к 1,2 снижает медиану (и соответственно ожидаемую доходность). А потом скачком происходит рост ожидаемой доходности. Возможно- неудачное сочетание окон.

Из диаграммы рассеивания может показаться, что точки легли на 2 «логарифмические» кривые, и хочется сказать – ну вот, две истории, старая и новая. Из диаграммы пути видно, что, как минимум по времени разнести так точки нельзя.

Окна 36_36 и 36_12

Не показали каких-либо заметных корреляций, и графики по ним я удалил при обновлении поста - зачем захламлять экран?

Нет даже намека на возможность каких-либо прогнозов. Что, вобщем-то логично: акции и горизонт короткий, и история.

Ну и 180_12



Текущее значение r.rise 2.20. Ну так… в истории было пара случаев, когда при такой метрике Штаты перформили мир в следующий год… но я бы не рассчитывал. И опять этот скачек доходности (ее медианы) на 1.12…


Выкинул данные до 1993 года
)

Итак, снова выводы и оговорки

  1. И на больших временах, и на коротких легкое превышение относительной доходности США скорее хорошо, чем плохо. Сейчас – совсем не легкое.
  2. Мир в данном случае DMexUSA. Ну такое, не самое релевантное для сегодняшнего дня. Надо бы сделать в сравнении с развивающимися, но для них история короткая.
  3. На длинных окнах мы теряем много данных, и, хоть все корреляции «на глазок» выглядят лучше, они получены на меньшей выборке. На коротких окнах пропадают корреляции.
  4. Соотношением окон можно получить разнообразные результаты. Какие бы окна разумно посмотреть?
  5. Лично у меня появилось желание подрезать долю Америки (у меня перевес), хотя начинал считать с намереньем подтвердить (себе в первую очередь), что опережающий рост США не является индикатором ничего плохого. И в любом случае, это все не является инвестиционной рекомендацией.

*И главный вопрос: на сколько такой подходы выглядит адекватным?*

Надеюсь теперь подписи по осям читаются.

Код

library(ggplot2)
library(dplyr)
library(data.table)
library(lubridate)


r.mom <- function(dt, n.past, n.future, n4positive=12,n.cut) {
  setorder(dt, date)
  dt[,world.rise:=(world/shift(world, n=n.past))]
  dt[,usa.rise:=(usa/shift(usa, n=n.past))]
  dt[,r.rise:=usa.rise/world.rise]

  dt[,r.rise.future:=(shift(usa, -n.future)/usa) / (shift(world, -n.future)/world)]

  dt[,r.rise.cut:=cut_number (r.rise, n.cut )]
  dt[,r.rise.cut.interval:=cut_interval (r.rise, n.cut )]
  dt[,last.per:=fifelse(usa/shift(usa, n=n4positive)>1,T,F)]
  dt[,future.positive:=fifelse(shift(usa, -n4positive)/usa>1, T,F)]
  return(dt)
}

dt <- r.mom(dt, n.past=36, n.future=12, n.cut=10 )

ggplot(dt)+
  geom_density( aes(x=dt[,r.rise]))+
  theme_minimal()

ggplot(dt[,], aes(x=r.rise.cut.interval, y=r.rise.future))+ #, col=future.positive
  geom_violin( scale="width",draw_quantiles=c(0.25,0.5,0.75))+
  theme_minimal()+
  scale_y_continuous(breaks = c(0.5, 075, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4))+
  theme(axis.text.x = element_text(angle=45))+
  geom_hline( aes(yintercept=1 ), col="red" )

ggplot(dt[,], aes(x=r.rise.cut, y=r.rise.future))+ #, col=future.positive
  geom_violin( scale="width",draw_quantiles=c(0.25,0.5,0.75))+
  theme_minimal()+
  scale_y_continuous(breaks = c(0.5, 075, 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4))+
  theme(axis.text.x = element_text(angle=45))+
  geom_hline( aes(yintercept=1 ), col="red" )

ggplot(dt[,], aes(x=r.rise.cut.interval, y=r.rise.future))+ #, col=future.positive
  geom_boxplot( scale="count")+
  theme_minimal()+
  theme(axis.text.x = element_text(angle=45))+
  geom_hline( aes(yintercept=1 ), col="red" )

ggplot(dt[,])+
  geom_point(aes(x=r.rise, y=r.rise.future, col=usa.rise ),size=4)+ #, shape=future.positive
  geom_vline( aes(xintercept=last(dt[,r.rise]) ) )+
  geom_point(aes(x=last(dt[,r.rise]), y=1, size=last(dt[,usa.rise])), col="white" )+
  theme_minimal()

tmp <- na.omit(dt)
tmp2 <- dt[is.na(world.rise)==F & is.na(r.rise.future)==T,]
tmp2[,r.rise.future:=rnorm(nrow(tmp2),mean=0,sd=0.1)]

breaks <- c(tmp[1,date],
            tmp[floor(nrow(tmp)/4), date],
            tmp[floor(nrow(tmp)/2), date],
            tmp[floor(3*nrow(tmp)/4), date],
            tmp[nrow(tmp), date] )

ggplot(tmp[,])+
  theme_minimal()+
  geom_path(aes(x=r.rise, y=r.rise.future, col=date ),
            arrow = arrow(angle = 9, length=unit(4, "mm"), type = "closed"))+
  geom_path(data=tmp2, aes(x=r.rise, y= r.rise.future, col=date),
            arrow = arrow(angle = 7, length=unit(3, "mm"), type = "closed"))+
  geom_vline( aes(xintercept=last(dt[,r.rise]) ) )+
  geom_point(aes(x=last(dt[,r.rise]), y=1 ), col="white" )+
  scale_colour_gradientn(colours = c('blue','green','red'), labels=breaks)
Связанные посты
20 комментариев 👇
Павел Комаровский, Помогаю управлять капиталом 14 июля в 06:55

Из текста я не понял, какой период анализируется. На мой взгляд, это ключевой вопрос: можно взять 10 000 дневных точек данных; но если это по факту промежуток, где США/мир раза три поменяли взаимный тренд - то, в каком-то смысле, мы анализируем выборку размером в три наблюдения. Насколько это можно экстраполировать на будущее - ну, не знаю.

Графики, если честно, совершенно не читаются - чтобы понять, что конкретно изображено, требуются весьма большие усилия. Может быть, так задумано. =)

Для меня такой подход не выглядит как что-то, что я бы захотел инкорпорировать в свою систему принятия решений.

  Развернуть 1 комментарий

@PavelKomarovskiy, добавил в текст, что с 1970 года, раньше данных нет.
Расширил описание виолинов, стало понятнее?
"Черно- синий" график (диаграмма рассеивания)- читаются?
Цветной график со стрелочками тяжёлый для понимания, его можно легко пропускать, он не вносит особых смысловых изменений, просто я на нем проверил один момент где можно себя обмануть и не нашёл там обмана.

  Развернуть 1 комментарий
Михаил Disputy, Разработчик ПО 13 июля в 08:58

Как всегда проблемы в количестве данных.
Поэтому особенно не понял причины отрезать данные с 1970 в некоторых сценариях.
Типа рынок поменялся?

  Развернуть 1 комментарий

@Disputy, Отрезал только в одном сценарии, в последнем. Да, данные выглядят "отдельно", к тому же находятся в области, далёкой от сегодняшнего значения r.rise. в любом случае выводы не меняются.

  Развернуть 1 комментарий

@Dalf, кстати, не знал, что вы США перевешиваете, а к этому как пришли?

  Развернуть 1 комментарий

@Disputy, да исключительно "качественные" прикидки:
Весь мир к ним скоррелирован (на глазок)
Печатают мировую валюту
Из компании по большому счету собирают прибыль во всех странах
Денег у них дофига, значит могут тратиться на высокорисковые проекты
Могут устоит полный хуавей конкурентам.
В общем те соображения, которыми легко себя обманывать

  Развернуть 1 комментарий

@Dalf, ясно, у меня проблема с утверждением "собирают прибыль по всему миру поэтому можно позволить себе немного хуже диверсифицироваться"

Если ставки на корпоративный налог в США серьезно повысят (и только там), поможет ли компаниям базирующимся в США это?

  Развернуть 1 комментарий

@Disputy,
А почему только там? Есть основания считать, что налоги по странам принципиально не согласованы?
И потом, Яндекс- это российская компания или голландская? Как и х5? Ну повысят в штатах налоги, а возможность уклониться уберут? Сразу?
Слишком неопределенно, не могу делать никаких предположений в стиле "если- то"

  Развернуть 1 комментарий

@Dalf, ну просто как сценарий, почему выручка по всему миру не поможет The Coca Cola Company

Я не знаю, как устроено налогообложение Яндекса (большая часть нашего индекса все-таки зарегистрирована в РФ), но думаю Кока Кола основную часть налогов оставляет в США, как и основной каркас SP500 или Russel 3000.

  Развернуть 1 комментарий

@Disputy, тут подумал, что у меня не сколько перевес Америки, сколько недовес DM. У меня перевес штатов и развивающихся. Причём штатов за счёт отраслевых. Позже в треде про составы опишу свое распределение наверное.
И это для фондового рынка. Если бетонквадраты считать частью портфеля, то у меня России 75%. Только я их учитываю отдельно, так как не готов к ребалансу между бетоном и ФР

  Развернуть 1 комментарий

@Dalf, а вы свое жилье здесь учитываете или дополнительные квадраты?

  Развернуть 1 комментарий

@Disputy, своё не считаю, только дополнительные

  Развернуть 1 комментарий

@Dalf, можно рассмотреть ЗПИФн, тогда можно как-никак ребалансить.

  Развернуть 1 комментарий

@Disputy, для этого текущие квадраты надо продавать, я как раз к этому не готов. По многим причинам. И ЗПИФн кажется далёким от жилой недвижимости

  Развернуть 1 комментарий

@Dalf, далеким, но иметь и жилую и коммерческую лучше, чем только жилую, мне кажется.
Но раз есть другие причины не продавать... так то сейчас кажется не очень плохой момент для выхода. Хотя может сейчас 2004 год на рынке недвижимости и через пару лет x2)

  Развернуть 1 комментарий
Михаил Disputy, Разработчик ПО 13 июля в 11:25

К сожалению картинки ужались, на них чисел не видно, и поэтому выводы 1 и 2 не очень очевидны из статьи.

  Развернуть 1 комментарий

@Disputy, копировал из ворда, там все ок было. Вечером попробую заново картинки перестроить, подписи поставлю крупнее.

  Развернуть 1 комментарий
Евгений Ширяев, ИТ-инженер и инвестор 13 июля в 17:13

Омайгад, пожалуйста сделайте нормальную верстку поста. Читать такое сложно.

  Развернуть 1 комментарий
Анатолий NeulovimiiJo, Мелкий клерк в крупной организации автор 13 июля в 17:33

Картинки поправлю, абзацы отбил пустой строкой, а какие ещё проблемы? Что поправить?
Код скрипта под спойлер почему-то убрать не получается, если что.

  Развернуть 1 комментарий

@Dalf, Вот так же гораздо лучше стало. Спасибо.

  Развернуть 1 комментарий

😎

Читать можно всем, но комментирование доступно только участникам Клуба.

Что вообще здесь происходит?


Войти