Перейти к содержанию

[Обсуждение] Нейросетевые дела


Рекомендуемые сообщения

[Обсуждение] Нейросетевые дела Опубликовано

 

Привет, коллеги !

 

С не давних пор я для себя занимаюсь разработкой нейросетевых решений в сфере торговли. С недавних и самостоятельно.  

Т.е. по уровню я не особо продвинутый, скорее чайник. Но могу сказать, «нейроподход» к решению задач в разных сферах – это действительно перспективный метод.

Да вы сами всё видите, как нейросети меняют наш мир.

 

Чтобы тут появились  проекты не только "алгоритмического" подхода, но и нейросетевые - для этого нам  как-то надо двигаться в этом 

направлении. Хотелось бы найти тут единомышленников.

 

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

кто интересовался на базовом уровне математикой и программированием.

 

На текущий момент у меня пару проектов , которые требует «допиливания» . Они простог уровня.  Можно начать с какого то из них.

 

Уже конкретный вопрос к модераторам.

Какой раздел (темы ) нужен :  Программное обеспечение для НС. Я работаю на одном приложении, но может коллеги найдут еще что-то продуктивное. Там надо обсуждать их работу – бывают ошибки, косяки и т.п. вещи .  Куда поместить такой раздел.

Куда-то кинуть пару статей по теории или просто по идеям .

 

Что скажете?

 

Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 68
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

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

Перейти

О, вы меня плохо знаете Это пока 5 месяцев. Фильтровать, конечно, будем не этого мартина, а что-нибудь более осмысленное... но количество сигналов - не проблема имхо. Я читаю.

Перейти

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

Перейти
[Обсуждение] Нейросетевые дела Опубликовано (изменено)
13 часов назад, usver73 сказал:

На чем пишете сети? MQL или сторонние языки?

Сеть делается в софте NeuroSolutions 6 или 5. 

Он дает возможность сохранить dll с сетью. 

Далее dll в MT4.  

MT5 не поддерживает их dll. Может я не разобрался, было бы здорово закинуть в MT5.

Также NeuroSolutions создает исходный код сети в С++ .

Но это для меня совсем дебри. 

 

 

 

 

Изменено пользователем asbets
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано

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

Отличный пример - Top Master на маркете.

Прекрасно тестится, но нихрена не работает.

Тем не менее, я бы пообщался на заданную тему. 

Делитесь, что у вас есть, я с удовольствием помогу, может получиться интересно.

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано (изменено)

Итак, поехали. 
Начну тут накидывать  информацию, а дальше видно будет. 

 

Вводные  статьи по сетям доступным языком. 
А то бывают напишут, не разберёшь :
Часть 1
https://habr.com/ru/post/312450/
Часть 2
https://habr.com/ru/post/313216/
Еще простыми словами
https://habr.com/ru/post/369349/


NeuroSolutions
Статья по подключению. 

https://www.mql5.com/ru/articles/236

 

Изменено пользователем asbets
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано

Работать с закрытой системой в конечном итоге сведётся к поиску предикторов, т.е. эксперименты с разными видами МО исключен.

 

Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано
52 минуты назад, Rigal сказал:

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

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

@karuzzo когда то достиг неплохих результатов, работает не плохо, но опять же только в тестере, но реализация на С#, он более дружелюбный к ИИ.

 

Одна из тема автора : https://tlap.com/forum/laboratoriya-profitfx/24/windows-app-price-prediction/19323/

Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано (изменено)

Общая схема разработки выглядит примерно так; 

425495374_.thumb.jpg.e25e5009827eaf16c66b24640a833d50.jpg

Идея с "наложением" на 1 сеть еще одной оказалась вполне рабочей. 

 

Пример : делал сеть, которая определяет развороты по Зигзагу.

Ну т.е. "скормил" её Зигзаг.

Но сеть выдавала очень много "шума" .

В том смысле, что она рисовала развороты очень часто. 

Потом сделал еще одну сеть, которой отдал данные от первой. 

И в вроде как стало приемлемо .

 

P.S. На сегодня пока всё, завтра проект начну выкладывать.

 

Изменено пользователем asbets
дополнение
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано
1 час назад, ademen сказал:

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

@karuzzo когда то достиг неплохих результатов, работает не плохо, но опять же только в тестере, но реализация на С#, он более дружелюбный к ИИ.

 

Одна из тема автора : https://tlap.com/forum/laboratoriya-profitfx/24/windows-app-price-prediction/19323/

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

несколько видосиков и сборная солянка статистики, в компании с ручным тестированием.

 

@asbets, давайте для начала попробуем использовать сетку для фильтрации сигналов уже существующий стратегий, например?

У меня есть пара десятков написанных советников, некоторые очень бы выиграли от подобного фильтра.

Я как раз собирался выложить один из них на форум на днях, пробойник Conundrum

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

И потом накидаю свои мысли.

  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано (изменено)
1 час назад, Rigal сказал:

 

@asbets, давайте для начала попробуем использовать сетку для фильтрации сигналов уже существующий стратегий, например?

 

Да, легко.

Один только нюанс. Сетке для обучения надо хотя бы 2000 сигналов. :-)

При наличии 100-200 просто не на чем учить.

Не всякая стратегия потянет :-)

Хотя сигналы можно собрать с разных валютных пар.  

Изменено пользователем asbets
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано
4 часа назад, asbets сказал:

Да, легко.

Один только нюанс. Сетке для обучения надо хотя бы 2000 сигналов. :-)

При наличии 100-200 просто не на чем учить.

Не всякая стратегия потянет :-)

Хотя сигналы можно собрать с разных валютных пар.  

О, вы меня плохо знаете

image.thumb.png.74094f1b5ece03551135b80b26d0e5e9.png

Это пока 5 месяцев.

Фильтровать, конечно, будем не этого мартина, а что-нибудь более осмысленное... но количество сигналов - не проблема имхо.

Я читаю.

  • Лайк 3
  • Огонь! 1
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано

 

2 часа назад, Rigal сказал:

Фильтровать, конечно, будем не этого мартина, а что-нибудь более осмысленное... но количество сигналов - не проблема имхо.

Да, спасибо на этом :-) . С случайными сетками не имеет смысла искать черную кошку в тёмной комнате, которой там нет.

 

Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано
3 часа назад, Rigal сказал:

будем не этого мартина,

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

Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано (изменено)

Дополнение по NeuroSolutions :

Некоторые выявленные глюки

 

- В начальной статье по знакомству с программой автор использует "экcперта" по построению сети. 

Это для знакомства только. Эксперт часто не может создает сеть, зависает. Я использую только "Билдер". 

 

- 6 версия на одном из компов внезапно перестала работать.Что-то 

там с регистрацией. Запустить в работу не удалось. WIN10 только не переставлял. Видимо, можно решить 

перестановкой винды, но я не делал. 

 

- Может не подключится новая сеть DLL в MT4. Вдруг ни с того ни с сего. 

Помню, бился несколько дней, не хочет и всё тут. Пока сеть не изменил.

Проблема была именно в самой DLL. 

 

- 5 версия слегка отличается форматом файла входных данных . В целом

математика сети там такая же. 5 версия не может создать достаточно 

крупные сети, зависает. Возможно, банально не хватает 

вычислительных мощностей. 

Их тут с работой НС катастрофически не хватает. 

 

Изменено пользователем asbets
ошибки
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано (изменено)

Проект на нейросети. «Следующий день».

 

Идея :  Прогнозируем High Low следующего дня.

Берутся свечи H4 прошедших 3 дня = 18 свечей.

 С них данные только High и Low, т.к. по сути нас не интересует

Переход Close=Open где-то там внутри 4H .

Мы смотрим общее колебания рынка в разрезе последних 18 свечей.

Сеть прогнозирует High Low следующего дня.

Всё просто, но пара нюансов.

 

Вопрос : почему бы не взять тупо 10 дней и неспрогнозировать 11-й ?

Я так делал. Дело в погрешности.

Любая НС имеет погрешности. В среднем у меня получается где-то 11-13%.

На 10 днях, условно, имеем диапазон хождения цены 600 п. = 65 пунктов погрешности вы среднем сеть выдаст.

Согласитесь 65 пунктов погрешности при 600  - это совсем неплохо! 

Волатильность на 10 днях  в любом случае  больше, чем на 3 днях.

Но брать 3 дня тоже нельзя, так как тут уже и данных то нет.Что такое 3 дня?

Поэтому пришла мысль взять разрез 3-й дня в 4H.

 

В НС есть ограничение – данные должны быть в нормализованном формате. т.е. от 0 до 1.

Это нормально для диапазона – 0 = LOW всего диапазона 18 свечей 4H, 1 = Hihg.

Но поскольку хай-лоу желаемого дня еще нет, подогнать их под нормализацию невозвожно.

Поэтому тут возникло ограничение и идея такая .

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

0 соответсвенно при Лоу.

Получилось, что до конца, какой лоу или хай будет в проекте не узнаем. Будем знать только,  что

Если сеть ответила 1 или близко – это вероятность пробоя диапазона, а не цена Хая дня.

 

- Какого типа сеть выбрать ?  В данном случае мы имеем случай апроксимации.

Провел кучу экспериментов по разным сетям, в итоге больше склонен к  Рекурентой сети.

Самоорганизующая сеть (SOFM) дает практически похожий результат по погрешности,

Обучается намного быстрее, Рекурентная в этом плане самая медленная. Но вот что есть , то есть.

- Какого размера сеть?  Тут выбор тоже идет эмпирическим методом .

С одной стороны сеть должна быть достаточно большой с достаточными слоями, чтобы

суметь выйти на минимальные погрешности на форвард тестах. У малой сети тупо «не хватит нейронов». С другой стороны слишком большая тоже не нужна.

Получилась сеть  Recurrent , 5 скрытых слоёв по количеству элементов :   72 / 54 / 36 / 36 / 18.

На выходе желаемых результатов у неё 2 поля – High и Low желаемого дня.

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

...

Изменено пользователем asbets
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано
2 часа назад, asbets сказал:

Проект на нейросети. «Следующий день».

 

Идея :  Прогнозируем High Low следующего дня.

Берутся свечи H4 прошедших 3 дня = 18 свечей.

 С них данные только High и Low, т.к. по сути нас не интересует

Переход Close=Open где-то там внутри 4H .

Мы смотрим общее колебания рынка в разрезе последних 18 свечей.

Сеть прогнозирует High Low следующего дня.

Всё просто, но пара нюансов.

 

Вопрос : почему бы не взять тупо 10 дней и неспрогнозировать 11-й ?

Я так делал. Дело в погрешности.

Любая НС имеет погрешности. В среднем у меня получается где-то 11-13%.

На 10 днях, условно, имеем 600 п. = 65 пунктов погрешности вы среднем сеть выдаст.

Согласитесь 65 пунктов погрешности при 600  - это совсем неплохо! 

Волатильность на 10 днях  в любом случае  больше, чем на 3 днях.

Но брать 3 дня тоже нельзя, так как тут уже и данных то нет.Что такое 3 дня?

Поэтому пришла мысль взять разрез 3-й дня в 4H.

 

В НС есть ограничение – данные должны быть в нормализованном формате. т.е. от 0 до 1.

Это нормально для диапазона – 0 = LOW всего диапазона 18 свечей 4H, 1 = Hihg.

Но поскольку хай-лоу желаемого дня еще нет, подогнать их под нормализацию невозвожно.

Поэтому тут возникло ограничение и идея такая .

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

0 соответсвенно при Лоу.

Получилось, что до конца, какой лоу или хай будет в проекте не узнаем. Будем знать только,  что

Если сеть ответила 1 или близко – это вероятность пробоя диапазона, а не цена Хая дня.

 

- Какого типа сеть выбрать ?  В данном случае мы имеем случай апроксимации.

Провел кучу экспериментов по разным сетям, в итоге больше склонен к  Рекурентой сети.

Самоорганизующая сеть (SOFM) дает практически похожий результат по погрешности,

Обучается намного быстрее, Рекурентная в этом плане самая медленная. Но вот что есть , то есть.

- Какого размера сеть?  Тут выбор тоже идет эмпирическим методом .

С одной стороны сеть должна быть достаточно большой с достаточными слоями, чтобы

суметь выйти на минимальные погрешности на форвард тестах. У малой сети тупо «не хватит нейронов». С другой стороны слишком большая тоже не нужна.

Получилась сеть  Recurrent , 5 скрытых слоёв по количеству элементов :   72 / 54 / 36 / 36 / 18.

На выходе желаемых результатов у неё 2 поля – High и Low желаемого дня.

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

...

Я вычитал и знакомлюсь с NeuroSolutions. 

И одновременно кручу в голове варианты использования.

На вход обязательно подавать классифицированное время: если мы работаем с дневками, то это день недели, возможно, месяц и день этого месяца (хотя выборка сузится) - это важный элемент в поиске закономерностей. Если мы работаем на H4 и ниже, то, скажем, GMT час. И день недели имхо все еще релевантен - разные закономерности в разные дни.

Я немножко освоюсь и буду вчитываться в детали выше.

 

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано

Я конечно не прогер, но за все годы ни одной прибыльной совы на нейронке не встречал. 

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано
17 минут назад, pavlus777 сказал:

Я конечно не прогер, но за все годы ни одной прибыльной совы на нейронке не встречал. 

Соглашусь с вами. И в подтверждение приведу пример советника "дуй в винчик", адепты которого свято верят, что это нейросеть и ИИ.

 

И выскажу надежду и уверенность, что общими силами форумчан удастся создать годный продукт. Благо созданию годноты уже есть масса примеров.

Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано
3 часа назад, pavlus777 сказал:

Я конечно не прогер, но за все годы ни одной прибыльной совы на нейронке не встречал. 

"Следующий день". который сейчас начал выкладывать - это не автомат. 

Эта штука показывает границы будущего дня, как он его "видит".

А уж что трейдер решит - это ему решать. 

Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано
3 часа назад, Rigal сказал:

На вход обязательно подавать классифицированное время: если мы работаем с дневками, то это день недели, возможно, месяц и день этого месяца (хотя выборка сузится) - это важный элемент в поиске закономерностей. Если мы работаем на H4 и ниже, то, скажем, GMT час. И день недели имхо все еще релевантен - разные закономерности в разные дни.

Я немножко освоюсь и буду вчитываться в детали выше.

 

1. Да. Точно. Спасибо за идею. Надо брать в работу даже не тестируя на пригодность (влияет - не влияет). Подтверждено статистикой "алгоритмов" EZ Анализере.

2. А здесь тогда надо проводить какой нибудь тест на какой нибудь сове - влияет / не влияет. Но тоже надо записывать в варианты.

Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано (изменено)

NextDay.zipФайлы проекта «Следующий День» и инструкция : 

1.    NextDay.zip : Сама сеть. Открывается в Нейросолюшн. На текущий момент . Обучена на 
 EURUSD c 6.01.2014 - 28.06.2019  и такой же диапазон для EURGBP. 

Так же там файлы : dll в папке «dll» для интеграции в MQL. Проверено – подключается. Там же файл NextDay5.nsw  - это и есть данные обучение сети. Он работает в паре с dll , также складывается в папку эксперта вместе с длл

2.    NextDay.mq4  . Сам советник, который рисует на экран прямоугольники, которые означают прогноз  дня. Подробно ниже. 

3.    Скрипт ND_Export-NS5_2V.mq4   .  Экспортирует данные для обучения и теста сети.

4.    Скрипт RandomStrings.mq4    . Нужен для перемешивание строк в файле с данными обучения сети , чтобы перемешать данные.

5.    Форвард_Рез.xlsx – файлик форвард теста на данных от 07.07.2019 до 09.09.2020. EUR.  Тест показал 12,04% погрешности.

Другими словами, советник прогнозирует Хай Лоу с точностью где-то 85%. Но есть нюанс . О нём ниже.


Описание советника NextDay.mq4 : рисует на экране прогноз дня  - т.е. рисует впереди текущей цены. В виде квадрата, у которого – верх – это прогноз,   предполагаемый Хай дня, соответственно низ квадрата – это зона Лоу. 

 

Три простых параметра : 
1.    Стартовая дата, откуда начать рисовать квадраты.
2.    Конечная дата. Если  с утра задать на сегодняшнюю дату – то как раз и нарисует прогноз на этот день.
3.    Путь к файлу «NextDay5.nsw»  , где искать данные сети.452977139_.thumb.jpg.d50810591471c4f27c15686ef40b51d4.jpg

 

ND_Export-NS5_2V.mq4 RandomStrings.mq4 NextDay.mq4 NextDay5.nsw NextDay5.dll

Изменено пользователем asbets
дополнение
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано (изменено)

Пробовал работать с любыми мажорами, кроме японской йены. 

Немного растёт погрешность, но приемлемо.

 

AUD.jpg

 

Евро сегодня прогноз: 

 

 

1689997800_EU.jpg.250264dd2da8c251ce3ddf68021ca752.jpg

Изменено пользователем asbets
дополнение
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано

Хорошая тема, имеет место быть, сейчас тоже начну изучать материалы и постараюсь Вам помочь 🙂

Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано

Внесу немного скептицизма в тред.

Довольно плотно в одно время занимался подобными советниками. Писал однослойные, многослойные перцептроны, всё писал на mql4/5. Лично у меня в конечном итоге всё свелось к тому же самому, что и происходит в обычных советниках, т.е. в переоптимизации параметров, либо это было до обучение самой нейросетки на вход/выход, либо параметров тейка/стопа/трала/бу, фильтров. Иными словами различия между обычными советниками размылись об оптимизацию. Плюс довольно сложно оценить преимущество, т.к. 100% входов нейросетка не даст в любом виде, а всё, что ниже вместе с тем, что системности в формировании результата нейросети нет, ставит её в раздел "монетки", т.е. в какой-то мере хуже любого другого системного подхода, который на истории можно визуально оценить и автоматизировать.

 

Но тема конечно эта интересная.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

[Обсуждение] Нейросетевые дела Опубликовано

1. Исправил багу в скрипте по рандомизации. Он смешивал и 1 строку с заголовком, приходилось руками возращать на место.

 

А по 2- му вопросу коллеги, нужна помощь по программированию.  

Там бага самого MQL с функцией   iBarShift . Как то решить/обойти. 

 

2. В советнике NextDay строка есть: 

_barD=iBarShift(NULL,PERIOD_D1,iTime(NULL,PERIOD_H4,i) ,true);

т.е. ищется бар D1 по времени.

Выдает ошибку , если нужен бар текущий дня.

Я так понял, проблема в том, что если не открыть с утра  график с D1 в памяти массива D1 его нет. 

То MQL выдает "бар не найден". Если открыть график D1 и закрыть, ТО ВСЁ РАБОТАЕТ.  

 

Как решить вопрос? 

 

 

RandomStrings.mq4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • Pavel888 changed the title to [Обсуждение] Нейросетевые дела

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...