Один из самых простых способов делать устойчивых на длинном периоде времени роботов – оптимизировать роботов при помощи кросс-тестов – это, когда Вы свою стратегию тестируете на десятках или сотнях бумаг одновременно на одном портфеле.
В отличии от Walk-Forwards и различных техник «Тестирования с подтверждением», этот способ оптимизации стратегий сильно проще для понимания и даёт при этом не худшие результаты по робастности, а иногда и лучшие.
Данный пост - старт серии статей, в которой мы будем:
Просто подобрать настройки для робота в тестере – не достаточно. В 99% случаев, если Вы так сделаете, Вы потом в реале деньги сольёте, т.к. результаты таких тестов будут просто подгонкой под конкретный график.
Все расчеты представлены с начала 2017 года и по END DATE
Сравнение стратегий сформировано по уровню риска, соответствующего общей классификации и обычно устанавливаемого на основании РИСК-ПРОФИЛЯ:
✅ УМЕРЕННЫЙ уровень риска — Основное внимание уделяется балансу между стабильностью портфеля и ростом его стоимости. Инвесторы должны быть готовы принять умеренный уровень волатильности и риск потери основных средств. Типовой портфель будет в основном сбалансирован между инвестициями в облигации, акции и, возможно, с небольшой долей в алгоритмических стратегиях.
Сюда отнесены стратегии — ABTRUST, AITRUST и AITRUST 2.0, которые сравниваются с бенчмарком RUSCLASSICBM*
Показатели стратегии ABTRUST (учитывает налоги и комиссии брокеров):
✅ За период с 2017 года, %: +105.0
✅ CAGR, %: +9.1
✅ Волатильность, % в год: 11.0
✅ Коэффициент Шарпа***: 0.24
Показатели стратегии AITRUST (учитывает налоги и комиссии брокеров):
✅ За период с 2017 года, %: +225.7
✅ CAGR, %: +15.4
✅ Волатильность, % в год: 11.3
✅ Коэффициент Шарпа: 0.74
Продолжаем практические занятия по созданию новых источников для роботов в OsEngine.
Сегодня говорим про то, как и где нужно разместить заготовку класса источника, и сделаем его наследником интерфейса IIBotTab.
Вот здесь:
В этой статье расскажу о том, как воспроизвел и протестировал торговую систему для фьючерсов Московской биржи, основанную на идеях Александра Резвякова. Недавно, просматривая раздел алготрейдинга на Смартлабе, я наткнулся на видео с его выступления на конференции 2024 года под названием "5-6 идей для построения прибыльной торговой системы на фьючерсах". Меня привлекла четкость и понятность предложенных им правил торговли.
Поскольку я активно занимаюсь автоматизацией процессов и стремлюсь глубже изучить возможности Python библиотеки backtesting.py, мне показалось это хорошей идеей для практического применения.
Хотя я лично не знаком с Александром, полагаю, что публичное представление идеи предполагает возможность её независимого анализа и тестирования сообществом трейдеров и программистов.
Основная идея — открывать сделки в строго определенное время и использовать структуру рынка последних дней для принятия решений.
Этой статьёй открываем практические занятия по созданию новых источников для роботов в OsEngine. Делать будем источник для получения с рынка новостного потока. По умолчанию сделаем подключение для коннектора Transaq, что в Финам. Там этот тип данных идёт по умолчанию. Сделаем для него источник, механизм подписки и пример. В общем, полноценный новый тип данных для роботов в OsEngine.
По мере его написания будем параллельно писать статьи-инструкции о том, как это делается.
Сегодня говорим про первое, что нужно сделать – создать новый тип перечисления для названия источника.
Открываем класс:
В данной статье рассмотрим новый коннектор OsEngine для получения новостей из каналов стандарта RSS и Atom.
RSS (Really Simple Syndication) и Atom — это два формата синдикации веб-контента, которые позволяют пользователям подписываться на обновления сайтов, блогов и новостных ресурсов через специальные программы-агрегаторы или браузеры.
Если при использовании OsEngine вы хотите в своем роботе получать новости и как-то их использовать, необходимо найти новостной портал с интересующей вас информацией и убедиться в наличии у него RSS канала, который обычно отмечен значком.