Neural Transformer
- Эксперты
- Evgeniy Scherbina
- Версия: 1.0
- Активации: 10
Советник Neural Transformer - это полностью автоматическая стратегия, которая готова для торговли на дневном таймфрейме 2 символов: GBPUSD и USDCAD.
Помимо этого, вы можете самостоятельно выполнить обучение нейронной сети для любого таймфрейма любого символа. Советник автоматически применяет файлы нейронной сети, сохраненные после обучения.
Благодаря советнику Neural Transformer обучение нейронных сетей для Форекса становится простым и увлекательным занятием! В настоящее время я предлагаю один вариант сети - LSTM. Это наиболее популярный вариант нейронной сети для классификации и прогнозирования таймсерий. В ближайшее время я планирую добавить другие варианты, а именно Multi Head Attention (многоголовое внимание) и ATFnet (самый современный и неоднозначный вариант на основе преобразования Фурье и комплексных чисел).
Торговля
По умолчанию советник готов для торговли на дневном таймфрейме 2 символов: GBPUSD и USDCAD. Если вы выполнили другое обучение, запустите советник со свойством Action = Trade (действие = торговля).
Обучение (см. рисунки)
Пример для EURUSD, дневной таймфрейм
1) Сбор данных выполняется в Тестере стратегий
В свойствах Тестера стратегий выберите:
Советник: Neural Transformer
Символ: EURUSD
Интервал: 2004.01.01 - 2024.04.01
Моделирование: Только цены открытия
В свойствах советника выберите:
Action = Collect_data
Timeframe = D1
Number of bars = 30
Number of forecast bars = 20
Другие свойства не имеют значения для сбора данных. Свойство "Только цены открытия" позволяет собирать данные за секунды. Другие значения этого свойства не улучшают данные, но значительно увеличивают время выполнения.
Нажмите кнопку "Старт" в Тестере стратегий, чтобы собрать данные.
Через несколько секунд в журнале Тестера стратегий появится 2 записи. Training complete EURUSD D1 LSTM | patterns 5261 - "Обучение выполнено EURUSD D1 LSTM | паттернов 5261" и Collect_data file saved to ... - "Файл сбора данных сохранен в ..."
Вы можете открыть файл данных и просмотреть его по указанному пути.
2) Обучение выполняется в Тестере стратегий
В свойствах советника выберите:Action = Train
Timeframe = D1
Number of bars = 30
Epochs = 1000
Number of LSTM layers = One
Number of Dense layers = One
Learning rate = 0. 01
Decay for Learning rate = 0.1
Patience = 50
Neurons per layer = 32
Validation percent = 0.2
Другие свойства советника не имеют значения для обучения.
Нажмите кнопку "Старт" в Тестере стратегий, чтобы запустить обучение.
Как правило, обучение выполняется несколько минут. В журнале Тестера стратегий появляются записи.
Epoch 10 >> time 0.48500 sec | loss 0.50258 | custom_err 0.99484 <> 1.00055 - "Эпоха 10 >> время 0,48500 сек | потеря 0,50258 | ошибка 0,99484 <> 0,99484"
New lr 0.00729 at epoch 138 - "Новая скорость обучения 0,00729 на эпохе 138"
Best configuration at epoch 422 >> training stopped - "Лучшая конфигурация на эпохе 422 >> обучение остановлено"
По окончании обучения там же, где сохранен файл сбора данных, появляются другие файлы обучения, которые можно просмотреть.
3) Проверка обучения в Тестере стратегий
В свойствах Тестера стратегий выберите:
Советник: Neural Transformer
Символ: EURUSD
Интервал: 2020.01.01 - 2024.09.10 (или текущая дата)
Моделирование: OHLC на М1
В свойствах советника выберите:
Action = Trade
Timeframe = D1
Forecast minimum = 0.5
Symbol point = 0.0001
Trading start hour = 4
Takeprofit = 400
Trail = 100
Volume = 0.01
Number of bars = 30
Другие свойства не имеют значения.
Нажмите кнопку "Старт". Советник выполнит обычное тестирование.
Внимание! Я не рекомендую выполнять оптимизацию с этим советником в Тестере стратегий. Советник загружает много сложных классов. Оптимизация с этим советником может привести к вылетанию МетаТрейдера. Если это произошло, просто перезапустите МетаТрейдер. Я работаю над тем, чтобы сделать работу оптимизации стабильной. Тестирование работает как обычно.
Свойства советника
Стандартные свойства
- Action >> действие. Доступно 3 действия: Trade (торговля), Collect_data (сбор данных) и Train (обучение).
- Network type >> тип нейронной сети. Сейчас доступен только один вариант - LSTM. Это наиболее популярный подход к обучению таймсерий. В ближайшее время я планирую также добавить другие варианты сетей - Multi Head Attention (многоголовое внимание) и ATFnet.
- Timeframe >> таймфрейм. По умолчанию используется дневной таймфрейм D1.
- Forecast minimum >> минимальный прогноз. Для обучения, которое вы выполните самостоятельно, это значение, выше которого срабатывает сигнал открытия сделки. Чем больше значение, тем меньше сделок.
- Symbol point >> пункты символа используются в расчетах движений цены. Например, для GBPUSD, EURUSD и большинства символов это 0.0001. USDJPY - 0.01; USDSEK и USDNOK - 0.001; XAUUSD - 0.2.
- Trading start hour >> час начала торговли. Новые сделки открываются после этого времени. Используется, чтобы пропускать ночные гэпы.
- Takeprofit >> тейкпрофит.
- Trail >> трейл.
- Stoploss >> стоплосс.
- Volume >> объем на одну сделку. Фиксированный объем (пример: 0.02) или процент от доступных средств (пример: 0.015%). Советник печатает реальный объем на вкладке "Советники" при запуске или смене таймфрейма. Всегда используйте фиксированный объем для счетов, которые использует не доллар США в качестве валюты депозита (то есть евро, юань, биткойн, австралийский доллар и т. д.).
Свойства обучения
- Number of bars >> количество баров, которые советник анализирует, чтобы принять решение.
- Number of forecast bars >> количество баров для прогноза. Советник смотрит "вперед" на это количество баров, чтобы определить, куда пойдет цена.
- Epochs >> максимальное количество эпох. Обучение нейронной сети выполняется по эпохам. Как правило, обучение останавливается задолго до этого значения.
- Number of LSTM layers >> количество слоев LSTM. В архитектуре нейронной сети LSTM используется для поиска информации обратной связи между барами. Полносвязный слой, который следует за LSTM, нужен для поиска зависимостей, общих для всех баров.
- Number of Dense layers >> количество полносвязных слоев.
- Learning rate >> скорость обучения. Значение влияет на расчет ошибки во время обучения. Большое значение - обучение происходит скачками и останавливается слишком быстро. Маленькое значение - обучение происходит медленно и может не достигнуть оптимального состояния.
- Decay for Learning rate >> затухание для скорости обучения. Если обучение не улучшается, это свойство уменьшает скорость обучения по формуле: lr = lr - lr*decay. Позволяет подтолкнуть обучение в нужном направлении.
- Patience >> количество эпох для "ожидания". Обучение выполняется по мере улучшения ошибки валидации. Советник продолжает обучение это количество эпох, ожидая, что улучшение еще возможно. Если улучшение не наступает, то будет сохранено лучшее состояние нейронной сети, достигнутое ранее.
- Neurons per layer >> количество нейронов на 1 слой. Чем больше нейронов, тем дольше обучение и тем быстрее привыкание к данным. Нужно найти оптимальное количество нейронов.
- Validation percent >> процент валидации. 0.2 означает 20%, 0.3 - 30% и т.д Вся выборка обучения делится на 2 части - обучение и валидация. Валидация должна быть меньше обучения.