Скачать MetaTrader 5

Обсуждение статьи "Случайные леса предсказывают тренды"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Следи за новостями. Заходи на официальный канал нашей компании!
MetaQuotes Software Corp.
Модератор
181168
MetaQuotes Software Corp. 2014.09.29 16:07 

Опубликована статья Случайные леса предсказывают тренды:

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

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

В данной статье рассмотрим автоматический выбор паттернов и их предварительную оценку с помощью пакета Rattle из системы статистического анализа R.

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

Rattle (the R Analytical Tool To Learn Easily) объединяет множество пакетов R, которые важны для построения торговых систем, но каждый по отдельности не легки для использования новичком. Понимание R не требуется, чтобы начать с Rattle. Но результатом работы с Rattle будет код на R, который может быть использован при построении реальной торговой системы. Но на этом этапе потребуется знание R.

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

Для построения целевой переменной использовался ZigZag с параметром «расстояние между разворотами», равным 0.0035 долларов. На рис. 1 представлен результат.

Рис.1. Индикатор ZigZag

Автор: СанСаныч Фоменко

Sergey Dzyublik
4817
Sergey Dzyublik 2014.09.30 00:53  

первая мысль которая пришла при чтении статьи - "что за корявый перевод"

Посмотрел откуда автор - оказалось не перевод таки))

В качестве инструмента для предсказания поведения валютных пар выберем систему R, которая идеально подходит для задач предсказания на финансовых рынках и, в частности, предсказания поведения валютных пар.

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

Murad Ismayilov
1812
Murad Ismayilov 2014.09.30 08:25  

Заинтересовала сама идея (про random forest не знал). Искусственно навязанный инструмент. Хочу повторить без него - нечетко изложено, что именно делалось, какие векторы данных применяются. Параметры зигзага опущены. Целевая аудитория - пользователи пакета Rattle? Или пишущие на языке R? Без их изучения многие моменты статьи непонятны. Выводы сумбурные - перспективно это направление или нет - из статьи не ясно. Можно было бы примеры торговли привести. Общее впечатление - как будто для своего узкого круга писалось.

PS. А при попытке открытия TC.Rdata из статьи выдается следующее:

Ошибка в sqrt(ncol(crs$dataset)) : 
  нечисловой аргумент для математической функции
Вдобавок: Предупреждение
In rm(crs) : объект 'crs' не найден
Alexey Navoykov
3988
Alexey Navoykov 2014.09.30 09:50  
wmlab:
Заинтересовала сама идея (про random forest не знал). Искусственно навязанный инструмент. Хочу повторить без него - нечетко изложено, что именно делалось, какие векторы данных применяются. Параметры зигзага опущены. Целевая аудитория - пользователи пакета Rattle? Или пишущие на языке R? Без их изучения многие моменты статьи непонятны. Выводы сумбурные - перспективно это направление или нет - из статьи не ясно. Можно было бы примеры торговли привести. Общее впечатление - как будто для своего узкого круга писалось.

Что-то у вас сплошные придирки. По-моему, вполне хорошо и доходчиво изложено.  Я например, не являясь математиком, вполне понял суть. За исключением некоторых моментов, которые нужно было объяснить поподробней.  Например, я не совсем понял термин "расщепление дерева", он там встречается несколько раз, и не совсем понятно, что конкретно понимается под ним.  А что касается выводов, какие выводы вам нужны?  "Вперёд! на баррикады"? По-моему, перспективность данного направления и так очевидна.  Я, например, после прочтения осознал, что занимаюсь изобретением велосипеда, пытаюсь сам придумывать аналогичные алгоритмы вместо того, чтобы использовать уже готовое решение.   Как я понял, основная задумка была - популяризировать пакет R среди любителей, интересующихся статистикой (но не для "чайников").  И вполне неплохо получилось, на мой взгляд.

СанСаныч Фоменко
6134
СанСаныч Фоменко 2014.09.30 10:21  
wmlab:

Заинтересовала сама идея (про random forest не знал). Искусственно навязанный инструмент. Хочу повторить без него - нечетко изложено, что именно делалось, какие векторы данных применяются. Параметры зигзага опущены. Целевая аудитория - пользователи пакета Rattle? Или пишущие на языке R? Без их изучения многие моменты статьи непонятны. Выводы сумбурные - перспективно это направление или нет - из статьи не ясно. Можно было бы примеры торговли привести. Общее впечатление - как будто для своего узкого круга писалось.

PS. А при попытке открытия TC.Rdata из статьи выдается следующее:

Целевая аудитория - пользователи пакета Rattle? Или пишущие на языке R? Без их изучения многие моменты статьи непонятны. 

При использовании Rattle я выделяю две целевых аудитории:

Не подготовленные в R пользователи, которые могут составить свой входной .csv файл и создать и оценить результаты 6 моделей, а не только случайных лесов. Основная проблема не в моделе,а в исходных данных модели. Если удалось подобрать исходные данные, то затем можно и заказать программирование. Главное идея, а техника программирования можно и приложить

 PS. А при попытке открытия TC.Rdata из статьи выдается следующее:

Перепроверил, все нормально. последовательность действия следующая:

  • запуcкаем R
  • вкладка  \Файл\загрузить рабочее пространство
  • далее ищем файл TC.RData из распакованного архива. 
  • Запускаем Rattle
  • вкладка Data\R Dataset
  • в выпадающем меню ищем в окне  Data Name имя TC
  • Нажимаем "Выполнить"

 Получаем перечень интересующих Вас векторов.

Другая аудитория - подготовленные пользователи. Rattle достаточно удобный инструмент для подбора исходных данных для модели.  Основное время при построение торговых систем тратится именно на подбор исходных данных - самый неопределенный участок работы. Вот здесь Rattle очень полезен. Очень быстро можно получить конечную оценку, не особенно вникая в очень сложные конструкции математических моделей.

Удачи, готов продолжить разъяснения 

СанСаныч Фоменко
6134
СанСаныч Фоменко 2014.09.30 10:28  
meat:

Что-то у вас сплошные придирки. По-моему, вполне хорошо и доходчиво изложено.  Я например, не являясь математиком, вполне понял суть. За исключением некоторых моментов, которые нужно было объяснить поподробней.  Например, я не совсем понял термин "расщепление дерева", он там встречается несколько раз, и не совсем понятно, что конкретно понимается под ним.  А что касается выводов, какие выводы вам нужны?  "Вперёд! на баррикады"? По-моему, перспективность данного направления и так очевидна.  Я, например, после прочтения осознал, что занимаюсь изобретением велосипеда, пытаюсь сам придумывать аналогичные алгоритмы вместо того, чтобы использовать уже готовое решение.   Как я понял, основная задумка была - популяризировать пакет R среди любителей, интересующихся статистикой (но не для "чайников").  И вполне неплохо получилось, на мой взгляд.

Например, я не совсем понял термин "расщепление дерева"

Берем корень дерева - он вверху.

Делим корень проводим из корня две линии - расщепление корня, далее это же действие на каждом уровне.

В каждом узле дерева проверяется какое-либо условие, сформулированное алгоритмом. Например, если eurusd > 1.35, то идти по левой ветке, в противно по правой.

Таких деревьев алгоритм избыточно сформировал 500 штук. Условий должно быть под 10000.

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

Murad Ismayilov
1812
Murad Ismayilov 2014.09.30 11:20  
faa1947:

Перепроверил, все нормально. последовательность действия следующая:

  • запуcкаем R
  • вкладка  \Файл\загрузить рабочее пространство
  • далее ищем файл TC.RData из распакованного архива. 
  • Запускаем Rattle
  • вкладка Data\R Dataset
  • в выпадающем меню ищем в окне  Data Name имя TC
  • Нажимаем "Выполнить"

 Получаем перечень интересующих Вас векторов. 

Спасибо! Вот теперь ясно стало.

Не могли бы Вы пояснить суть этих векторов: ZZ.75, ZZ.35?
Что за вектора *.dif1, *.dif2, *.dif3? Приращения? Чего относительно чего?
Вектора eur, gbp и т.п. - что это?

И глобальный вопрос - почему добавлены данные от индикаторов? Разве это не то же самое, что [x, f1(x), f2(x)]? Я намекаю на избыточность. Не пробовали ли Вы просто подавать приращения закрытий?

Заранее спасибо за ответы. 

СанСаныч Фоменко
6134
СанСаныч Фоменко 2014.09.30 11:57  
wmlab:

Спасибо! Вот теперь ясно стало.

Не могли бы Вы пояснить суть этих векторов: ZZ.75, ZZ.35?
Что за вектора *.dif1, *.dif2, *.dif3? Приращения? Чего относительно чего?
Вектора eur, gbp и т.п. - что это?

И глобальный вопрос - почему добавлены данные от индикаторов? Разве это не то же самое, что [x, f1(x), f2(x)]? Я намекаю на избыточность. Не пробовали ли Вы просто подавать приращения закрытий?

Заранее спасибо за ответы. 

Не могли бы Вы пояснить суть этих векторов: ZZ.75, ZZ.35?

Это ЗЗ с минимальным расстоянием между разворотами 75 пипсов и 35. Из ЗЗю35 получена целевая переменная  TREND. Эти переменные в модели использовать нельзя - заглядывание в Будущее.

 

 Что за вектора *.dif1, *.dif2, *.dif3? Приращения? Чего относительно чего?

Приращение к предыдущему бару, предыдущему предыдущего (-2) и (-3) бару.  Идея - учесть тренды.

 

 Вектора eur, gbp и т.п. - что это?

Котиры eurusd, gbpusd - первые символы.

 

 Я намекаю на избыточность. Не пробовали ли Вы просто подавать приращения закрытий?

Много чего пробовал. Статья - демонстрация возможностей и заодно избыточность, что каждый мог отобрать под свои идеи и попробовать. Отбор делается очень просто - переменная помечается как Ignore.  

Vladimir Perervenko
2320
Vladimir Perervenko 2014.10.02 16:57  

Поздравляю со статьей СанСаныч!

Конечно на R это было бы более компактно, но для начала наверное нужно начать с этого. 

Заканчиваю статью по "Глубокому" обучению. С Вашими данными попробуем сравнить результат.

Удачи 

Vladimir Perervenko
2320
Vladimir Perervenko 2014.10.02 19:37  

Посмотрел внимательно набор данных- не годится. Котировки нужно выбросить. Т.е. первые 48 переменных убираем. Остается набор данных с 42 входными и одной целевой.

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

Иначе конечно статья очень полезна.

СанСаныч Фоменко
6134
СанСаныч Фоменко 2014.10.03 07:15  
vlad1949:

Поздравляю со статьей СанСаныч!

Конечно на R это было бы более компактно, но для начала наверное нужно начать с этого. 

Заканчиваю статью по "Глубокому" обучению. С Вашими данными попробуем сравнить результат.

Удачи 

Очень было бы хорошо повторить ту Вашу ветку здесь. 

Очень полезный был материал. 

12345678...12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий