Советники: Примеры из книги "Нейросети в алготрейдинге на MQL5" - страница 3

 

Спасибо Дмитрию за все ваши усилия по созданию этой книги. Она действительно полезна.

В файле neuronbase.mqh вы реализуете метод ElasticNet Regularization следующим образом без объяснения в вашей книге.

m_cWeights.m_mMatrix -= m_cWeights.m_mMatrix * Lambda[1] + Lambda[0]

Но это отличается от базовой формулы (+) или, например, от исходного кода Keras (+).

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

Dmitriy Gizlyk
Dmitriy Gizlyk
  • 2024.07.15
  • www.mql5.com
Trader's profile
 

Из какого скрипта мне генерировать этот study_data_not_norm.csv? Я пробовал создать скрипт create_initial data, но он не сработал. При запуске скрипта gpt_test_not_norm.mq5 я получил выход за пределы диапазона.



 

Уважаемые администраторы,

Большое спасибо за возможность обучаться в такой уникальной области!

 

Все же хочу вернуться к предыдущим постам касательно ошибки 5008.


У меня также не получилось загрузить тестер стратегий для обученной модели gpt_not_norm.net c ошибкой 5008, не загружается файл модели.

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

Файл модели, как и положено, лежит в директории согласно флагу True для Common \Terminal\Common\Files.

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

 

Может быть, это какие-то настройки системы мешают работать тестеру стратегий?

 

1.Тестер стратегии не работает на компе с

Процессором Intel Core i5-9400F 2.90GHz, 16295 MB

Windows 10 домашняя.

 

2. Тестер стратегии работает на ноутбуке с

Процессором Intel Core i7-2760QM  2.40GHz, 12238 MB

Windows 10 Pro.

 

Помогите пожалуйста решить эту проблему.

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

 
Vrajeshbhai тестер останавливается, показывая сообщение "Tester stopped because OnInit returns non-zero code 1" Please update it So everyone can test it and understand it what is exactly doing.
у нас та же проблема
 
Luiz Godoy #:
При запуске скрипта gpt_test_not_norm.mq5 я получил выход за пределы диапазона.

В 40-й строчке программы:

if(!loss_history.Resize(0,Epochs))

Меняем на:

if(!loss_history.Resize(Epochs))

 

Привет. Написано много, получилась книга. Начал читать, думал, щас как запилю ченидь для маркета.

Это хороший труд. Потому что больше нет ничего настолько универсального, что объяснило бы, как подойти к машинному обучению средствами mql5.

Однако...

Выборка делится на 3 части - 60% обучение, 20% валидация и 20% тест. Из 40 баров каждой цепочки баров повторяется 35. Мораль - вы обучаете и проверяете, используя одни и те же данные. Я нарисовал картинку. Это не только беда этой книги, я встречаю это снова и снова. 

Сначала я подумал, что индикатор Зигзаг - это то самое, что позволяет выделить неповторяющиеся движения. Типа от вершины к впадине, от впадины к вершине. Это были бы уникальные паттерны, как это названо в книге. Но нет, автор строит паттерны побарно, и в этом конечно грубейшая ошибка. И Зигзаг для этого не нужен. Можно просто смотреть вперед на 10 баров и считать, куда пошел рынок.

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

В mql5 нет примеров обучения с валидацией. Я пока не нашел примеров с валидацией. Потом допишу есливче. Конечно, надо пробовать делать самому. Конечно, надо. Работы много, чтобы подготовить историю и подобрать параметры обучения. Вот и в Тензорфлоу вроде все есть, а сколько всего нужно делать. А здесь получается, что и техническая часть не доделана.

Это те самые 95%, которые без 5% теряют ценность?

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


 
Сколько я ни пробовал, историю нельзя выбрать по датам, если между датами больше 1 года. Иногда пролезает 2 года. Но если график пустой, и ты в пустой график заряжаешь, то сразу только 1 год. Чтобы надежно собрать данные за любой период, нужен "холостой" тест в тестере стратегий от одной даты к другой. Тогда сколько угодно лет, и в файл.

Разве метод оптимизации Adam не корректирует learning_rate исходя из скорости обучения? Там еще используется "потолок", а не постоянное значение.

Если делать рекуррентную сеть, зачем добавлять скрытые полносвязные слои? Полносвязная тема уничтожает тему lstm. Конечно, в конце сети нужен 1 полносвязный нейрончик для активации.

Dropout - это свойство слоя в любой нейронной сети. Например, в lstm свойство dropout обязательно должно быть, иначе привыкает к данным за несколько эпох. Я знаю, что в pytorch свойство dropout можно использовать только в переходе между двумя одинаковыми слоями, таким образом нужно 2 рекуррентных слоя. А в tensorflow любой слой может иметь dropout. Очевидное преимущество tensorflow перед pytorch.

Пакетная обработка в обратном распространении. Почему у автора пакет - это любое число?! Получается, что в каждую эпоху он выбирает случайное количество данных для обучения. Пакет - это количество! Например, выборка 1000 элементов, и это 10 пакетов по 100 значений. Каждая эпоха - это разные пакеты, но значений там всегда по 100. Я провожу обучение попакетно, и в конце каждого пакета корректирую веса. Это может гарантировать, что я не застряну в локальном минимуме. И я использую все данные выборки, а не какие-нибудь.
 

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

На мой взгляд, неправильно использовать графический стимулятор для форекса. Как ни крути, данных не много. Правильнее, на мой взгляд, было бы использовать агентов метатрейдера в оптимизаторе, чтобы запускать разные потоки обучения разных сетей. Например, в тензорфлоу я обучаю 7 потоков. Один закончился, добавился другой. И так по порядку 100 вариантов. Потом по ним прогон на истории.

Тут тема в том, что нейронная сеть может и хорошая. Но не любая нейронная сеть способна пройти свою историю обучения. Поэтому нужно много вариантов сетей.

 

ChatGPT подсказывает, что для классификации между двумя лучше всего использовать сигмоид. И его-то как раз я не нашел. А еще функции активации разные. Но функция потери одна и та же - MSE?

Тангенс все равно это не классификация, а регрессия. От -1 до 1 это не вероятность, а расчет значения.

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

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