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

 
Mihail Marchukajtes:

Что???

 Хотя правда в этих словах есть. ....

Надо почитать просто что такое классификация. На любом нормальном сайте по машинному обучению это разжевано.
 
Alexey Burnakov:

Данные для валидации: https://drive.google.com/file/d/0B_Au3ANgcG7COGpJb24wbkxoaTg/view?usp=sharing

Там 5.5 лет для 5 пар. Даты идут строго после обучающего множества. В крайнем правом столбце - целевка: прирост цены через 181 минуту (то, что было закодировано категориями в трейне).

Попробуйте получить МО на валидации больше 0.0001. У меня получилось примерно 0.00013, что соответствует среднему спреду. То есть, в ноль.

При этом я отторговываю не каждое наблюдение, а только там, где сигнал машины сильный (около 5-10% наблюдений). 

 

Спасибо, 

Алексей 

 

А это полезная картинка для составления тестовой выборки (кроссвалидации). Нужно делить набор на 5 равных частей и хвост каждой 5-ой части - это данные из будущего. 

 
Скачал, всё хорошо, но вот в MQL  пока вставить не получилось, и почемуто в сохранённом файле результаты оптимизации отличаются от того что выводит сам предиктор. В самом предикторе уровень обобщения данных 90%, а в выгруженной модели всего лишь 47% Непонятно.... Ну и запустить в MQL пока что не получилось....
 
Mihail Marchukajtes:
Скачал, всё хорошо, но вот в MQL  пока вставить не получилось, ... Ну и запустить в MQL пока что не получилось....

Потому что в файле java есть функция Math.signum(), а в mql такой функции нет

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

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

Тут ещё нужно смотреть такой параметр, как bias (предвзятость). Желательно, чтобы он был меньше 50%. А ещё лучше чтобы он был вообще нулевым. Чем меньше его значение, тем адекватнее тернарный классификатор.

 
Mihail Marchukajtes:
Скачал, всё хорошо, но вот в MQL  пока вставить не получилось, ... Ну и запустить в MQL пока что не получилось....

Еще можно так сделать. В MetaEditor нажать Ctrl+H, потом сделать автозамену:


Потом добавить в код функцию signum():

double signum(double x) {
   if (x == 0.0) return(0.0);
   if (x > 0.0) return(1.0);
   return(-1.0);
}
 
Yury Reshetov:

Еще можно так сделать. В MetaEditor нажать Ctrl+H, потом сделать автозамену:


Потом добавить в код функцию signum():

Ну хорошо, попробую в скором времени, так как стройка дома уже достала. Торгую с коленке... А оптимизировать всё руки не доходят, как сделаю отпишусь сразу....
 
Yury Reshetov:

Еще можно так сделать. В MetaEditor нажать Ctrl+H, потом сделать автозамену:


Потом добавить в код функцию signum():

XЧто то не пойму, ругается на переменную 1d что это за переменная и откуда она взялась???
 
Mihail Marchukajtes:
XЧто то не пойму, ругается на переменную 1d что это за переменная и откуда она взялась???
Всё разобрался, поменял её на d1 и всё заработало. Особо в код не вникал, но понимаю что это комитет и работате он на 5+++. Спасибо Юрий за работу. "Теперь мы для коровки нашей в два раза больше сена запасём" (с) Матроскин.....
 
Теперь немного о комитетах, ещё в 2007 впервые я услышал этот термин, и мы строили комитет из трёх сетей, Так вуот комитет выруливает сигнал и выравнивает баранс только в том случае когда 2 из трёх модели работают исправно, если в комитете 2 из 3 дают ложный сигнал, то сам комитет провальный. как то так....
 
Yury Reshetov:

Еще можно так сделать. В MetaEditor нажать Ctrl+H, потом сделать автозамену:


Потом добавить в код функцию signum():

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