Обсуждение статьи "Нейросети в трейдинге: Оптимизация LSTM для целей прогнозирования многомерных временных рядов (Окончание)"

 

Опубликована статья Нейросети в трейдинге: Оптимизация LSTM для целей прогнозирования многомерных временных рядов (Окончание):

Мы продолжаем реализацию фреймворка DA-CG-LSTM, который предлагает инновационные методы анализа и прогнозирования временных рядов. Использование CG-LSTM и двойного внимания позволяет более точно выявлять как долгосрочные, так и краткосрочные зависимости в данных, что особенно полезно для работы с финансовыми рынками.

Как уже отмечалось ранее, основу архитектуры фреймворка DA-CG-LSTM составляют два фундаментальных компонента: модули внимания и модифицированный рекуррентный блок CG-LSTM. Эти элементы формируют прочную конструкцию модели, обеспечивая ей необходимую гибкость, устойчивость к рыночным шумам и способность захватывать сложные многоуровневые временные зависимости. В условиях высокой волатильности и хаотичности финансовых рынков, такие качества становятся не просто желательными — они критически необходимы для построения надёжных торговых систем.

В практической части предыдущей статьи мы подробно разобрали процесс создания блока CG-LSTM средствами MQL5. Разработанный компонент успешно реализует три важнейших функции: фильтрацию признаков для устранения лишнего шума, эффективное управление внутренним состоянием модели для сохранения долгосрочной информации и агрегацию данных на разных временных уровнях. Способность блока к подавлению неструктурированного шума и удержанию устойчивой динамики обучения позволяет строить модели, которые не теряют качества прогнозов на длительных отрезках исторических данных.

Нейросети в трейдинге: Оптимизация LSTM для целей прогнозирования многомерных временных рядов (Окончание)

Автор: Dmitriy Gizlyk

 
Хочу поделиться опытом и эмоциями. Сначала отдельный благодырь и поклон автору. Еще месяц-другой назад я бы испугался подобной статьи. Подумал бы, что не потяну. Сегодня всё изменилось просто с ног на голову. Нейросети это магия нашего времени. Сам не могу поверить, но я сейчас сижу и собираю данные для обучения этой нейронки. Работает. Я просто скормил эти две статьи и оригинальный гайд ЧатГПТ o3, и она меня ведёт по курсу. А ещё у меня несколько лет лежала в долгом ящике одна идея индикатора, которую у меня получилось сформулировать только в экселе по причине не знания MQL. И вот за каких-то пару недель я реализовал её с помощью Грока и ЧатГПТ в MQL5. И она работает! И она торгует! А теперь ещё и к этому своему индикатору можно прикрутить эту волшебную нейронку напрямую. Короче, я переполнен эмоциями, насколько быстро открылись просто безграничные пути.
 
Кстати, когда гоняю Research с подключенными фермами, то фермы к сожалению выводят бинарник (DACGLSTM.bd) только локально. То есть этот файл никак не общий получается, а у каждого компа свой, локально. Нейронка мне тут подкидывает идею, но я не стал заморачиваться:

Как заставить все тест-агенты писать один .bd на сетевую шару — в 4 шага

  1. Общая папка

    • На «главном» ПК создайте D:\DACShare .

    • ПКМ → «Доступ» → «Расширенный» → общий ресурс DACGLSTM, права Чтение/Запись для Everyone.

    • Итоговый путь: \\MAINPC\DACGLSTM .

  2. Учётка для служб

    • compmgmt.msc → «Пользователи» → добавьте mqlagent (любой пароль).

    • В services.msc у каждой MetaQuotes Tester Agent … → вкладка «Вход в систему» → «Этот аккаунт» → MAINPC\mqlagent , введите пароль, перезапустите службу.

  3. Правка кода Research

    input string SharedRoot = "\\\\MAINPC\\DACGLSTM\\"; string FileName = SharedRoot + "trajectories"; int handle = FileOpen(FileName + ".bd", FILE_WRITE|FILE_BIN|FILE_SHARE); // вместо FILE_COMMON

    (та же замена для чтения). Скомпилируйте .ex5 и скопируйте всем агентам.

  4. Проверка
    Запустите оптимизацию; в логе каждого агента появится:
    Saved to: \\MAINPC\DACGLSTM\DACGLSTM.bd size=…
    Откройте шару — файл растёт после каждого прохода.

👉 Теперь все локальные и удалённые агенты пишут единый буфер данных, а Study.mq5 может учиться с любой машины, просто открывая тот же .bd

 

Не совсем понятно как обновляется DACGLSTM.bd

Я прогоняю Research на интервале 1 месяц. Оптимизация полная. Параметр оптимизации - Agent от 1 до 8. Потом следующий месяц... но нифига не дописывается файл. Вижу дата файла обновляется только с началом нового теста и всё, а размер тот же остаётся.

 
Vladimir Sanin #:

Не совсем понятно как обновляется DACGLSTM.bd

Я прогоняю Research на интервале 1 месяц. Оптимизация полная. Параметр оптимизации - Agent от 1 до 8. Потом следующий месяц... но нифига не дописывается файл. Вижу дата файла обновляется только с началом нового теста и всё, а размер тот же остаётся.

Подскажите размер Вашего файла DACGLSTM.bd и количество трейдов за месяц.

 
Andrey Yankin #:

Подскажите размер Вашего файла DACGLSTM.bd и количество трейдов за месяц.

Методом тыка и многочисленных попыток сейчас мне удалось накопить 800МБ траекторий. Пробовал различные периоды - 10 дней, месяц, 3-6-12 месяцев... После последнего прогона второго полугодия 2024 размер увеличился где-то с 200 до 800. После я запустил ещё второе полугодие 2023, но файл не изменился в размере. Сделок за пол года примерно 3000-3500 набирается, таймфрейм 15 минутный использую - все тики. На меньших таймфреймах просто очень долго процесс начинает затягиваться, я пока не готов ждать столько. Да, кстати, я  увеличил MaxReplayBuffer до 1000000, стояло 500.

 
Не понятно как запускать Study, на одиночном тестировании или в режиме оптимизации.
 
Vladimir Sanin #:
Study

Study просто ставите на график. После установки он читает файлы данных и затем начинает оптимизацию. На графике в левом верхнем углу выводит прогресс и результаты.

На 15 минутном таймфрейме 3000 сделок за пол года... Это получается почти на каждой второй свече открывается сделка и все в Sell. Убедиться в этом можно либо запустив одиночное тестирование с визуализацией либо установить на демо счете. Сделки открываются и на следующей свече закрываются.

 
Запустил Study на одиночном тесте. Iteration 100000 (по умолчанию), batch 128. Видюха Intel UHD Graphics 730. Интервал дат я так полагаю тут вообще не играет роли? Короче, запустилось, одно ядно и видео жарит, но даже проценты не бегут, просто busy. Не понятно сколько ждать. Пробую ещё на другом мощном компе с видюхой хорошей... 
 
Andrey Yankin #:

Study просто ставите на график. После установки он читает файлы данных и затем начинает оптимизацию. На графике в левом верхнем углу выводит прогресс и результаты.

На 15 минутном таймфрейме 3000 сделок за пол года... Это получается почти на каждой второй свече открывается сделка и все в Sell. Убедиться в этом можно либо запустив одиночное тестирование с визуализацией либо установить на демо счете. Сделки открываются и на следующей свече закрываются.

Так всё таки его надо и на график повесить, и тест запустить с оптимизацией? Речь ведь сейчас не о Online версии, верно? Непонятно, какой интервал дат брать для Study, любой? Запустил тест с визуализацией, вижу данные меняются слева сверху, но график стоит на месте. Проценты в данных увеличиваются потихоньку одновременно и одинаково, а сам график стоит на месте.


 
Vladimir Sanin #:
Study
Study только на график.