Чартовый Шарм – Магия Теханализа Светланы Спириной

Теоретики часто полностью отрицают технический анализ. Успешные практики - обычно нет, но относятся к нему скорее как к искусству, которое не у каждого работать будет. Я проанализировал историю инвест-идей Светланы Спириной и статистически доказал, что ее успех (с вероятностью 95%) неслучаен. Светлана, по ее собственным словам, торгует только по теханализу.

Наш разговор со Светланой завязался с моего ироничного замечания в Фейсбуке о том, что куда же, мол, (после четвертой недели роста SP500) подевались все паникерские прогнозы, коими еще недавно пестрела моя лента (при этом я отметил, что сам не исключаю очередного шторма на рынке).
Оказалось, что Светлана - независимый эксперт - торгует и подает идеи. На сайте БКС доступна история ее рекомендаций - почти 300 инвестмент идей, что вполне достаточно для статистического анализа.

Конечно, любой статистический анализ только тогда может дать верные результаты, когда исходные данные верны. В случае истории инвест-идей на БКС имеют место отдельные ляпсусы, как например, вот этот
Всего же таких ляпов было 7

Кроме того, был один дубликат (Северсталь 1038,6 1010 0,0275 13.11.2018 19.11.2018) и одну транзакцию (PLT-03.19 851 817,5 -3,94% 01.11.2018 28.11.2018) не удалось импортировать по техническим причинам (БКС не дает копипастить данные из браузера - так что пришлось вспомнить молодость и заняться кулхацкерством HTML кода страницы).

В результате у нас имеются 294 записи, что вполне достаточно для статистического анализа. Еще раз оговоримся, что на его выводы можно полагаться лишь тогда, когда исходные данные верны. Я исхожу из этого ибо у меня нет оснований полагать, что БКС их фальсифицирует. Собственно, статистическая наука позволяет проверить и это. Но тогда пришлось бы проделать много работы, причем совершенно ненужной - сомневающимся куда проще (и полезнее) следить за идеями Светланы в реальном времени и проверять, не было ли подмен задним числом.

Закон Больших Чисел - основа стат. анализа

Не будет ничего удивительного в том, если из 10 бросков правильной (т.е. симметричной) монетки выпадет 6 орлов и 4 решки. Такое возможно чисто за счет случайности. А вот если из 100 бросков выпадет 60 орлов - то с вероятностью 95% монетка несимметрична! Хотя в обоих случаях соотношение одно и то же: 6:4 = 60:40.

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

[collapse]

Для начала импортируем очищенные от ляпов данные в программу статистического анализа R и построим гистограмму доходностей инвест-идей Светланы.
Для этого (предварительно скопировав данные в клипбоард) введем в R следующие команды:

SVE = read.table(file="clipboard", header=T, dec=",", sep=";")
plot(hist(SVE$Return))
abline(v=mean(SVE$Return), col="red")
abline(v=median(SVE$Return), col="blue")

Получим следующую картинку:

Видим, гистограмма несимметрична, и под нормальное распределение (Гауссов колокол) не ложится. Впрочем, не Гауссом единым жива статистика. Далее видим, что и средняя (красная) и медиана (синяя) положительны (это очень хорошо). Более того, мы наблюдаем довольно редкий случай, когда медиана больше средней. Это, в целом, тоже хорошо - потому что тут вот какая штука: снизу доходность ограничена -100%, а сверху (теоретически) - ничем. Поэтому у рисковых трейдеров пара особо удачных трейдов искажают среднюю (но не медиану).
Ложка дегтя - видно, что хотя в массе своей положительные доходности берут верх, относительно большие отрицательные доходности (от -4% и хуже) встречаются чаще чем большие положительные (но пока четко соблюдаются стоплоссы, это некритично).

Теперь посмотрим на BoxPlot доходностей (отдельно по каждому инструменту)

par(oma=c(4,0,0,0)) #set outer margins
boxplot(SVE$Return ~ SVE$Asset, las=2)
abline(v=seq(1:length(SVE$Return)), lty="dotted")
abline(h=0, col="red", lty="dashed")

В целом, никаких аномалий не наблюдается. Разброс (и в целом негативный результат) по Micron Tech [MU] любопытен - фундаментально акция - одна из самых дешевых в SP500, а ведет себя аномально - ну да тому виной торговая война с Китаем (Комментарий Светланы: по MU стоял короткий стоп около 2%. закрыли по ГЭПу на открытии , отсюда такой большой минус). Выбросы вниз с Twitter и Mattel тоже понятны - акции-то волатильные. Что касается исключительно удачной идеи по BR-2.19 - тут, вероятно, просто повезло.
В целом же можно сказать, что Светлана не гонится за большой прибылью, но и четко ограничивает убытки. Для активно торгующей стратегии с жесткими рамками по просадке - самое то!

Теперь посмотрим статистику по лонгам и шортам.

N = length(SVE$Return)
longs = list()
shorts = list()
for(j in 1:N)
{
    if((SVE$OpenPrice[j] > SVE$ClosePrice[j]) && SVE$Return[j] > 0) {
        shorts[[j]] = SVE$Return[j] #positive short (win)
    } else if((SVE$OpenPrice[j] < SVE$ClosePrice[j]) && SVE$Return[j] < 0) {
        shorts[[j]] = SVE$Return[j] #negative short (loss)
    } else {  
        longs[[j]] = SVE$Return[j]
    }
}
par(mfrow=c(1,2))
arrLongs = unlist(longs)
arrShorts = unlist(shorts)
hist(arrLongs, main=paste0(length(arrLongs), " long Trades"))
abline(v=mean(arrLongs), col="red")
abline(v=median(arrLongs), col="blue")
hist(arrShorts, main=paste0(length(arrShorts), " short Trades"))
abline(v=mean(arrShorts), col="red")
abline(v=median(arrShorts), col="blue")

Сразу видим, что Светлана торгует в шорт значительно реже чем в лонг, но уж если - то наверняка: по шортам медиана и средняя ближе друг к другу - т.е. результативность выглядит несколько равномернее чем по лонгам (при этом она и по шортам, и по лонгам положительная - как видно из графиков). Кстати, это тоже логично - трейды Светланы обычно длятся несколько дней, а про рынки в целом известно, что бОльшую часть времени они растут, но медленно... а если уж падают, то быстро.

library(lubridate)
holdingPeriods = as.numeric(dmy(SVE$CloseDate) - dmy(SVE$OpenDate))
hist(holdingPeriods, main="Holding periods in days")

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

N_SIMS = 100000
meanReturnsBootstrap = array(0.0, N_SIMS)
for(j in 1:N_SIMS)
{
    vyborka = sample(SVE$Return, N, replace=TRUE)
    meanReturnsBootstrap[j] = mean(vyborka)
}
hist(meanReturnsBootstrap)
abline(v=quantile(meanReturnsBootstrap, c(0.005, 0.995)), col="red", lty="dotted") 


До 99%-го доверительного интервала мы недотянули буквально чуть-чуть (на графике это и незаметно, но левая красная пунктирная линия лежит на -1.725528e-05, т.е. чуть-чуть левее нуля). Зато уж с 95%-й вероятностью мы имеем полное право утверждать - эффект от технического анализа Светланы Спириной есть, и он - положительный и неслучайный.
Кстати, и до 99%-го интервала скоро можно будет дотянуть, как только история рекомендаций станет еще длинее (еще раз - закон больших чисел - наше все).

P.S.
Математика - наука точная, поэтому стоит сделать ряд важных уточнений и оговорок.

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

2. Положительный эффект от рекомендаций - это необходимое, но еще не достаточное условие для получения прибыли. Не соблюдая мани менеджмент слить можно даже при позитивном мат. ожидании. Кроме того, нужно еще учитывать комиссии брокера и прочие издержки.
Если взять историю рекомендаций "в сферическом вакууме", то получим доходность в 137%.

ts.plot(1+cumsum(SVE$Return), main="equity curve in Spherical Vacuum")

Это практически совпадает с той доходностью в 140%, которую Светлана, по ее словам, подсчитала в конце 2018-го.

3. Ну и конечно следует понимать следующее: мы статистически доказали, что успех Светланы не был случаен. Но формально это не дает гарантий, что так будет продолжаться и дальше. А фактически - есть все основания полагать, что именно так и будет. Всем интересующимся я - как обычно - предлагаю понаблюдать за рекомендациями Светланы еще как минимум полгода.
Дополнительно Светлана подчеркивает, что благодаря технике она может анализировать любые рынки. Лично я не сомневаюсь, что для этого утверждения есть основания - но следуя подходу судьи Моргена мы пишем, что наблюдаем, а чего не наблюдаем, того не пишем. В статистике есть идеи по российским и американским акциям, некоторым коммодитиз (прежде всего, по нефти), а вот, скажем, по валютным парам (пока) нет.

Комментарий Светланы по поводу валютных пар

отсутствие валютных пар упомянуто: таких идей нет, поскольку минимальная прибыльность, которую автор должен показать по краткосрочным идеям - 2% ( то есть идея кроется либо по окончпнии срока, либо по выставленным изначально ордерам). Валютные пары "физически" столько не проходят за срок менее 10ти дней. Даже фьюч на доллар/ рубль нужно взять настолько удачно, чтобы он прошел 2%. Например , последняя идея по фьючу на долл/руб, у которой в пятницу завершился срок, висела 8 дней практически в нуле.. Поэтому в подаче идей по валютным парам на крсткосрок ( 2%) и среднесрок (4%) смысла мало, они столько ходят крайне редко.

[collapse]

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

Like this post and wanna learn more? Have a look at Knowledge rather than Hope: A Book for Retail Investors and Mathematical Finance Students

FinViz - an advanced stock screener (both for technical and fundamental traders)

Author: Vasily Nekrasov

Founder of letYourMoneyGrow.com