Постов с тегом "бэктестинг": 138

бэктестинг


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)


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

TesterReport - ощути всю мощь MT5-тестера в один клик!

    • 07 октября 2021, 09:57
    • |
    • fxsaber
  • Еще
После MT4 идет неприятие MT5 из-за непонятной ордерной системы. Особенно это сказывается в Тестере стратегий: отчет MT4 интуитивно понятен, в отличие от MT5.По этой причине, когда заходит речь о публикации, например, на форуме отчета очередного советника в виде html-файла, то делают либо MT4-отчет, либо ничего. 

Ничего удивительного, когда MT5-версия советника проверяется на реальных тиках в MT5-тестере, но отчет выкладывается из MT4, где котировки совсем другие. Въехать в стиль торговли советника возможно только по MT4-statement.

TesterReport - ощути всю мощь MT5-тестера в один клик!

Предлагаю использовать скрипт TesterReport, который создает html-отчет для одиночного прогона MT5-тестера.

 

Инструкция:

  1. Скачайте любой интересуемый MT5-советник (EX5-файл). Например, из Маркета можно взять бесплатно любой продаваемый советник.
  2. Запустите одиночный проход советника (после оптимизации или сразу).


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

Оптимизация робастного. Без WFT.

Оптимизирую трендовуху по одному параметру. Получился вот такой график.
Оптимизация робастного. Без WFT.
Y годовая доходность, X значение параметра. Видно что зона оптимума широкая и понятная, надо скорее перелезть через оптимум на плато чем не долезть. Причем оптимум был найден одним! простым прогоном брута на всей истории и оценкой еквити/прибылей за периоды.  Картинка с оптимизацией по периодам для перфекционизма. Когда в стратегии есть идея (не натянуть индик на ценовой ряд и подгонять период) получается как то так.

Нужен тут отдельный WFT? При устойчивости по периодам незачем.

Имхо.

Остальные посты в моем телеграм канале. Но я его еще не завел, так что пока так.

Минимальная выборка для понимания прибыльна ли ТС

Друзья и коллеги, всем привет! Удачных и приятных выходных!😎
Тестирую свою торговую идею интредейную вручную в КВИКе с линейкой и калькулятором!😀 В связи с чем вопрос, какова минимальная выборка должна быть, cколько сделок на истории просчитать, чтобы понять эта ТС вообще будет зарабатывать или нет, 50 cделок достаточно, а 100?

Работает или нет статистический арбитраж из-за проскальзывания?

    • 09 июля 2021, 15:02
    • |
    • grepan
  • Еще

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

Далее будут приведены мои субъективные умозаключения.

Для начала перечислю виды арбитража, которые я знаю:

  1. Арбитраж одинаковым активом между разными биржами. Сложность работы по этой технологии заключается в том, чтобы разместить торговый сервер между двумя биржами так, чтобы задержки пакетов между биржами были одинаковыми.
  2. Арбитраж между активом и его деривативом.
  3. Статистический арбитраж между коррелируемыми активами.
  4. Календарный арбитраж.

Момент, который объединяет эти стратегии, состоит в том, что торговая позиция выставляется всегда одновременно по двум инструментам в противоположные стороны (если активы прямо скоррелированы, и в одинаковые стороны в ином случае).

Все эти арбитражные стратегии в основном относятся к классу рыночно-нейтральных «mean reversing» стратегий, потому что не следуют за трендом, а пытаются вернуться к некой справедливой цене актива (та же трендовая составляющая), выставляя позиции против отклонения от тренда, хотя, конечно, можно придумать и трендовые стратегии, использующие актив-«поводырь» для прогнозирования тренда.



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

Прохладный пост о системной торговле. Тестируем торговые идеи на Python бесплатно и без зауми с библиотекой PQR.

Привет, почти 2 месяца назад мы запустили первую версию нашей библиотеки PQR для тестирования инвестиционных идей. Основная суть: системно проверять аномалии на большой группе акций. Например, вы ведете таблицы с мультипликаторами компаний и биржевых котировок. Цель — покупать 10% недооцененных бумаг с наименьшим значение P/E и ребалансировать портфель раз в месяц.

Прохладный пост о системной торговле. Тестируем торговые идеи на Python бесплатно и без зауми с библиотекой PQR.


Разделов для улучшения было так много, что Андрей (github.com/eura17) почти полностью переписал все функции. Основные изменения:

1) Переход к объектно-ориентированному программированию. Код легче читается и занимает меньше места.

2) Добавили функцию correct_matrices — она приравнивает матрицы с исходными данными к одному виду. Сортирует и удаляет отсутствующие в остальных матрицах столбцы (акции) и строки (периоды);

3) Появилась документация на readthedocs: pqr.readthedocs.io/en/latest/index.html

4) Возможность перебора параметров стратегии через grid_search. Быстрый вывод таблицы с результатами или отдельного параметра (например, Шарп) для стратегий с разными периодами наблюдения, удержания и лагом;



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

Backtesting / Бэктестинг - подскажите простой бесплатный сервис с историей (end of day)

Доброго времени суток вам, 

Пожалуйста, подскажите простой (без программирования) бесплатный сервис с историей (end of day подойдет).
Роюсь в сети уже больше четрых часов, не могу найти. Нужен простой сервис который будет:
— искать по всему рынку США, а не по отдельным бумагам (NYSE, NASDAQ, AMEX) 
— не требовать знаний питона и другого языка — нужны простые параметры: цена пробивает SMA, Relative Volume, Capitalization, etc
— бесплатный или за триальные пригоршню баксов
— с историей больше чем 1 год (интрадей, тики — не надо) 
— желательно детальные репорты чтобы прооптимизировать там где надо (но не обязательно)

Нужно что-то очень похожее на 
https://www.marketinout.com/stock-screener/backtest/strategy.php (все хорошо, но ограничение на историю — дают всего 6 мес)


Смотрел:
— Amibroker
https://www.portfoliovisualizer.com/backtest-portfolio
https://www.wealth-lab.com/
-
 www.alphaarchitect.com/tools
и многое другое. 

Багодарю заранее.

Трейдинг или инвестирование? Большой бектест на 650 активах. Второй подход

Для начала хочу сказать спасибо, всем кто читает мои заметки и, главное, комментирует их! Благодаря комментарию А.Г. нашёл ошибку в расчётах. Пересчитал и заливаю новые данные. Старый пост оставлю, пусть будет мне уроком. Видимо пора тесты начинать писать.

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

Расчётные данные в предыдущей заметке неправильные. Вместо пяти результатов публикую 10. Исходные данные всё те же.

На всякий случай опишу параметры:
— Return: доходность
— MaxDrawdown: максимальная просадка
— BuyholdRet: доходность стратегии купи и держи
— BuyholdDrawdown: максимальная просадка стратегии купи и держи
— Deals: количество сделок
— AvgTrade: средняя сделка
— ProfitDeals: количество прибыльных сделок, для процентов нужно умножить на 100
— MaxProfit: максимальный доход в одной сделке
— MaxLoss: максимальный убыток в одной сделке
— ProfitFactor: профит фактор
— SharpeRatio: коэффициент шарпа



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

Трейдинг или инвестирование? Большой бектест на 650 активах

Данные в этой заметке неправильные. Я неправильно считал некоторые параметры. Можно не читать, и сразу прочитать следующую smart-lab.ru/blog/699827.php Я всё пересчитал и залил новые данные.

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


______________
Мне всегда хотелось постетировать торговую стратегию на большом количестве инструментов. Навести научность на всё это бектестирование. Наконец руки дошли написать свой универсальный недотестер.

Раньше я уже писал про стратегию покупки на закрытии и продажи на открытии Её и выбрал для пробного полёта.

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

Всего собрал 650 тикеров:
— индекс IMOEX в полном составе
— наиболее ликвидные фьючерсы на мосбирже (нам же нужно, чтобы миллионы торговались без проскальзываний): рубль/доллар, индекс РТС, нефть, золото, сбербанк

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

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