Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3369
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Осталось совсем чуть чуть, формализовать эти 150 паттернов до одного общего. Если есть А и есть В, то С придет в определенное время в такую-то уточку, если не пришли, время и точка будут другие. Там всего-то три разных варианта развития С. Все решает ВРЕМЯ! И это спокойно прорабатывается сперва ручками, а далее можно и в робота запихнуть, если есть желание.
P.S. - мало того, размер А уже дает определенные уровни по откату В (очень часто люфт не превышает 1-3 пунктов). Так же и В заранее сигналит о ценовых уровнях С. Везде сплошная математика.
Как пример, ручной советник, считает автоматом уровни от интересующего нас движения. Т.е. натягиваем на нужную нам волну, и будущее как бы уже обозначено.
Ничего не надо формализовывать - все сделали за Вас.
Скорее путь к каждому листу, ответ которого превышает ваш порог для открытия сделки является паттерном.
Например:
1-й сплит: дельта 40 бара с текущим = 0,
2-й сплит: 30 бара=100,
3-й сплит: 20 бара =50,
4-й сплит: 10 бара 100,
5-й сплит: 1 бара = 0.
Это 2 вершины с впадиной. Паттерн? Да. Путь к 1 листу его описывает.
Если у вас в дереве 20 листьев превышают порог по которому торгуете, то у вас в дереве 20 паттернов, которые вы используете. Менее успешные листья - тоже описывают паттерны, но они со случайным/проигрышным исходом.
Другие 100 деревьев могут использовать другие фичи/бары с др значениями сплитов.
Лес усреднит (сложит и поделит на кол-во) ответы всех деревьев, получим среднее мнение о ситуации.
Буст просто сложит с весовым/уточняющим коэффициентом.
Дерево - это дерево и их, как помнится, можно даже распечатать.
А вот с листьями дело темное. Именно на уровне листьев алгоритм вместе с ручками проектировщика ищет баланс между ошибкой классификации и смещением. Можно задать настолько большую глубину деревьев, что они в точности опишут входной набор - переобучение или сверх подгонка. А проблема в том, что нужно в будущем, в котором мы не знаем входного набора, получить классификацию с минимальной ошибкой. Листья они конечно конечные, но должны быть не совсем "конечные", а примерные. Поэтому паттерн - это дерево.
Дерево - это дерево и их, как помнится, можно даже распечатать.
А вот с листьями дело темное. Именно на уровне листьев алгоритм вместе с ручками проектировщика ищет баланс между ошибкой классификации и смещением. Можно задать настолько большую глубину деревьев, что они в точности опишут входной набор - переобучение или сверх подгонка. А проблема в том, что нужно в будущем, в котором мы не знаем входного набора, получить классификацию с минимальной ошибкой. Листья они конечно конечные, но должны быть не совсем "конечные", а примерные. Поэтому паттерн - это дерево.
Не согласен. Я привел пример листа глубиной 5 (лист получен через 5 сплитов и это паттерн). Если вы получите лист через 200 сплитов, то это даст вам переобученный паттерн, который будет плохо работать на новых данных. Но паттерном от этого он не перестанет быть. Дерево - набор паттернов.
Не согласен. Я привел пример листа глубиной 5 (лист получен через 5 сплитов и это паттерн). Если вы получите лист через 200 сплитов, то это даст вам переобученный паттерн, который будет плохо работать на новых данных. Но паттерном от этого он не перестанет быть. Дерево - набор паттернов.
Начнем от печки.
Я рассматриваю два варианта деревьев: типа бэггинга и бустинга (rf, ada).
Любой из этих достаточно большого набора алгоритмов рассматривает входные данные ПОСТРОЧНО, без обращения к соседним строкам. именно поэтому набор для обучения создается путем случайной выборки строк.
В пределах одно строки ведется подбор значений предикторов, который позволит с наибольшей вероятностью предсказать класс, указанный целевой переменной (учителем).
Комбинацию некоторого количества предикторов из набора входных предикторов и их значений в одной строке справедливо назвать паттерном.
В пределах одно строки ведется подбор значений предикторов, который позволит с наибольшей вероятностью предсказать класс, указанный целевой переменной (учителем).
Комбинацию некоторого количества предикторов из набора входных предикторов и их значений в одной строке справедливо назвать паттерном.
Неправильно печку понимаете. Похоже, что никогда код построения дерева не смотрели... В пределах одной строки там нет никаких операций вообще!!, только с наборами (с полными или с батчами).
Если коротко:Переданный в обучение случайный/полный набор строк, сортируется по очереди по каждому предиктору/столбцу. Проверяются разные сплиты по нему (посередине/по процентилям/рандомно), считается статистика каждому, выбирается лучший сплит, для всего полученного набора строк, а не для одной/каждой строки, как вы предположили.
По лучшему сплиту, набор строк делится на 2 набора, затем каждый снова сортируется и выбирается лучший сплит для каждой из частей и т.д. до достижения правила остановки (по глубине, по числу примеров с строке и т.п.)
Подробнее можете в редакторе посмотреть, файл у вас есть:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
функция ClassifierSplit() и та из которой она вызывается.
За пару часов разберетесь и не будете про поиск предикторов по одной строке рассказывать.
Ничего не надо формализовывать - все сделали за Вас.
И какова точность вашего робота на промежутке плюс минус пару тройку часов в будущее? Я про точку разворота, который рассчитает ваш ИИ в будущее. С погрешностью плюс минус 5-10 пипсов внутри дня на том же фунт-доллар, и погрешностью +-1-2 бара на м5.
И ваш ИИ сможет вовремя понять что модель (паттерн) пошла допустим не по цене, а по времени? А значит сработает не первая, а вторая или третья расчетная точка. :)
Кодеры как дети, если кто-то усомниться в возможностях компа (типа машина все найдет), сразу губки надувают и обижаются. ;) И никто догнать не может, что вы никогда не увидите, почему вам не удается найти 100% рабочий алгоритм. А всё потому, что есть одна маленькая незаметная деталька, именно она дает сигнал, что пропорции паттерна в будущее сместятся на определенную величину. Но вы же Хении и Боги кода, не барское это дело, кое в чем ковыряться (поискать все руками, считая на бумажке или калькуляторе). Проще тупо закодить какую то фигню на входе, получить фигню на выходе, и дальше попытаться все это оптимизировать.
Четкая логическая математическая система описана более 100 лет назад (работает до сих пор как часики). И с точки зрения алгебры, и с точки зрения геометрии. Но изобретателей собственного лисапеда всё ещё с избытком....
Четкая логическая математическая система описана более 100 лет назад (работает до сих пор как часики). И с точки зрения алгебры, и с точки зрения геометрии. Но изобретателей собственного лисапеда всё ещё с избытком....
Так покажыте свою торговлю..
От таких вопросов у всех начнется головокружение.
Тут как в школе.
Начинать нужно из далека и простых вопросов.
А на какой паре торгуете?
А покажите последнюю сделку, вход выход со всеми параметрами.
А далее, сколько сделок в день совершаете и в этом месте наступает пауза.
P.Z.
Более двух вопросов задавать не стоит.
Можно обидеть мастеров. А вдруг и вы так начнёте делать?
P.Z.
Болею за Спартак.
Неправильно печку понимаете. Похоже, что никогда код построения дерева не смотрели... В пределах одной строки там нет никаких операций вообще!!, только с наборами (с полными или с батчами).
Если коротко:Переданный в обучение случайный/полный набор строк, сортируется по очереди по каждому предиктору/столбцу. Проверяются разные сплиты по нему (посередине/по процентилям/рандомно), считается статистика каждому, выбирается лучший сплит, для всего полученного набора строк, а не для одной/каждой строки, как вы предположили.
По лучшему сплиту, набор строк делится на 2 набора, затем каждый снова сортируется и выбирается лучший сплит для каждой из частей и т.д. до достижения правила остановки (по глубине, по числу примеров с строке и т.п.)
Подробнее можете в редакторе посмотреть, файл у вас есть:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
функция ClassifierSplit() и та из которой она вызывается.
За пару часов разберетесь и не будете про поиск предикторов по одной строке рассказывать.
1. Класс RegressionTree()
Неправильно печку понимаете. Похоже, что никогда код построения дерева не смотрели... В пределах одной строки там нет никаких операций вообще!!, только с наборами (с полными или с батчами).
Если коротко:Переданный в обучение случайный/полный набор строк, сортируется по очереди по каждому предиктору/столбцу. Проверяются разные сплиты по нему (посередине/по процентилям/рандомно), считается статистика каждому, выбирается лучший сплит, для всего полученного набора строк, а не для одной/каждой строки, как вы предположили.
По лучшему сплиту, набор строк делится на 2 набора, затем каждый снова сортируется и выбирается лучший сплит для каждой из частей и т.д. до достижения правила остановки (по глубине, по числу примеров с строке и т.п.)
Подробнее можете в редакторе посмотреть, файл у вас есть:
\MQL5\Include\Math\Alglib\dataanalysis.mqh
функция ClassifierSplit() и та из которой она вызывается.
За пару часов разберетесь и не будете про поиск предикторов по одной строке рассказывать.
Вы правы на счет многих строк.
Вернемся к началу: что такое паттерн в случайном лесе?
Это одно дерево. Вот пример одного такого дерева из RF:
Всего строк = 166+185! Все не влезли
В моей модели таких деревьев 150