Проблема

Зарабатывать на фондовом рынке весело, и я перепробовал все виды стратегий. Одна из вещей, на которую я научился обращать внимание, — это предвзятость выживания, из-за которой ужасная стратегия может показаться фантастической.

Проблема проста. Если вы начнете с «текущего» списка акций, исторические данные, которые вы используете для разработки своей стратегии, не будут включать акции, которые ушли в ноль. Отфильтровывая самые большие убытки, становится очень легко разработать стратегию, которая выглядит хорошо. но на самом деле не будет работать, когда вы попытаетесь реализовать его.

Он также может быть более тонким. Например, если вы возьмете список взаимных фондов, предлагаемых определенной компанией, вы не увидите ни одного из фондов, деятельность которых была прекращена из-за плохой работы (или по другим причинам).

Пример с отдельными акциями S&P 500

Тикеры сейчас против тикеров тогда

Распространенная стратегия состоит в том, чтобы попытаться определить подмножество компаний S&P 500, которые, вероятно, превзойдут другие. Что-то вроде «держите 10 акций S&P 500 с самым высоким ростом за последний месяц».

Предположим, мы хотим использовать данные начала 2019 года для построения какой-то стратегии. Рассмотрим два подхода:

  1. Получить список тикеров S&P 500 на сегодняшний день (10 ноября 2019 г.)
  2. Получить список тикеров S&P 500 на начало периода времени для тестирования на исторических данных (1 января 2019 г.)

Кажется, что это не будет иметь большого значения, поскольку мы говорим только об 11-месячном периоде.

Мы можем получить список символов тикера со страницы Википедии для текущих компаний S&P 500, где есть таблица, которая выглядит следующим образом:

Просматривая историю изменений Википедии, я обнаружил, что следующие акции были частью S&P 1 января, но не 10 ноября:

>>> "APC"  "BHGE" "BHF"  "DWDP" "ESRX" "FLR"  "FL"   "GT"  "HRS", 
    "HCP"  "JEF"  "LLL"  "MAT"  "KORS" "NKTR" "NFX"  "PCG" "RHT" 
    "SCG"  "SYMC" "TMK"  "TSS"

Большинство из этих компаний выбыли по причинам, отличным от низкой эффективности (изменение тикера, слияние/поглощение и т. д.). После некоторого поиска в Google я определил, что 6 из 22 выбыли из-за соображений рыночной капитализации.

Между тем, эти компании были добавлены в течение 2019 года:

>>> "AMCR" "ATO"  "BKR"  "CPRI" "CDW"  "CE"   "CTVA" "DOW"  "DD"     
    "FRC"  "GL"   "PEAK" "IEX"  "LHX"  "LVS"  "LDOS" "MKTX" "NLOK"
    "NVR"  "TMUS" "TFX"  "WAB"

И я считаю, что 12 из них были связаны с ростом.

Обмен проигравших на победителей

Давайте посмотрим на эффективность 12 дополнительных акций, которые мы добавили бы, если бы использовали список от 10 ноября, и 6, которые мы исключили бы, если бы использовали список 1 января.

Во-первых, загрузите ежедневную прибыль для каждой акции:

tickers.leftout <- c("BHF", "FLR", "FL", "MAT", "NKTR", "PCG")
tickers.addedin <- c("ATO", "CDW",  "CE",   "FRC", "GL",   "IEX", 
                     "LVS", "LDOS", "MKTX", "NVR", "TMUS", "TFX")

Во-вторых, рассчитайте общий рост и максимальную просадку:

df <- c(tickers.leftout, tickers.addedin) %>%
  load_gains(from = "2019-01-01") %>%
  calc_metrics(c("growth", "mdd"))

В-третьих, график общего роста по сравнению с MDD:

df$Group <- c(rep("Removed from backtest", 6), 
              rep("Added to backtest", 12))
ggplot(df, aes(x = `Max drawdown (%)`, y = `Growth (%)`, 
               color = Group, label = Fund)) + 
  geom_point() + 
  geom_label_repel(show.legend = FALSE) + 
  labs(title = "Growth vs. Max drawdown")

Как видите, средства, которые мы добавили, сильно выросли (в среднем +39,8%), а те, которые мы удалили, сильно проиграли (в среднем -18,5%).

Двое выбывших, BHF и MAT, на самом деле не были проигравшими. По-видимому, включение в S&P не полностью основано на рыночной капитализации, и по какой-то причине эти две акции были переведены в S&P MidCap 400, несмотря на довольно сильный рост.

В любом случае, вы можете себе представить, как обмен акциями с 60-процентной разницей в историческом росте может исказить бэктест. Стратегии всегда будут выглядеть лучше, чем они есть на самом деле. Чем дольше срок, тем лучше они будут выглядеть.

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