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

Бэктестинг


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

Сочинил на днях еще один нескучный метод трендовой торговли.
На скорую руку набросал скриптец в 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)


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

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
и многое другое. 

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

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