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

 
Dr. Trader:

Я тоже много об этом думаю. 

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

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

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

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

Все-таки сама идея использования регрессионных моделей машинного обучения представляется крайне сомнительной. И особенно это касается прогнозирования приращений. И дважды особенно это касается НС, которые по смыслу представляют собой черный ящик с какими-то слоями и персептронами. Какой экономический или статистический смысл имеется у этих слов?

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


В GARCH модель состоит из следующих шагов:

  • исходный ряд детрендируют путем логарифма (понижают влияние выбросов) отношения соседних баров.
  • так как обычно полностью от НЕ стационарности не удается избавиться, то
  •       моделируют оставшийся тренд (ARIMA)
  •       моделируют нюансы ARCH
  •       моделируют распределение приращений.

Все содержательная и осмысленная работа.

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

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

ну в чем проблемосы то?

https://www.quantstart.com/articles/ARIMA-GARCH-Trading-Strategy-on-the-SP500-Stock-Market-Index-Using-R

копипаст и фперет

ARIMA+GARCH Trading Strategy on the S&P500 Stock Market Index Using R | QuantStart
ARIMA+GARCH Trading Strategy on the S&P500 Stock Market Index Using R | QuantStart
  • www.quantstart.com
In this article I want to show you how to apply all of the knowledge gained in the previous time series analysis posts to a trading strategy on the S&P500 US stock market index. We will see that by combining the ARIMA and GARCH models we can significantly outperform a "Buy-and-Hold" approach over the long term. Strategy Overview The idea of the...
 
СанСаныч Фоменко:

  • исходный ряд детрендируют путем логарифма (понижают влияние выбросов) отношения соседних баров.

по какому основанию?

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

Все-таки сама идея использования регрессионных моделей машинного обучения представляется крайне сомнительной. И особенно это касается прогнозирования приращений. И дважды особенно это касается НС, которые по смыслу представляют собой черный ящик с какими-то слоями и персептронами. Какой экономический или статистический смысл имеется у этих слов?

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

Вы неправы СанСаныч. НС, это типа эквивалент нечеткой логике. Обучаемой. Лично я не вижу ничего загадочного. Можно использовать и др. аналогии

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

Кстати, по виду распределений на разных продолжительных отрезках (несколько за 3 мес.) я не заметил какой-либо существенной разницы между ними.

На счет экономического смысла - ну, не знаю. Я исхожу из того, что рынок случаен для наблюдателя. Какой он на самом деле - случайный или нет, на самом деле не имеет значения. Здесь ключевое слово - для наблюдателя.

 
Maxim Dmitrievsky:

ну в чем проблемосы то?

https://www.quantstart.com/articles/ARIMA-GARCH-Trading-Strategy-on-the-SP500-Stock-Market-Index-Using-R

копипаст и фперет

Интересный Вы человек! Оказывается Вы все знаете!

 
Maxim Dmitrievsky:

по какому основанию?

У меня стоит log, а какая разница?

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

У меня стоит log, а какая разница?

потмоу что логарифмирование в данном случае не избавляет от выбросов: от выбросов избавляет расчет приращений с n-лагом

логарифмирование просто центрирует график относительно 0

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

просто приращения

логарифм приращений (натуральный)


 
Maxim Dmitrievsky:

потмоу что логарифмирование в данном случае не избавляет от выбросов: от выбросов избавляет расчет приращений с n-лагом

логарифмирование просто центрирует график относительно 0

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

просто приращения

логарифм приращений (натуральный)


Выбросы штука тонкая. Слишком большие выбросы лучше вообще заменить на более приемлемый максимум.

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

> summary(diff(eur))
     Index                       diff(eur)         
 Min.   :2016-01-04 00:00:00   Min.   :-0.0230100  
 1st Qu.:2016-04-14 19:00:00   1st Qu.:-0.0005300  
 Median :2016-07-27 12:00:00   Median : 0.0000100  
 Mean   :2016-07-27 12:01:14   Mean   :-0.0000036  
 3rd Qu.:2016-11-08 06:00:00   3rd Qu.: 0.0005200  
 Max.   :2017-02-17 23:00:00   Max.   : 0.0143400  


> summary((diff(eur, log=T)))
     Index                     (diff(eur, log = T))
 Min.   :2016-01-04 00:00:00   Min.   :-0.0206443  
 1st Qu.:2016-04-14 19:00:00   1st Qu.:-0.0004810  
 Median :2016-07-27 12:00:00   Median : 0.0000090  
 Mean   :2016-07-27 12:01:14   Mean   :-0.0000034  
 3rd Qu.:2016-11-08 06:00:00   3rd Qu.: 0.0004755  
 Max.   :2017-02-17 23:00:00   Max.   : 0.0127862  
                               NA's   :1


А если взять некий гипотетический случай с соседними котировками 10 и 2, то

10/2 = 5

log (10/2) = 0.69

 
Maxim Dmitrievsky:

потмоу что логарифмирование в данном случае не избавляет от выбросов: от выбросов избавляет расчет приращений с n-лагом



 n-лагом - это увеличение ТФ, и чем больше ТФ - тем больше приращения.

Ваш лаг 50 - это Н8, только более точный в том смысле, что ваш ТФ=8 часам начинается каждую минуту в отличии от обычного графика.

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

Выбросы штука тонкая. Слишком большие выбросы лучше вообще заменить на более приемлемый максимум.

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



А если взять некий гипотетический случай с соседними котировками 10 и 2, то

10/2 = 5

log (10/2) = 0.69

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

но вы не избавились от выбросов

я же привел 2 картинки выше