Постов с тегом "Бэктестинг": 136

Бэктестинг


Есть ли премии за риск при покупке трендовых, "недооцененных" и малых компаний на Мосбирже? Много бэктестов

Более года назад в блоге на смартлабе публиковал разрозненные исследования по факторам Momentum, Size и Value. Сейчас решил собрать их в единый кулак в этом посте + обновить методику и данные.

Цель — системно проверить простые идеи инвестирования в акции: можно ли получить прибыль выше индекса если регулярно покупать n% акций с наибольшей целевой характеристикой из всего множества доступных бумаг на каждый период?

Основные результаты:

  • В целом, портфели из 25% наиболее трендовых, недооцененных (по мультипликатору P/E) и малых компаний обгоняют рыночные индексы на горизонте 20 лет;
  • Некоторые портфели имеют значимую положительную альфу — доходность с поправкой на риск по отношению к индексу;
  • Факторы слабо и даже отрицательно коррелируют между собой и с рынком. Это значит, что в разные периоды, как группа, были сильнее акции с определенным свойством: с низкой капитализацией, с относительной недооценкой или находящиеся в сильном растущем тренде.
Серьезные науки стараются не отвечать на частные случаи вроде «Почему мой прадед прожил до 90 лет если курил с 14 лет?». Они проводят клинические исследования, используют контрольные группы и ищут системные взаимосвязи. Также финансовые экономисты не стремятся объяснить почему акции Сбера так сильно выросли, а выделяют ключевое свойство присущее этой и другим акциям. Затем нарезают все доступные акции по данному свойству на каждый период и считают статистические метрики. Что-то подобное постараюсь сделать в этом мини-исследовании :)

( Читать дальше )

Эффект Линди - сколько времени будут «работать» стратегии

 

Эффект Линди.

 

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

Например, чем дольше «работает» стратегия, в бэктестинге или на реальном счету, тем больше ожидаемая продолжительность, что стратегия будет и дальше «работать». И хотя, это интуитивно понятно, тем не менее у этого есть своё название — эффект Линди (хотя, понятно это не всем, многим хватает тестинга за 1-2 года, а то и меньше).

Эффект Линди применяется к «нескоропортящимся» предметам, которые не имеют «неизбежного срока годности». 

( Читать дальше )

Сравнение бэктеста и прода, продолжение

    • 25 ноября 2021, 19:05
    • |
    • grepan
  • Еще

В продолжение прошлого поста сравниваю по логам еще один день:

На данных бэктеста: 17 сделок, прибыль 844 пунктов

OPEN 236 short 2021-11-24 07:25:00+00:00
CLOSE  short   2021-11-24 07:47:00+00:00 profit= 51.0
OPEN 237 short 2021-11-24 07:54:00+00:00
CLOSE  short   2021-11-24 07:55:00+00:00 profit= 86.0
OPEN 238 short 2021-11-24 08:01:00+00:00
CLOSE  short   2021-11-24 08:03:00+00:00 profit= 40.0
OPEN 239 short 2021-11-24 08:04:00+00:00
CLOSE  short   2021-11-24 08:45:00+00:00 profit= 32.0
OPEN 240 short 2021-11-24 10:10:00+00:00
CLOSE  short   2021-11-24 10:11:00+00:00 profit= 43.0
OPEN 241 short 2021-11-24 10:11:00+00:00
CLOSE  short   2021-11-24 10:27:00+00:00 profit= 32.0
OPEN 242 short 2021-11-24 10:33:00+00:00
CLOSE  short   2021-11-24 10:36:00+00:00 profit= 60.0
OPEN 243 short 2021-11-24 10:52:00+00:00
CLOSE  short   2021-11-24 10:56:00+00:00 profit= 58.0
OPEN 244 short 2021-11-24 11:15:00+00:00
CLOSE  short   2021-11-24 11:18:00+00:00 profit= 53.0
OPEN 245 short 2021-11-24 11:31:00+00:00
CLOSE  short   2021-11-24 11:35:00+00:00 profit= 48.0
OPEN 246 short 2021-11-24 12:22:00+00:00
CLOSE  short   2021-11-24 12:40:00+00:00 profit= 94.0
OPEN 247 short 2021-11-24 13:23:00+00:00
CLOSE  short   2021-11-24 13:30:00+00:00 profit= 61.0
OPEN 248 short 2021-11-24 13:45:00+00:00
CLOSE  short   2021-11-24 13:46:00+00:00 profit= 37.0
OPEN 249 short 2021-11-24 16:51:00+00:00
CLOSE  short   2021-11-24 16:54:00+00:00 profit= 40.0
OPEN 250 short 2021-11-24 19:19:00+00:00
CLOSE  short   2021-11-24 19:23:00+00:00 profit= 35.0
OPEN 251 short 2021-11-24 19:23:00+00:00
CLOSE  short   2021-11-24 19:39:00+00:00 profit= 39.0
OPEN 252 short 2021-11-24 19:42:00+00:00
CLOSE  short   2021-11-24 20:05:00+00:00 profit= 35.0



( Читать дальше )

Заглядывание в будущее

Сочинил на днях еще один нескучный метод трендовой торговли.
На скорую руку набросал скриптец в Ami, прогнал на SBRF в M1. 
Не какой-то там HFT, 0.23% на трейд, лимитные заявки, удержание ~500 баров:
Заглядывание в будущее

sharp = 5.15, CAR/MDD = 10.7, и это без реинвеста.

Какой поразительный успех!
Вышел подышать на набережную, стал присматривать яхту. С-189 конечно оптимальный вариант, но ледокол «Сибирь» тоже неплох...

Перевел с AFL в Lua для робота, еще один фигатор типа «тренд», куда проще предыдущего, 10 строчек. Прогнал бэктест роботом на том же интервале… Эээ чего-то совсем не сходится...

Посмотрел на исходный AFL повнимательнее. Чорд, впопыхах неаккуратно написал. Нельзя же выставлять заявку на том же баре, на котором медиану взял.

было:
M = (H + L)*0.5;
BlaBlaMagic(M);

стало:
M = Ref((H + L)*0.5, -1); // сдвиг вектора на 1 бар назад
BlaBlaMagic(M);

Результат немного поменялся:
Заглядывание в будущее

Всего 1 минутный бар, а какая разительная разница!

Пока придется подождать с приобретением яхты…

TesterDashboard - эффективное привлечение эволюционной интеллектуальной машины к поиску закономерностей.

    • 14 октября 2021, 02:30
    • |
    • fxsaber
  • Еще

Идея не нова, вопрос был только в реализации.

Платформа MetaTrader 5 обладает возможностями автоматизации Тестера. Расчет огромного количества данных на истории реальных тиков — обыденность.

Проверка адаптивности ТС — аналогично.


Обработка расчетов.


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

Это можно делать двумя способами:

  1. Создать автоматический критерий, который отфильтрует что-то стОящее от вычислительной шелухи.
  2. Перебрать руками каждый кусочек цифровой кучи, доверяя фильтрацию мощной интеллектуальной машине — головному мозгу человека.


В первом случае получается быстро, но можно легко что-то упустить, действительно, важное.

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



( Читать дальше )

51 757% на пересечении простых скользящих средних в 2021 году

— две простые скользящие средние 10 и 20 дней
— дневной таймфрейм
— комиссия 0.05% за сделку
— вход: короткая скользящая оказывает выше длинной
— выход: короткая скользящая средняя ниже длинной, то есть только лонг
— каждый раз входим на 95% от капитала

49 тикеров с 2005 года:

— топ 10 по капитализации из SP500: AAPL, MSFT, AMZN, FB, GOOGL, GOOG, TSLA, NVDA, JPM, JNJ
— топ 10 по капитализации американских ETF: SPY, IVV, VTI, VOO, QQQ, VEA, IEFA, AGG, VTV, VUG
— MOEX10: MAGN, GMKN, POLY, GAZP, SBER, YNDX, LKOH, ROSN, AFKS, TATN
— фьючерсы с мосбиржи: Si, RTS, BR, GOLD, SBRF
— топ 10 крипты по стоимости: BTCUSDT, ETHUSDT, BNBUSDT, ADAUSDT, XRPUSDT, DOGEUSDT, DOTUSDT, SOLUSDT, UNIUSDT, LINKUSDT, LTCUSDT, LUNAUSDT, MATICUSDT, ICPUSDT

Я сейчас ковыряю backtrader, поэтому на нём и тестировал. Посмотрим что там у нас получилось. Вот топ 10 тикеров по доходности. Доходность в процентах.

51 757% на пересечении простых скользящих средних в 2021 году
Топ 10 тикеров по доходности. Неплохо для элементарной стратегии.


Что видим? В топах крипта. Собственно не удивительно, с такой волатильностью.

( Читать дальше )

Как быстро оценить свой портфель

Привет всем. Чтобы не изобретать велосипеды #софты для просмотра структуры портфеля#.

Скачиваем R, RStduio. В RStudio устанавливаем библиотеки: rusquant, PerformanceAnalytics, PerformanceAnalytics.
Добавляем следующий код в RStudio.

Подключаем библиотеки:

library(rusquant)
library(PerformanceAnalytics)
library(PortfolioAnalytics)

Задаем тикеры, веса, начальную дату и просто переменную куда вытянем цены.

tickers <- c("FXGD","IRAO")
weights <- c(.5,.5)
start_data <- "2014-01-01"
PortPrices <- NULL

Вытягиваем данные с финама, есть и другие источники mfd,alor(вроде)

for(curr in tickers) {
               PortPrices <- cbind(PortPrices, getSymbols(curr, src = 'Finam', auto.assign = FALSE)[,4])
}

Тянем значения индекса, очищаем от пропущенных значения, считаем дневную доходность.

benchmark <- getSymbols("MICEX", src = "Finam", auto.assign = FALSE)[,4]
benchmarkRet <- na.omit(ROC(benchmark))
Тоже самое для портфеля акций, плюс считаем портфель и включаем ребалансировку каждый месяц.

PortReturn <- na.omit(ROC(PortPrices))
PortRet <- Return.portfolio(PortReturn, weights = weights, rebalance_on = "month")
PortCum <- cumsum(PortRet)
Micex <- cumsum(benchmarkRet)


( Читать дальше )

....все тэги
UPDONW
Новый дизайн