22022022, ну тут вопрос общего объемов торгов и размера портфеля. в медленных стратегиях на ликвидных акциях тяжело повлиять на рынок своим поведением. А вот в интрадей торговле на третьем эшелоне — очень легко
SergeyJu, про ML если только. Самая база, которая часто в глаза бросается: часто пытаются делать классическую cross fold validation, но перемешивают данные не по периодам времени, а рандомно. Итог — в тестовой и тренировочной выборке оказываются разные стоки из одного периода, а они коррелируют между собой. Как итог — ML модели переобучаются
Ваш тест на истории абсолютно неправильный, такое лучше вообще не приводить, так как сильно искажает действительность. С таким же успехом можно взять все 50 акций из индекса Мосбиржи на текущий момент и вы тоже «обгоните» индекс за 5 лет.
У вас там ошибка выжившего. Если интересно детальнее — я подробно как отдельный пост ответ оформил в своем блоге
Андрей Коновалов, спасибо за обратную связь! думаю в ближайшее время допилю его, придумаю где захостить нормально и выложу про это заметку тут, в пульсе и на vc.
Андрей Коновалов, если речь про период — месяц, то да, есть неточность. Т.е. один портфель колбасит внутри месяца, другой — стабильный, а месячный результат у них одинаковый. Тогда по такой помесячной оценке все выйден одинаково, хотя очевидно что это не так. Но дневной разброс и помесячный в целом должны коррелировать, и для грубых оценок все равно сойдет. В целом тут порядок главное оценить, вот получилось 20% случайности, ну не важно если на самом деле она 15 или 30%. А вот к примеру если получится 2%, тоже уже не сильно важно 0.5% там или 4%.
Если же вопрос именно о составе портфелей, то вообще не важно. В этом вопросе речь только о суммарной доходности порфеля, состав не важен
Загуглите cdf from z-score, откройте первый попавшийся сайт. Вбиваете мю=0, s=1, а вместо x= подставляете ваш Z-score. В итоге 1-cdf (в примере ниже это 19.77%) — вероятность того, что разница доходностней оказалась положительная случайно. Это очень ГРУБО, так как нифига эта разница доходностей не Гауссово распределение, но для общего понимания сойдет. Если кто-то один год закончил с таким Z-score — с шансами 20% это было случайно.
Андрей Коновалов, эх, у меня там в боте распознование изображений на основе машинного обучения и все такое, рассчитанное на скрины из приложения Тинькофф для Андроид/iOS. А вы меня вручную заставляете считать)) у вас вышло 0.85 значение, в целом норм, трактовка в комменте выше.
Ну с вас обратная услуга: проведите тест бота на своем устройтстве — заскриньте доходность любого профиля который вам интересен там и скажите — норм сработало или нет, а лучше прям сюда изображение. Я планирую в общий доступ этого бота выпустить скоро, но бета-тестеры только мои друзья пока)
Андрей Коновалов, понял, ну методика простая: считаете 12 разниц в помесячной доходности между вашей стратегией и индексом полной доходности, затем z-score = среднее (от массива из 12 чисел) / стандартное отклонение (от этого массива) * квадратный корень из 12. Для примера: в январе у вас +5%, у индекса -5%, получается +10. В феврале у вас ЕЩЕ +6% (т.е. в сумме уже 11, тут важно именно изменение за месяц, а не с начала срока!), в индексе еще -3%, получается +9, и т.д. Если у вас есть по дням прям разница — так еще точнее, но тогда нужно будет домножить не на корень из 12, а на корень из числа торговых дней, чтобы получить годовой шарп
Андрей Коновалов, я вижу что у вас Тинькофф брокер, верно? Заскриньте свой профиль доходности там за 2024 год с телефона и отправьте в этот бот: t.me/algomrk_bot
Он сам построит нужный график и все рассчиатет. Ну или напишите имя профиля в пульсе, я сам это могу сделать. Оба варианта актульны только ближайший час: в отпуске, основная машина для рассчетов и бота остановлена, поднял бота временно на ноуте пока чилю, потом не до этого будет :)
Кроме абсолютного значения разницы, важна стабильность разницы доходностей. Вам бы посчитать годовой Z-score (патриоты, молчать!) для разницы доходностей. О чем может сказать последний — значение +1 можно грубо интерпретировать как то, что с вероятностью 16% вы могли закончить год в минусе (относительно индекса). Аналогично, +2 — с вероятностью 2.2% можно было и уйти в минус. 0.5 — с вероятностью 35% можно было уйти в минус. В сухом остатке — хороший инвестор должен не просто обгонять индекс, а желательно еще и стабильно, а не просто выдать один-два удачных месяца в году.
На глаз конечно сложно оценить по вашему графику, но я бы ставил на то что он равен 0.3-0.5 в вашем случае
Владимиров Владимир, Индекс МБ выбран как ограничение по двум соображениям: высокая ликвидность (для маштабируемости в будущем) и меньшие риски манипуляции рынком (есть впечатление, что в остальных акциях слишком большой вклад манипуляций от крупного капитала и всяких блоггеров).
Трейдер (Порутчик), плечи вообще не признак тут, прям совсем. Если бы у меня на стратегии историческая просадка была не около 30%, а около 15% — делал бы то же самое 1в1, но с плечом X2. Это вообще вопрос оценки риска, а не типа торговли
Владимиров Владимир, Может конкретным примером понятнее объясню свой подход. Вот например нашел сигнал типа rank(debt/equity), который ранжирует каждую неделю компании Мосбиржи от -25 до +25. И на истории вижу, что если рынок падает, то компании с высоким ранком падают на условные 5%, а с низким на 25%. Если рынок растет — с высоким ранком растут на 25%, с низким — на 5%. Все, дальше просто постоянно отбираются топовые одна, пять или десять акций с высоким ранком и в них перекладывается весь портфель. Если рынок на длинном горизонте в среднем не меняется или растет — будет хорошая выигрышная стратегия, у которой нет нигде прямого предсказания цен или изменений цен, движения рынка. Совсем по уму чтобы и на падающем зарабатывать, надо в лонг брать N стратегий с высоким ранком и в шорт брать N стратегий с низким ранком. Возможно это мой личный bias во взгляде, но я только так и рассматриваю предсказания рынка.