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

 
elibrarius:
Если перемешаете - то тест сразу улучшится, - будет подглядывание, по соседнему бару. Т.е. один бар (10:00) попал в трейн, соседний  (10:01) в тест , а они ну очень похожи, как по прошлому, так и по целевой.

А там в выборке бары по очереди? Просто я не обучаю на каждом баре, а беру только сигналы и в таком случае считаю возможным смешать выборки - это увеличивает объем информации для обучения без увеличения размера выборки, что по моим данным улучшает экзаменационную выборку.

 
Aleksey Vyazmikin:

А там в выборке бары по очереди?

Я уже удалил файл, посмотрите у себя. Думаю что по очереди, это самый логичный способ формирования CSV файла.

 
elibrarius:

Я уже удалил файл, посмотрите у себя. Думаю что по очереди, это самый логичный способ формирования CSV файла.

Там нечто такое - не знаю, что это.

 2 6 0 4 2 6 57 57 100 100 -1
4 2 6 0 4 2 6 57 57 100 200 -1
4 2 6 0 4 2 6 57 57 100 300 -1
4 2 6 0 4 2 6 57 57 100 400 -1
4 2 6 0 4 2 6 57 57 100 500 -1
4 2 6 0 4 2 6 57 57 100 600 -1
4 2 6 0 4 2 6 57 57 100 700 -1
4 2 6 0 4 2 6 57 57 100 800 -1
4 2 6 0 4 2 6 57 57 100 900 -1
4 2 6 0 4 2 6 57 57 100 1000 -1
4 2 6 0 4 2 6 57 57 100 1100 -1
4 2 6 0 4 2 6 57 57 100 1200 -1
4 2 6 0 4 2 6 57 57 100 1300 -1
4 2 6 0 4 2 6 57 57 100 1400 -1
4 2 6 0 4 2 6 57 57 100 1500 -1
4 2 6 0 4 2 6 57 57 100 1600 -1
4 2 6 0 4 2 6 57 57 100 1700 -1
4 2 6 0 4 2 6 57 57 100 1800 -1
4 2 6 0 4 2 6 57 57 100 1900 -1
4 2 6 0 4 2 6 57 57 100 2000 -1
4 2 6 0 4 2 6 57 57 100 2100 -1
4 2 6 0 4 2 6 57 57 100 2200 -1
4 2 6 0 4 2 6 57 57 100 2300 -1
4 2 6 0 4 2 6 57 57 100 2400 -1
4 2 6 0 4 2 6 57 57 100 2500 -1
 
Aleksey Vyazmikin:

Там нечто такое - не знаю, что это.

Ждем ответа от хозяина файла.
 
elibrarius:
Ждем ответа от хозяина файла.

Кстати, я брал 1% выборки и обучал дерево C4.5 - оно дало 100% распознания на учебной и тестовой выборке, поэтому я и предполагаю, что дело в упорядоченных циклах, которые и надо перемешать. Вот только хорошего алгоритма перемешивания у меня нет на MQL5 - могу n строку вытаскивать просто из обей тестовой и контрольной выборки и тем самым формировать тестовую выборку - а там как повезет опять же по балансу классов, да и циклы тут, будет не хорошо.

 
Aleksey Vyazmikin:

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

Может и можно, но думаю, что не стоит часть будущего закидывать в трейн, в реальной торговле вы же не сможете это сделать. Пусть будущее и при обучении остается неизвестным, как и в реальности.
Тест и экзамен и должны все время быть то успешнее, то хуже. Это нормально. Главное чтобы в сумме были в плюсе.
Используйте кросс-валидацию (возможно есть встроенная) или еще лучше валкинг форвард.

 
Aleksey Vyazmikin:

Кстати, я брал 1% выборки и обучал дерево C4.5 - оно дало 100% распознания на учебной и тестовой выборке, поэтому я и предполагаю, что дело в упорядоченных циклах, которые и надо перемешать. Вот только хорошего алгоритма перемешивания у меня нет на MQL5 - могу n строку вытаскивать просто из обей тестовой и контрольной выборки и тем самым формировать тестовую выборку - а там как повезет опять же по балансу классов, да и циклы тут, будет не хорошо.

Вот c такими ГСЧ можно нормально перемешать https://www.mql5.com/ru/blogs/post/735953
Rand 0 ... Max Int с равномерным распределением
Rand 0 ... Max Int с равномерным распределением
  • www.mql5.com
Потребовалась функция ГСЧ с гнерацией числа Int от 0 до любого значения. Получилась такая функция. Думаю распределение получилось равномерным. На форуме посоветовали другую функцию из статьи. Отбросив лишнее, получилось: Сделал сравнение по скорости обоих функций, оригинальной из статьи и просто MathRand(): Оригинальная из статьи Rnd.Rand_01...
 
elibrarius:

Может и можно, но думаю, что не стоит часть будущего закидывать в трейн, в реальной торговле вы же не сможете это сделать. Пусть будущее и при обучении остается неизвестным, как и в реальности.
Тест и экзамен и должны все время быть то успешнее, то хуже. Это нормально. Главное чтобы в сумме были в плюсе.
Используйте кросс-валидацию (возможно есть встроенная) или еще лучше валкинг форвард.

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

С кросс-валидацией я не разобрался - там надо это автоматизировать, но пока руки не дошли.

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

elibrarius:
Вот c такими ГСЧ можно нормально перемешать https://www.mql5.com/ru/blogs/post/735953

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

 
Aleksey Vyazmikin:

Там нечто такое - не знаю, что это.

День недели, день месяца, час, минута, ...то же для выхода..., продолжительность сделки в минутах, СЛ, ТП, результат +-1

2 6 0 4 2 6 57 57 100 100 -1
4 2 6 0 4 2 6 57 57 100 200 -1
4 2 6 0 4 2 6 57 57 100 300 -1
4 2 6 0 4 2 6 57 57 100 400 -1
4 2 6 0 4 2 6 57 57 100 500 -1
4 2 6 0 4 2 6 57 57 100 600 -1
4 2 6 0 4 2 6 57 57 100 700 -1
4 2 6 0 4 2 6 57 57 100 800 -1
4 2 6 0 4 2 6 57 57 100 900 -1
4 2 6 0 4 2 6 57 57 100 1000 -1
4 2 6 0 4 2 6 57 57 100 1100 -1
4 2 6 0 4 2 6 57 57 100 1200 -1
4 2 6 0 4 2 6 57 57 100 1300 -1
4 2 6 0 4 2 6 57 57 100 1400 -1
4 2 6 0 4 2 6 57 57 100 1500 -1
4 2 6 0 4 2 6 57 57 100 1600 -1
4 2 6 0 4 2 6 57 57 100 1700 -1
4 2 6 0 4 2 6 57 57 100 1800 -1
4 2 6 0 4 2 6 57 57 100 1900 -1
4 2 6 0 4 2 6 57 57 100 2000 -1
4 2 6 0 4 2 6 57 57 100 2100 -1
4 2 6 0 4 2 6 57 57 100 2200 -1
4 2 6 0 4 2 6 57 57 100 2300 -1
4 2 6 0 4 2 6 57 57 100 2400 -1
4 2 6 0 4 2 6 57 57 100 2500 -1

У меня 8Гб памяти.

Как понял из ваших результатов, информация о входе вообще не учитывается. Странно, ведь целый класс систем основан на времени входа.

То есть 50% берется из дня закрытия сделки?
 
Rorschach:

День недели, день месяца, час, минута, ...то же для выхода..., продолжительность сделки в минутах, СЛ, ТП, результат +-1

У меня 8Гб памяти.

Как понял из ваших результатов, информация о входе вообще не учитывается. Странно, ведь целый класс систем основан на времени входа.

Нельзя так фичи готовить. Диапазоны значений столбцов должны быть соизмеримы. Для категориальных делается ван хот