У меня не получается запустить модель на обучение. Файл Study пишет ошибки:
Подумал, что может быть сразу нужно запустить файл StudyStateEncoder, но опять ошибки:
Модель учится только с помощью видеокарты, а на CPU?
Если не сложно, можно сделать инструкцию, что в каком порядке запускать. А еще лучше простой пример скрипта для создания и обучения модели на синтетических данных, как в scikit. Мне, например, интересно именно на синтетике посмотреть модель, сравнить ее с базовым mlp и т.д.
Дмитрий, здравствуйте!
Ошибка возникает уже на стадии создания энкодера в функции StateEncoder.Create(encoder) - строка 44 файла StudyStateEncoder.mq5 глубже тпока не смотрел.
С уважением,
Андрей
Дмитрий, здравствуйте!
Ошибка возникает уже на стадии создания энкодера в функции StateEncoder.Create(encoder) - строка 44 файла StudyStateEncoder.mq5 глубже тпока не смотрел.
С уважением,
Андрей
Попросил AI Assistant райти и исправить проблему. Вот результат:
Таблица изменений
Единственное различие между версиями — блок определения константы StackSize .
| Строка (база) | Строка (изм.) | Было (базовая версия) | Стало (изменённая версия) |
|---|---|---|---|
| 64 ( #define Quantiles 8 ниже) | 64 | #define StackSize 24*NScenarios | #define StackSize (24*NScenarios < 10*Quantiles ? 10*Quantiles : 24*NScenarios) //AIAssistant_VLADriverRAG_Modification_17082026 |
| — | 65 (новая) | (отсутствовала) | /*AIAssistant_VLADriverRAG_Modification_17082026: old variant |
| — | 66 (новая) | (отсутствовала) | #define StackSize 24*NScenarios (старый вариант, закомментирован) |
| — | 67 (новая) | (отсутствовала) | */ |
Пояснение изменения
В изменённой версии (от 17.08.2026) строка определения StackSize была заменена с простого
на условное выражение с защитой от переполнения/слишком малого размера:
#define StackSize (24*NScenarios < 10*Quantiles ? 10*Quantiles : 24*NScenarios)
Смысл: теперь берётся максимальное из значений 24*NScenarios и 10*Quantiles . Поскольку NScenarios = 3 и Quantiles = 8 :
- 24*NScenarios = 24*3 = 72
- 10*Quantiles = 10*8 = 80
Так как 72 < 80 , новое значение StackSize = 80 (вместо прежнего 72 ). Это изменение с пометкой AIAssistant_VLADriverRAG_Modification_17082026 (дата правки 17.08.2026). Старый вариант сохранён в комментарии для справки.
Попросил AI Assistant райти и исправить проблему. Вот результат:
Таблица изменений
Единственное различие между версиями — блок определения константы StackSize .
| Строка (база) | Строка (изм.) | Было (базовая версия) | Стало (изменённая версия) |
|---|---|---|---|
| 64 ( #define Quantiles 8 ниже) | 64 | #define StackSize 24*NScenarios | #define StackSize (24*NScenarios < 10*Quantiles ? 10*Quantiles : 24*NScenarios) //AIAssistant_VLADriverRAG_Modification_17082026 |
| — | 65 (новая) | (отсутствовала) | /*AIAssistant_VLADriverRAG_Modification_17082026: old variant |
| — | 66 (новая) | (отсутствовала) | #define StackSize 24*NScenarios (старый вариант, закомментирован) |
| — | 67 (новая) | (отсутствовала) | */ |
Пояснение изменения
В изменённой версии (от 17.08.2026) строка определения StackSize была заменена с простого
на условное выражение с защитой от переполнения/слишком малого размера:
Смысл: теперь берётся максимальное из значений 24*NScenarios и 10*Quantiles . Поскольку NScenarios = 3 и Quantiles = 8 :
- 24*NScenarios = 24*3 = 72
- 10*Quantiles = 10*8 = 80
Так как 72 < 80 , новое значение StackSize = 80 (вместо прежнего 72 ). Это изменение с пометкой AIAssistant_VLADriverRAG_Modification_17082026 (дата правки 17.08.2026). Старый вариант сохранён в комментарии для справки.
Дмитрий, здравствуйте!
Ошибка возникает уже на стадии создания энкодера в функции StateEncoder.Create(encoder) - строка 44 файла StudyStateEncoder.mq5 глубже тпока не смотрел.
С уважением,
Андрей
Добрый день,
Файлы в статье и проекте NN_in_Trading - MQL5 Algo Forge обновлены.
С уважением,
Дмитрий.
- dng
- forge.mql5.io
Дмитрий, приветствую!
У меня не получается запустить модель на обучение. Файл Study пишет ошибки:
Подумал, что может быть сразу нужно запустить файл StudyStateEncoder, но опять ошибки:
Модель учится только с помощью видеокарты, а на CPU?
Если не сложно, можно сделать инструкцию, что в каком порядке запускать. А еще лучше простой пример скрипта для создания и обучения модели на синтетических данных, как в scikit. Мне, например, интересно именно на синтетике посмотреть модель, сравнить ее с базовым mlp и т.д.
Добрый день, Евгений.
Данная модель работает только на OpenCL. Ошибка "OpenCL not found, error code=4014" не позволит работать приложенным файлам.
С уважением,
Дмитрий.
Добрый день,
Файлы в статье и проекте NN_in_Trading - MQL5 Algo Forge обновлены.
С уважением,
Дмитрий.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Нейросети в трейдинге: Долговременная память торговых сценариев (Окончание):
В статье отдельные компоненты VLADriver-RAG объединяются в единую торговую систему с долговременной памятью завершённых сценариев. Показана последовательность подготовки рыночного представления, обучения Актёра и Критика, формирования базовой памяти и последующей адаптации модели с использованием найденного опыта. Практическая часть позволяет проследить весь цикл до проверки полученной системы на EURUSD H1 вне обучающей выборки.
В предыдущих статьях мы по частям собрали долговременную память для торговой модели. Сначала научились сохранять завершённый сценарий вместе с фактически выполненным действием и результатом. Затем организовали двухуровневое хранилище и поиск похожего опыта. После этого подключили найденные сценарии к MPI-политике, чтобы память могла корректировать предпочтения Актёра, но не подменяла оценку текущего рынка.
Теперь задача меняется. Отдельные классы уже работают, но трейдеру этого мало. Нужна законченная система, которую можно обучить, запустить в тестере и получить обычный торговый отчёт: сделки, прибыль, просадку и кривую баланса. На этом этапе особенно важно правильно состыковать предыдущие решения. Если энкодер, Актёр и модуль памяти работают в разных пространствах признаков, поиск теряет смысл. Если в память записывать каждое намерение модели, она быстро превращается в архив несостоявшихся решений.
Поэтому здесь рассматривается не добавление новых нейронных блоков, а согласование уже построенных компонентов. Сначала соберём полную модель VLADriver-RAG и проследим фактические потоки данных. Затем разберём порядок обучения: сначала формируется устойчивое представление рынка, потом в этом пространстве обучается торговая политика и строится Base Memory, и только после этого система переходит к последовательной адаптации.
Автор: Dmitriy Gizlyk