Bayesian regression - Делал ли кто советник по этому алгоритму? - страница 50

 
Dr.Trader:
 

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

Alexey Burnakov:
  

2) Да, я это уже сделал. У меня есть большой набор данных - я могу им поделиться прямо здесь - куда я добавил к ценовым данным:

- час

- минуту

- день недели

- месяц

- день в месяце

Конечно это архиважно. Только нужно выявлять не день или время суток когда ТС успешна, а характер рынка когда ТС успешна- тренд, флет , сезонные закономерности. Именно характер рынка в первую очередь определяет характер данных, а не день недели или примочки брокера. Характер рынка можно определить на истории, а вот определить на реале как писал  Дмитрий Федосеев:"  Основная проблема теханализа и соответственно торговли - это выявление тренда."

Например, ТС считается что будет успешна на флете. Есть ли какие индикаторы прогнозирующие флет?

 
Yuri Evseenkov:

Конечно это архиважно. Только нужно выявлять не день или время суток когда ТС успешна, а характер рынка когда ТС успешна- тренд, флет , сезонные закономерности. Именно характер рынка в первую очередь определяет характер данных, а не день недели или примочки брокера. Характер рынка можно определить на истории, а вот определить на реале как писал  Дмитрий Федосеев:"  Основная проблема теханализа и соответственно торговли - это выявление тренда."

Например, ТС считается что будет успешна на флете. Есть ли какие индикаторы прогнозирующие флет?

В том то и дело, что день и время суток заранее определить можно, а тренд и флэт - нет.

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

 
Yuri Evseenkov:

Есть ли какие индикаторы прогнозирующие флет?

Для этого тоже можно сделать классификатор, через деревья и R, как в блоге у Алексея. Нужно собрать несколько лет истории баров, далее вручную или каким-то индикатором указать какие промежутки времени были флетовые, какие нет, и обучить модель. Только для обучения подавать не прирост цены в следующем периоде как в примере, а значения флет/тренд (например 0 и 1 соответсвенно). И получится индикатор.

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

 
Dr.Trader:

Для этого тоже можно сделать классификатор, через деревья и R, как в блоге у Алексея. Нужно собрать несколько лет истории баров, далее вручную или каким-то индикатором указать какие промежутки времени были флетовые, какие нет, и обучить модель. Только для обучения подавать не прирост цены в следующем периоде как в примере, а значения флет/тренд (например 0 и 1 соответсвенно). И получится индикатор.

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

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

 
Дмитрий:

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

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

Практика говорит о другом. Смотря чему Вы учите.

Если просто классифицируете прошлое, то да.

А если Вы учителя сдвигаете, т.е. прошлые значения предикторов соответствуют текущему значению учителя, то предсказываете будущее. Например, сдвинули на 1 бара. Получается, что по приходу нового бара Вы вычисляете все свои предикторы, а затем используя обученную на ПРОШЛОМ модель предсказываете свои флеты-тренды. Можно учить со сдвигом более 1. Замечательно то, что в моделях прогнозирования, которые экстраполируют предыдущие бары, ошибка суммируется (в лучшем случае) по мере увеличения горизонта прогнозирования, то в классификации это не так. Так при прогнозе на Н1: ошибка на +1 = 30% (реальная цифра), на +2 чуть больше, а на +4 почти 30%.

Мало того, если начать дружить с Бурнаковым домами, то можно будет найти сдвиги в будущее, которые будут иметь примерно такую же ошибку предсказания, как и бар +1. 

 
Dr.Trader:

Для этого тоже можно сделать классификатор, через деревья и R, как в блоге у Алексея. Нужно собрать несколько лет истории баров, далее вручную или каким-то индикатором указать какие промежутки времени были флетовые, какие нет, и обучить модель. Только для обучения подавать не прирост цены в следующем периоде как в примере, а значения флет/тренд (например 0 и 1 соответсвенно). И получится индикатор.

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

Блог Алексея, обучение моделей , классификация это слишком сложные расширения для моей задачи и меня самого. Мне бы что попроще для прогнозирования флэта  с определенной вероятностью.

 Что то типа ADX. И на MQL4, что бы было понятно и трейдерам, и экономистам , и философам а не только специалистам в мат. пакетах и языках программирования R , Python и др.

 
Dr.Trader:

Для этого тоже можно сделать классификатор, через деревья и R, как в блоге у Алексея. Нужно собрать несколько лет истории баров, далее вручную или каким-то индикатором указать какие промежутки времени были флетовые, какие нет, и обучить модель. Только для обучения подавать не прирост цены в следующем периоде как в примере, а значения флет/тренд (например 0 и 1 соответсвенно). И получится индикатор.

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

У меня вроде бы классификатор этому учиться.

Смотрите, это схема входных данных.

 

Я даю машине:

разницу со скользящей средней

разницу со скользящим максимумом

тоже с минимумом

размах данных

стандартное отклонение

и просто разницу между ценами взятыми с лагом.

 Теперь представьте, что это окно еще варьируется от 2 до 724 минут - есть 18 наборов таких предикторов.

 

По идее, этого достаточно, что отличить трендовую движуху от флета. Как минимум, разница между ценами с лагом и размах данных (и стандартное отклонение) об этом говорят.

Я еще хотел взять угол наклона линейной регрессии для окна цен. Также с переменным окном. Но это те же яйца. Хотя попробовать можно.

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

 
СанСаныч Фоменко:

Практика говорит о другом. Смотря чему Вы учите.

Если просто классифицируете прошлое, то да.

А если Вы учителя сдвигаете, т.е. прошлые значения предикторов соответствуют текущему значению учителя, то предсказываете будущее. Например, сдвинули на 1 бара. Получается, что по приходу нового бара Вы вычисляете все свои предикторы, а затем используя обученную на ПРОШЛОМ модель предсказываете свои флеты-тренды. Можно учить со сдвигом более 1. Замечательно то, что в моделях прогнозирования, которые экстраполируют предыдущие бары, ошибка суммируется (в лучшем случае) по мере увеличения горизонта прогнозирования, то в классификации это не так. Так при прогнозе на Н1: ошибка на +1 = 30% (реальная цифра), на +2 чуть больше, а на +4 почти 30%.

Мало того, если начать дружить с Бурнаковым домами, то можно будет найти сдвиги в будущее, которые будут иметь примерно такую же ошибку предсказания, как и бар +1. 

Да. Я же не предсказываю на шаг вперед, как, например, ARIMA. У Аримы ошика растет экспоненциально, потому что предсказанное на шаг вперед начинает использоваться как предиктор и это повторяется столько раз, насколько вперед нужно спрогнозировать.

У меня изначально было 18 целевых переменных, для которых я по очереди обучаю модели (перебираю параметры обучения и останавливаюсь на лучшей комбинации). И так я вижу, для какого горизонта лучше все прогнозируется.

 У меня обучение по всем целевым длится около суток. Но и это не предел. Многослойная нейронная сеть на GPU может обучаться неделю для одной целевой.

 
Alexey Burnakov:

У меня изначально было 18 целевых переменных, для которых я по очереди обучаю модели (перебираю параметры обучения и останавливаюсь на лучшей комбинации). 

А как определяете "лучшесть" комбинации?
 
Alexey Burnakov:

Да. Я же не предсказываю на шаг вперед, как, например, ARIMA. У Аримы ошика растет экспоненциально, потому что предсказанное на шаг вперед начинает использоваться как предиктор и это повторяется столько раз, насколько вперед нужно спрогнозировать.

У меня изначально было 18 целевых переменных, для которых я по очереди обучаю модели (перебираю параметры обучения и останавливаюсь на лучшей комбинации). И так я вижу, для какого горизонта лучше все прогнозируется.

 У меня обучение по всем целевым длится около суток. Но и это не предел. Многослойная нейронная сеть на GPU может обучаться неделю для одной целевой.

Именно так я и понимал Вашу деятельность