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

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да! Забыл сказать.
Состояниями считается набор данных, который характеризует частицу почти полностью. Т.е. это набор данных, проще говоря - объем выборки, со своими характеристиками - эксцессом, асимметрией, негэнтропией и т.д.
Т.е. с уверенностью Р.Фейнмана можно утверждать, что правильно определив объем выборки для конкретной пары, вычислив на истории характерные средние значения этих коэффициентов для этой выборки, можно прогнозировать, что имея в данный момент времени определенный набор параметров, через некий интервал времени, система перейдет в состояние со своими устойчивыми параметрами.
Это и есть то, чего я жду от этой ветки. Если нужна помощь в определении нужного объема выборки - пишите, постраюсь помочь.
тогда такой вопрос - допустим, есть процесс авторегрессии, т.е. зависимости настоящих состояний от прошлых
как правильно подобрать совокупность приращений с разными лагами что бы предсказать систему? должны ли лаги быть постоянными или меняться со временем, если меняться то как это определить (кроме банального перебора)
потому что если есть такая комбинация приращений, устойчиво предсказывающих целевую, то обучить НС на этом уже не представляет никакой слжности
тогда такой вопрос - допустим, есть процесс авторегрессии, т.е. зависимости настоящих состояний от прошлых
как правильно подобрать совокупность приращений с разными лагами что бы предсказать систему? должны ли лаги быть постоянными или меняться со временем, если меняться то как это определить (кроме банального перебора)
Тут вот какой момент, который, очевидно, вызывает трудности.
Набор данных не локален во времени
Это принципиальный момент!
Т.е. если работать со временем, то надо понимать, что за строго определенный промежуток времени мы имеем дело с разным набором данных. Это краеугольный камень преткновения. Пытаясь работать с одной и той же выборкой конкретных значений мы приходим к "плавающему" окну наблюдений по времени.
Эту проблему я обхожу 2 способами:
1. работа исключительно с конкретным набором тиков (объемом выборки) - он один для конкретной пары раз и навсегда. Но этот набор характеризуется разным временем своего формирования и строить прогнозы нельзя.
2. работа исключительно с постоянным временным окном. В этом случае, напротив, имеем плавающий объем выборки тиков в нем. Как обойти эту сложность? Ответ - вводить т.н. "псевдосостояния", т.е. как бы добирать кол-во данных в окне наблюдений до требуемого объема выборки. Я это делаю принудительно работая в экспоненциальной шкале времени. Т.е. на строго определенном окне времени через экспоненту считываю данные и неважно был ли это реально пришедший тик или нет. В этом случае прогнозы строить можно. Единственное - сомневаюсь, что экспоненциальные интервалы это правильное решение. Фейнман работал с равномерными интервалами.
Если выбрать 1 путь - задача прогнозирования не решаема в принципе.
2 путь - решаема, но таких архивов нет.
Вот на этом я и застрял и пока тупо набираю свои собственные архивы. Другого пути не вижу, увы...
2. работа исключительно с постоянным временным окном. В этом случае, напротив, имеем плавающий объем выборки в нем. Как обойти эту сложность? Ответ - вводить т.н. "псевдосостояния", т.е. как бы добирать кол-во данных в окне наблюдений до требуемого объема выборки. Я это делаю принудительно работая в экспоненциальной шкале времени. Т.е. на строго определенном окне времени через экспоненту считываю данные и неважно был ли это реально пришедший тик или нет. В этом случае прогнозы строить можно. Единственное - сомневаюсь, что экспоненциальные интервалы это правильное решение. Фейнман работал с равномерными интервалами.
Вот на самом деле экспоненциальные промежутки как раз и помогают решить проблему постоянного окна, насколько я понимаю, это правильное решение (должно быть). Допустим, обучающая выборка это 1000 баров(тиков), не важно. Само собой, при скользящем окне закономерности меняются, и НС нужно переобучать. Но если в нашу выборку попадает комбинация приращений, лаг которых увеличивается по экспоненте.. интересно, какое кол-во суммарно нужно разных лагов, что бы система не только вышла бы за пределы окна (допустим, лаг 1500), но и описала бы так же эффективно все возможные состояния для такого же окна, только теперь скользящего.
может, я гоню :D но попробовать то несложно. Но вопрос в том, когда нужно остановиться
Вот на самом деле экспоненциальные промежутки как раз и помогают решить проблему постоянного окна, насколько я понимаю, это правильное решение (должно быть). Допустим, обучающая выборка это 1000 баров(тиков), не важно. Само собой, при скользящем окне закономерности меняются, и НС нужно переобучать. Но если в нашу выборку попадает комбинация приращений, лаг которых увеличивается по экспоненте.. интересно, какое кол-во суммарно нужно разных лагов, что бы система не только вышла бы за пределы окна (допустим, лаг 1500), но и описала бы так же эффективно все возможные состояния для такого же окна, только теперь скользящего.
может, я гоню :D но попробовать то несложно. Но вопрос в том, когда нужно остановиться
А останавливаться надо при переходе системы из неустойчивого состояния в устойчивое.
Т.е. к примеру, если в данный момент времени увидели повышение негэнтропии (начался тренд), то через определенный интервал времени негэнтропия вернется к своему характерному среднему значению, вычисленному по истории.
Как определить этот интервал времени перехода? Ну, вот это и есть настоящий прогноз, без дураков. Этого я и жду от нейросетей и читаю эту ветку :)
А останавливаться надо при переходе системы из неустойчивого состояния в устойчивое.
Т.е. к примеру, если в данный момент времени увидели повышение негэнтропии (начался тренд), то через определенный интервал времени негэнтропия вернется к своему характерному среднему значению, вычисленному по истории.
Как определить этот интервал времени перехода? Ну, вот это и есть настоящий прогноз, без дураков. Этого я и жду от нейросетей и читаю эту ветку :)
а, ну вот задача свелась к довольно тривиальной - обучить модель на экспоненциальных приращениях, и построить диаграмму спрэда между предсказанными и текущими ценами, посмотреть как распределены отклонения от среднего (остатки)
на след. неделе сделаю :) только слово негэнтропия заменим на слово дисперсия
а, ну вот задача свелась к довольно тривиальной - обучить модель на экспоненциальных приращениях, и построить диаграмму спрэда между предсказанными и текущими ценами, посмотреть как распределены отклонения от среднего (остатки)
на след. неделе сделаю :)
Ждем, Максим. Серьезно - уверен, что это можно делать. Только не забудь сигнал открыть - первый подпишусь.
Только 2 вещи реально могут работать на рынке - нейросети и теорвер. Все остальное - барахло, подгонка и пустые карманы как результат.
Ждем, Максим. Серьезно - уверен, что это можно делать. Только не забудь сигнал открыть - первый подпишусь.
Только 2 вещи реально могут работать на рынке - нейросети и теорвер. Все остальное - барахло, подгонка и пустые карманы как результат.
Я Вам скину бота, как пример, можете потом подокручивать что-нибудь :D сделаю в виде индикатора сначала, для наглядности
В догонку к этому - https://www.mql5.com/ru/forum/86386/page643#comment_6472393
Нашёл ещё один интересный пакет для отсева предикторов. Называется FSelector. Предлагает около десятка методов для отсева предикторов , в том числе с помощью энтропии.
Функция для отсева предикторов random.forest.importance() показала вполне достойные результаты на некоторых тестах. Неудобно что по её мнению вообще все предикторы хоть немного но важны.. , но если например посчитать среднюю важность, и взять только те предикторы что важны выше среднего - получается очень хороший результат.
Взял просто eurusd m1 за примерно январь этого года, и скользящее окно в 1 день.
По логике, если растёт энтропия то следует приостановить торговлю, и продолжать торговлю при низкой. А тут при низкой энтропии почему-то тренд, хотя торговать проще на флэте, необычно.
(поправил опечатку в приатаченном коде, скачайте заново если уже успели скачать старый)
Проводить тесты yf исходной котировке бессмысленно, так как на глаз видно, что ряд не стационарен.
А интересны (не для меня - я этим пользуюсь всегда) графики для временного ряда log(p/p-1).
Что там? И конечно нужна шкала по оси ординат.
Нашёл ещё один интересный пакет для отсева предикторов. Называется FSelector. Предлагает около десятка методов для отсева предикторов , в том числе с помощью энтропии.
Есть еще очень любопытный большой набор инструментов Relief отбора предикторов в пакете CORElearn.
В моих долгих упражнениях на эту тему я не нашел ничего лучше, чем функции отбора предикторов, которые в caret, особенно saf.
Но все это не будет работать, если не сделан предварительный отбор предикторов по принципу "имеет отношение" к целевой переменной.
Повторю еще раз на примере двух классов:
ПС.
Обсуждали главные компоненты и Вы видели недостаток, что алгоритм без учителя.
Вот с учителем:
Пакет spls