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

 
Aleksey Vyazmikin:

Как Вам эквити предоставить, по часам по минутам?

не важно, давайте и так и так

кстати один из признаков когда неправильно вычисляется шарп это когда эквити с разных масштабов дают существенно разные цифры шарп ритио, в норме они должны быть очень близкие
 
pantural:

не важно, давайте и так и так

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

Хорошо, но чуть позже - сейчас все машины пыхтят над подгонкой под историю :)

 
pantural:

не важно, давайте и так и так

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

Даю поминутный вариант, и прикладываю торговый отчет тестера.

Правда показатели чуть улучшил.

Коэффициент Шарпа 0,29 теперь.

Файлы:
KS.zip  102 kb
 
Aleksey Vyazmikin:

Даю поминутный вариант, и прикладываю торговый отчет тестера.

Правда показатели чуть улучшил.

Коэффициент Шарпа 0,29 теперь.

реальный Sharp ratio = ~3.79

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

def SharpRatio(PnL):

    PnL = [x for x in PnL if abs(x) > 0]

    ret = sum(PnL) / len(PnL)

    var = ((sum([(x - ret) ** 2 for x in PnL]) / len(PnL))) ** 0.5

    return len(PnL) ** 0.5 * ret / var


PS:  SR=3.79 это весьма оптимистично, разумеется если это не потгонка(в той или иной степени) и протестировано корректно

 
pantural:

реальный Sharp ratio = ~3.79

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

def SharpRatio(PnL):

    PnL = [x for x in PnL if abs(x) > 0]

    ret = sum(PnL) / len(PnL)

    var = ((sum([(x - ret) ** 2 for x in PnL]) / len(PnL))) ** 0.5

    return len(PnL) ** 0.5 * ret / var


PS:  SR=3.79 это весьма оптимистично, разумеется если это не потгонка(в той или иной степени) и протестировано корректно

Спасибо за перерасчет!

Если это действительно ошибка, то может стоит об этом сообщить в специальной теме, ведь это глобальная ошибка получается в терминале?

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

 
Aleksey Vyazmikin:

Спасибо за перерасчет!

Если это действительно ошибка, то может стоит об этом сообщить в специальной теме, ведь это глобальная ошибка получается в терминале?

Да, ошибка несомненно, следует сообщить, вы не против если я ваш отчет использую как пример?

Aleksey Vyazmikin:

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

Подгонка повсюду, как ни крути, вопрос как её уменьшить до приемлемого уровня.

 
pantural:

Подгонка повсюду, как ни крути, вопрос как её уменьшить до приемлемого уровня.

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

Здесь вопрос надо ставить по другому. К сожалению, общих рецептов наверное нет, и сама постановка для разных систем м.б. разная.

 
Yuriy Asaulenko:

Никак. Любая оптимизация, любая настройка, любое обучение - это подгонка.

Здесь вопрос надо ставить по другому. К сожалению, общих рецептов наверное нет, и сама постановка для разных систем м.б. разная.

есть

не использовать цифры, которые нужно подгонять

 
pantural:

Да, ошибка несомненно, следует сообщить, вы не против если я ваш отчет использую как пример?

Подгонка повсюду, как ни крути, вопрос как её уменьшить до приемлемого уровня.

Конечно можно использовать, тут ничего ценного нет в этом отчете!

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

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

 
Aleksey Vyazmikin:

Конечно можно использовать, тут ничего ценного нет в этом отчете!

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

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

Подгонка в обучении была и будет, что бы там кто не говорил, просто ее нужно делать качественно, тогда и работающих листьев будет больше.

А образно, можете сравнить торговлю на выборке обучения и прыжок с трамплина, что бы разогнаться и по инерции пролететь OOS.

При этом, если график эквити на этой выборке получается кривой, с ухабами, то на хороший прыжок можно не рассчитывать:)