Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2832
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто-нибудь подскажите как сделать кастомную метрику для catboost, нужен Шарп.
Результат обучения модели с моей версией практически такой же как и при RMSE, значит где-то в коде есть ошибка.
preds и target - это return (a[i]-a[i+1])
Зачем вообще обсуждать корректность оптимизации? Локальный, глобальный - плевать.
Вопрос Дика имеет чисто теоретическое значение и не имеет НИКАКОГО практического значения, так как даже очень правильно найденные экстремумы относятся к ПРОШЛОМУ и с приходом нового бара практически всегда будут новые, неизвестные нам экстремумы. Давайте вспомним тестер. Находит оптимумы. И что? Грош цена оптимуму из тестера, если нет соображений, что он будут жить в будущем. Но время жизни оптимума НЕ имеет никакого отношения к правильности и корректности поиска этого оптимума, о которых пишет Дик.
Кто-нибудь подскажите как сделать кастомную метрику для catboost, нужен Шарп.
Результат обучения модели с моей версией практически такой же как и при RMSE, значит где-то в коде есть ошибка.
preds и target - это return (a[i]-a[i+1])
Не особо разбираюсь ни в питоне, ни в катбусте, но глупые вопросы задам)
1) Что такое data, почему среднее не от preds?
2) Вроде для градиентного бустинга нужно указать ещё формулы для градиента и гессиана?
Не особо разбираюсь ни в питоне, ни в катбусте, но глупые вопросы задам)
1) Что такое data, почему среднее не от preds?
2) Вроде для градиентного бустинга нужно указать ещё формулы для градиента и гессиана?
По всей видимости да, что-то пропустил. Использовал шаблон с официального сайта https://catboost.ai/en/docs/concepts/python-usages-examples
data - формируемый список из предсказаний модели, отрицательные значения перевел в положительные, чтобы потом вычислить их среднее арифметическое для Шарпа
data - формируемый список из предсказаний модели, отрицательные значения перевел в положительные, чтобы потом вычислить их среднее арифметическое для Шарпа
А зачем? Для Шарпа считается среднее с исходными знаками.
А зачем? Для Шарпа считается среднее с исходными знаками.
Чтобы учитывались также ордера на продажу, допустим есть 2 точных прогноза -0,002 (20 пунктов) и +0,003 (минус - шорт, плюс - лонг)
Прибыль +0,005, среднее 0,0025, а без изменения знака будет 0,0005.
По всей видимости да, что-то пропустил. Использовал шаблон с официального сайта https://catboost.ai/en/docs/concepts/python-usages-examples
Есть два типа метрик loss_function и eval_metric. Вам скорее нужна первая, посмотрите здесь https://catboost.ai/en/docs/concepts/python-usages-examples#user-defined-loss-function
Но может я и ошибаюсь. Здесь есть более лучшие чем я спецы по питону и его восхвалители) Возможно, они вам помогут больше.
Чтобы учитывались также ордера на продажу, допустим есть 2 точных прогноза -0,002 (20 пунктов) и +0,003 (минус - шорт, плюс - лонг)
Прибыль +0,005, среднее 0,0025, а без изменения знака будет 0,0005.
Ну это будет не Шарп тогда. Ещё, наверно, нужно не просто брать модуль, а умножать на знак прогноза (на минус один, если продажа и на один, если покупка)
Кто-нибудь подскажите как сделать кастомную метрику для catboost, нужен Шарп.
Результат обучения модели с моей версией практически такой же как и при RMSE, значит где-то в коде есть ошибка.
preds и target - это return (a[i]-a[i+1])
Значения запринтуйте какие получаете и сравните с другой метрикой. Запринтуйте сразу для обеих, для каждой итерации. В катбусте ранний останов не забудьте включить по максимуму пользовательского критерия и “use best model=True” Можете просто Verbose включить, он сам запринтует значения метрик на каждой итерации.
Было бы интересно в исследовательских целях (хоть это и весьма сложно) сделать через кастомную функцию потерь. Возможность для этого есть (если кинуло в начало страницы, то нужно найти в самом низу раздел User-defined loss function).