Обсуждение статьи "Третье поколение нейросетей: "Глубокие нейросети"" - страница 6
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Еще один быстрый тест, на этот раз с тренировочным набором из 6000 баров с сентября 2014 года по февраль 2015 года. Тест вне выборки начнется в марте:
И снова мы имеем прибыльную фазу около 5 недель, пока модель не ухудшится.
Я считаю, что разделение на тестовые и тренировочные данные не нужно: мы можем использовать все данные для обучения. Точность и матрица путаницы вводят в заблуждение, потому что в большинстве случаев знак ZZ совпадает со знаком предыдущего бара, что ошибочно говорит о высокой точности. Для прибыли имеет значение только смена знака.
Теперь я обучил новую модель с предсказанием следующего бара, и кажется, что она действительно работает. Точность по-прежнему находится в диапазоне 74%. Вот кривая эквити:
:
Она ведет себя так, как я и ожидал: система становится прибыльной сразу после обучения, а затем медленно ухудшается по мере изменения рынка.
Поэтому следующим шагом будет тест WFO с регулярным переобучением модели. Для этого обучение должно быть интегрировано в скрипт стратегии.
Это исправленная функция для расчета Sig следующего бара:
Функция "Compute", которая выполняется скриптом стратегии каждые 30 минут:
Скрипт стратегии, "советник":
Теперь я обучил новую модель с предсказанием следующего бара, и кажется, что она действительно работает. Точность по-прежнему находится в диапазоне 74%. Вот кривая эквити:
:
Она ведет себя так, как я и ожидал: система становится прибыльной сразу после обучения, а затем медленно ухудшается по мере изменения рынка.
Поэтому следующим шагом будет тест WFO с регулярным переобучением модели. Для этого обучение должно быть интегрировано в скрипт стратегии.
Это исправленная функция для расчета Sig следующего бара:
Функция "Compute", которая выполняется скриптом стратегии каждые 30 минут:
Скрипт стратегии, "советник":
Привет
Вы переместили серию ZZ на один бар в будущее.
Вы переместили серию dz на один бар в будущее.
Таким образом, вы переместили целевую переменную в двух барах в будущее.
Это эквивалентно
dz <- Hmisc::Lag(diff(ZZ), shift=-2)Этот вариант также может быть использован.
И снова у нас есть прибыльная фаза около 5 недель, пока модель не ухудшится.
Это нормально. Модель можно и нужно периодически переобучать.
Я считаю, что разделение на тестовые и обучающие данные излишне: мы можем использовать все данные для обучения.
Можно. Важно помнить несколько важных моментов:1. обучающие и тестовые наборы не должны пересекаться.
2. Обучающий набор должен быть смешанным.
3. Если соотношение классов не сбалансировано - произвести корректировку.
Я рад, что нашлись коллеги, использующие R.
С наилучшими пожеланиями
Владимир
Вы правы насчет двойного сдвига: На самом деле система предсказывает разницу ZZ, основанную на средней цене следующего бара. ZZ рассчитывается по средним ценам, но во время расчета у нас есть цена закрытия, которая обычно находится примерно на полпути между последней и следующей средней ценой. Таким образом, дополнительный сдвиг предсказывает примерно на 1,5 бара в будущее, и на самом деле я получил гораздо худшие результаты без дополнительного сдвига.
Сейчас у меня есть скрипт Zorro, который переобучается каждые 4 недели и тестирует 4 недели после обучения. Deepnet работает довольно быстро, скрипту требуется всего около 10 минут на прогон, охватывающий около 60 циклов обучения/тестирования. Вот результат:
Все выглядит не так хорошо, как кажется на первый взгляд. Потенциал для улучшения явно есть, поэтому следующими шагами будут эксперименты с различными настройками сети, временными периодами и различными индикаторами.
Что такое Zorro? Дайте ссылки?
Нужно подобрать не только индикаторы , но и их параметры. Генный алгоритм вам в помощь.
Что такое Zorro? Дайте ссылки?
Я скачал и установил все и поместил все файлы в папки. Все пакеты установлены. Папки установлены по назначению.
Когда я помещаю эксперта на график EURUSD m30, все нормально даже в DebugView, но как только я помещаю индикатор на график, я получаю Error:
ExecutedCode: in >>> as.Logical(res <-GetRes()) [1]
Ошибка в if (z) { :
Результат функции GetRes в "i_SAE_fun.r" всегда NA и поэтому он не может преобразовать это в bool и перестает работать.
Кто-нибудь может указать мне правильное направление? Что я упускаю?
С наилучшими пожеланиями,
APoLLo
Я скачал и установил все и поместил все файлы в папки. Все пакеты установлены. Папки установлены по назначению.
Когда я помещаю эксперта на график EURUSD m30, все нормально даже в DebugView, но как только я помещаю индикатор на график, я получаю Error:
ExecutedCode: in >>> as.Logical(res <-GetRes()) [1]
Ошибка в if (z) { :
Результат функции GetRes в "i_SAE_fun.r" всегда NA и поэтому он не может преобразовать это в bool и перестает работать.
Кто-нибудь может указать мне правильное направление? Что я упускаю?
С наилучшими пожеланиями,
APoLLo
Привет APoLLo.
Какая версия R у вас есть ?
Это довольно длинная статья и после обновления пакетов в R некоторые функции перестают работать. Лучше использовать Revolution R Open (RRO 8.01)
Чтобы проверить, запустите скрипт в Rstudio.
Если у вас есть время, я также проверю , где находится ошибка.
С наилучшими пожеланиями/
Владимир
Привет APoLLo.
Какая версия R у вас ?
Это довольно длинная статья и после обновления пакетов в R некоторые функции перестают работать. Лучше использовать Revolution R Open (RRO 8.01)
Чтобы проверить, запустите скрипт в Rstudio.
Если у вас есть время, я также проверю , где находится ошибка.
С наилучшими пожеланиями/
Владимир
Я использую последнюю версию R 3.2.0 64bit вместе с последней сборкой MT4. Все пакеты для R скачаны вчера, так что они тоже должны быть последней версии.
Если я запускаю советник на EURUSD M30, я даже могу подключиться к нему с помощью RGUI и проверить "SAE" и "prepr" и получить много чисел обратно.
Для меня это выглядит так, как будто функция GetRes в R проверяет, открыто ли соединение, получая значение flag1, которое недоступно на сервере (советнике).
Возможно, причина в том, что "Acc" или "K" или "Kmax" никогда не рассчитывались правильно.
У меня есть время, так что если у вас есть возможность взглянуть, я буду очень рад.
Позже я попробую Revolution R 8.01, чтобы проверить, работает ли это лучше.
Спасибо за помощь :)
ОГРОМНОЕ СПАСИБО автору за статью. Я начал ознакомление с применением нейросетей к рынку именно с вашей статьи. С нейросетями не был знаком до этого, язык R никогда не использовал. Но теперь установил и изучаю. Кажется сложным, но интересно!
И да, скаааажжите пожалуйста, я не могу понять пока что как работает файл SAE.model Как быблиотека для советника или как что? то есть из R мы можем сохранить структуру нейросети и потом использовать ее как обычную библиотеку в советнике, или как? тут у вас все очень запутанно и сложно (для меня).