Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 1012

 
Aleksey Panfilov:

Очень интересно, а можно подробнее про измерение предсказательной способности

И прежде всего чем мерить?

Писал, давал графики, выкладывал код - умельцы все закопали на этих 1000 страниц...

Лень повторять. Здесь более всего используется vtreat, я им не пользуюсь. Главное задумать на эту тему и отбросить все остальное.

 
Aleksey Vyazmikin:

Так значит Вы не ставили вопрос о том, какие настройки должны быть у ЗЗ?

Параметр ZZ для каждого инструмента и таймфрейма свой. Например для EURUSD M15 хороший начальное значение 15 пунктов(4 знака). Зависит также от предикторов которые Вы используете. По хорошему нужно оптимизировать совместно параметры предикторов и параметр ZZ. Поэтому желательно иметь непараметрические предикторы, значительно упрощается жизнь. В этом качестве цифровые фильтры показывают хорошие результаты. С использованием ансамблей и каскадного объединения я получил усредненную Accuracy = 0.83. Это очень неплохой результат. Завтра отправлю на проверку статью в которой расписан процесс.

Удачи

 
Vladimir Perervenko:

Параметр ZZ для каждого инструмента и таймфрейма свой. Например для EURUSD M15 хороший начальное значение 15 пунктов(4 знака). Зависит также от предикторов которые Вы используете. По хорошему нужно оптимизировать совместно параметры предикторов и параметр ZZ. Поэтому желательно иметь непараметрические предикторы, значительно упрощается жизнь. В этом качестве цифровые фильтры показывают хорошие результаты. С использованием ансамблей и каскадного объединения я получил усредненную Accuracy = 0.83. Это очень неплохой результат. Завтра отправлю на проверку статью в которой расписан процесс.

Удачи

Чрезвычайно интересно. Ждем.

 
Грааль:

Если расшарите ряды бид и аск 2004-по текушую дату попробую, я обычно учу 1-3 года а тестирую на 20-30%

 датасет, лерн и тест а также исходные ряды с дукаса

Красивая кривая :) Но вряд ли она кого то заинтригует, не понятно что за софт, как Вы вычисляли эту кривую. На ваших датасетах у меня вышло не многим более 52% точности, кстати у вас там маркеры кончаются раньше фичей, я их обрезал у себя. Нужно добавить ещё разрезанные цены с которых вы получали лерн и тест, чтобы потом прогнать на быктестере результат классификатора.

PS: на самом деле любые тестерные кривые доходности и как оказалось отчеты о качестве классификации\регрессии не могут ничего доказать публике. Не давно в закрытой алготрейдерской группе проскакивала интересная мысль договориться за интерфейс для обмена готовыми моделями запеченными например в С++ dll(которые так или иначе все алготрейдеры и машинлернеры юзаю) которые на вход принимают какойнибуть json прошлое пачку рядов, а потом дополняются по событиям новыми данными(свечами, тиками, таканами и тп.), а выплёвывают прогнозы. Короче суть идеи в том чтобы обмениваться некими стандартнизированными "черными ящиками", которые затем можно проверить когда придет будущее, на тестере, когда будут данные. Только так можно понять работает ли модель или нет, ну можно ещё через веб-апи, но это геморно держать для этого впн и тд. особенно если моделей много. А так все эти цифры accuracy, Sharp ratio и тд. мало что значат, есть 100500 способов не осознанно подогнаться и столько же осознанно и разбираться в этом никто не будет, нужны более весткие доказательства.

 
Maxim Dmitrievsky:

Если у вас классификация то можно оценивать через относительную ошибку классификации или логлосс(кросс энтропию), если регрессия то подойдет rmse. Также можно замерять дифференциал ошибок на трейне и тесте и добиваться наименьшей разницы.

Как раз настройки выбраны, чтобы в трайн, валидейшн и тест было примерно одинаковое разделение по предсказанным классам.

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

И как этого избежать? Ну, тут опять начнется "мусор на входе мусор на выходе". А вообще есть ли они не "мусорные" предикторы вообще в природе.

По идее берется ROC_AUC и по горизонтальной оси значение должно перестать расти, если в предикторе есть, что-то стоящее. Но, перебрав все я не нашел ни одного.

Рисуется строго ровная линия вверх.

Но, зато ни один индикатор так не подгонит рынок по истории, это конечно да)

На счет SVM слишком он долгий, много раз начинал с ним тестировать, но как-то не впечатлило особо, плюс его тормознутось не дают в полной мере исследовать.

 
forexman77:

Как раз настройки выбраны, чтобы в трайн, валидейшн и тест было примерно одинаковое разделение по предсказанным классам.

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

И как этого избежать? Ну, тут опять начнется "мусор на входе мусор на выходе". А вообще есть ли они не "мусорные" предикторы вообще в природе.

По идее берется ROC_AUC и по горизонтальной оси значение должно перестать расти, если в предикторе есть, что-то стоящее. Но, перебрав все я не нашел ни одного.

Рисуется строго ровная линия вверх.

Но, зато ни один индикатор так не подгонит рынок по истории, это конечно да)

если на валид. участке ошибка такая же как на трейн то все должно работать. Очевидно что у вас это не так

 
Maxim Dmitrievsky:

если на валид. участке ошибка такая же как на трейн то все должно работать. Очевидно что у вас это не так

Ну, не с большой точностью одинаковы, близко. Если совсем идентичны, то это дерево глубиной три, картинку приводил.

Глубина 15 выбрана, которая показала тест более или менее.

Минут через 20 выложу разделение по классам.

 

Глубина три:

[[8010 7122]
 [7312 8410]]
трайн наоборот

[[8026 7105]
 [7209 8512]]
трайн 

[[5538 5034]
 [5117 5395]]
предсказание по обученной модели на трайн, эти данные не участвовали в обучении.
Поясню данные для теста берутся не из не использованных выборок, это данные, которые вообще не доступны для
алгоритма в процессе обучения(находятся вне временного промежутка участка обучения).

Глубина 15:

[[7667 7464]
 [7227 8494]]
трайн наоборот

[[14430   702]
 [  661 15061]]
трайн 

[[5405 5167]
 [4958 5554]]
тест

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

Форварды:

15

3

Получается предсказать метки искомого класса на 4-6% больше, чем негативный..

 
Женя:

Красивая кривая :) Но вряд ли она кого то заинтригует, не понятно что за софт, как Вы вычисляли эту кривую. На ваших датасетах у меня вышло не многим более 52% точности, кстати у вас там маркеры кончаются раньше фичей, я их обрезал у себя. Нужно добавить ещё разрезанные цены с которых вы получали лерн и тест, чтобы потом прогнать на быктестере результат классификатора.

PS: на самом деле любые тестерные кривые доходности и как оказалось отчеты о качестве классификации\регрессии не могут ничего доказать публике. Не давно в закрытой алготрейдерской группе проскакивала интересная мысль договориться за интерфейс для обмена готовыми моделями запеченными например в С++ dll(которые так или иначе все алготрейдеры и машинлернеры юзаю) которые на вход принимают какойнибуть json прошлое пачку рядов, а потом дополняются по событиям новыми данными(свечами, тиками, таканами и тп.), а выплёвывают прогнозы. Короче суть идеи в том чтобы обмениваться некими стандартнизированными "черными ящиками", которые затем можно проверить когда придет будущее, на тестере, когда будут данные. Только так можно понять работает ли модель или нет, ну можно ещё через веб-апи, но это геморно держать для этого впн и тд. особенно если моделей много. А так все эти цифры accuracy, Sharp ratio и тд. мало что значат, есть 100500 способов не осознанно подогнаться и столько же осознанно и разбираться в этом никто не будет, нужны более весткие доказательства.

Там вначале тренировочной и тестовой выборок данных убывающие нулевые кортежи фичей, вероятно для их расчета не хватало истории, а алгоритм этого не контролировал, поэтому для корректной работы их тоже нужно удалять.

А где это такая группа, если не секрет, и можно ли туда заглянуть?

 
forexman77:

Глубина три:

Глубина 15:

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

Форварды:

15

3


мне кажется вам кол-во сделок надо уменьшать, походу на каждом баре..