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

бэктестинг


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

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

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

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

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



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

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

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

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


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

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

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

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

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

Градиентный бустинг с годовой перспективой ч.2

Неделю назад, я рассказал о своих попытках применить градиентный бустинг к выбору акций на годовую перспективу.
Тогда, в комментариях мне рассказали много всего полезного, но основные замечания над которыми я работал в течении недели были:
1. Бэктест был проведен всего на 3-х годах (что было обусловлено небольшим обучающим набором)
2. Граница принятия решения 1.01 обеспечивала «заглядывание в будущее» из-за того что использовала прошлогоднюю отчетность.
Я сместил границу принятия решения на апрель и расширил тренировочный датасет (и ещё провел кучу мелких улучшений, например вместо RMSE перешел на квантильную функцию потерь, что оказалось очень уместно). К сожалению, расширение тренировочного датасета ни на грамм не снизило ошибку при обучении на 20 годах, но теперь при уменьшении количества лет, качество страдает значительно меньше, что в свою очередь позволило мне провести бэктест на 7 годах (хотя в качестве 2014-го я сильно сомневаюсь).
С выборкой в 7 наблюдений, уже можно (зажмурившись) попытаться оценить статистическую доствоерность гипотезы о том что моя модель дает лучшие результаты чем S&P500 по итогам года. У меня получилось p-value ~ 0.03 (парный стьюдент-тест), что вроде-бы хорошо, но я что-то в этом сильно сомневаюсь и буду ещё перепроверять.

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

Вопрос программистам. На чём быстрее писать и проверять торговые системы?

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

1. Изучив эти 2 новые технологии, будет ли выйгрыш во времени написания бэктестов?
2. Хорошо ли дружат quantopian и подобные системы с csv форматом маркет-даты из метака? Меня интересуют 5-15 минутные свечи, поэтому какой-нибудь yahoo finance не подходит. Вообще этот вопрос не кретичен, думаю всегда можно переформатировать в удобный формат или найти другую бесплатную и удобоваримую маркет-дату в другом месте.
3. Есть ли решения на питоне лучше, чем quantopian?

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

Системно тестируем аномалии на Python. Релиз библиотеки Portfolio Quantitive Research (PQR)

Привет! Сегодня не про результаты, а про методы. Закончил писать базовый функционал библиотеки для количественных исследований. Вот что из него можно выжать:

  • Моделирование портфелей по кросс-секции и временным рядам;
  • Квантильная методика формирования портфелей в % от выборки или фиксированное число инструментов;
  • Возможность гибко задавать веса в портфеле по дополнительному фактору (почти smart beta);
  • Можно вырывать данные для аналитики на каждом промежуточном этапе: сделки, размер позиций, комиссии, доходность портфелей;
  • Возможность относительно точно учесть комиссионные расходы;
  • Пока самая простая визуализация и метрики.

Как выглядит итоговая отрисовка:
Системно тестируем аномалии на Python. Релиз библиотеки Portfolio Quantitive Research (PQR)

Небольшая предыстория или зачем писать свой тестер

 

Не являясь базовым программистом, я пользовался готовыми решениями для бэктестов и особенно долго засиживался на платформе Quantopian. В прошлом году компания не получила нового транша от инвесторов и объявила о закрытии. Вместе с ней сгинул и весь написанный код, а знания синтаксиса несуществующей платформы близки по полезности к 1С-программированию при переезде в долину.
Поработав с другими сервисами, понял, что их существенные недостатки можно разделить на 3 группы:



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

Опционы. Тест одной известной системы

Одна идея на рынке опционов часто упоминается трейдерами как способ контроля над рисками. Рассмотрим систему, построенную на базе этой идеи. Мы продаем, скажем, один колл вне рынка и смотрим на динамику цены базового актива. Если до экспирации цена не поднялась до нашего страйка, все прекрасно — кладем в карман премию. Профиль позиции является простым профилем короткого колла, и он изображен на графике ниже.

Опционы. Тест одной известной системы

Если цена перешла страйк, мы тут же покупаем один базовый актив и убираем риски дальнейшего роста цены. Мы получаем короткий синтетический пут и спокойно сидим в нем, пока цена находится выше страйка.

Опционы. Тест одной известной системы

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

Опционы. Тесты бабочки, зигзага, стрэнгла и кондора

Как вели себя в прошлом на нашем рынке опционные спреды? 
В этой статье мы рассмотрим результаты тестирования бабочки, стрэнгла, кондора и зигзага(risk reversal).
Очевидно, что обычно трейдеры входят в эти позиции, имея свой прогноз по базовому активу и волатильности.
Тем не менее, мне было интересно, дают ли указанные спреды постоянное статистическое преимущество, способное компенсировать неверный прогноз. Отрицательный результат теста не является приговором, ведь он получен при ограниченном наборе методов выбора позиции и хеджа.

Подробнее о расчетах

Во многом техника тестов повторяет ту, которая была использована ранее при анализе единичных опционов.
Тестируются только месячные опционы на индекс РТС.
Расчеты основаны на теоретической стоимости опционов с июня 2010 г. по июнь 2018 г.  
Данные предоставлены Московской Биржей и одним из известных опционных трейдеров, которому выражаю благодарность.

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

Быстрый бектестинг стратегии на python с pandas

Я уже давно использую для бектестов python и pandas. pandas это библиотека для работы с матрицами и её прелесть в том, что она оперирует векторами и работает ГОРАЗДО быстрее, чем обычные циклы. Для того, чтобы сохранить это достоинство при бектестах я использую логарифмическую доходность (log-return на английском). Не ручаюсь за русские термины, так как узнал про них из англоязычных статей. Написанное ниже не истина в первой инстанции, а моя попытка разобраться как это всё работает чтобы применять на практике. Если я не прав, напишите. Я хоть и защищал кандидатскую диссертацию, но не по математике или экономике.

Немного теории



Логарифмическая доходность — разница стоимости актива в разные промежутки времени в процентах. Рассчитываеся по такой формуле:  
Быстрый бектестинг стратегии на python с pandas


Формула для расчёта логарифмической доходности, логарифм натуральный

Теперь на примере акций теслы. Цена по дням:  

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

Опционы. Тесты продаж одиночных опционов

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

Тесты основаны на теоретической стоимости опционов, рассчитанной Московской Биржей с июня 2010 г. по июнь 2018 г.
Понятно, что теоретическая стоимость иногда вылазит за границы спреда и не очень достоверно отражает текущий рынок.
Тем не менее, я полагаю, что это происходит не так часто, да и на дистанции ошибки сглаживаются и компенсируют друг друга. 
К тому же, в моей стратегии промежуточные цены опционов влияют на результат только через хеджирование. 

Как устроены тесты

Раз в месяц продаются сто опционов одного страйка и держатся до экспирации. 
Для каждого теста фиксируется удаленность страйка от центрального в шагах.
К примеру, стратегия «Strike -1» означает, что раз в месяц продаются опционы страйка, находящегося на 1 шаг слева от текущего центрального страйка.

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

Какие параметры для Вас главные при бэктесте стратегий?

    • 18 февраля 2021, 21:10
    • |
    • genom
  • Еще
Всем привет! В очередной раз при тестировании системы ловлю себя на мысли, что не могу определится по каким метрикам (Recovery Factor, CAR/MDD, Profit Factor, Ulcer Index, Sharpe Ratio, Avg % Profit/Loss и т.д.) лучше отбирать параметры системы  в тестеровщие. Каждая метрика отвечает за свои плюшки, но какая/какие самая важная? На что Вы в первую очередь смотрите после проведения тестирования? Есть разные подходы когда такая неоднозначность в выборе параметров систем, например, торговать частью депо с параметрами системы при наивысшем Profit Factor и одновременно ту же систему с параметрами при наивысшем CAR/MDD и т.д.

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