По сути, мы пытаемся создать структуру данных с 60 временными метками и 1 выходом, сначала мы очищаем данные с помощью isma (проверяя любые невозможные варианты), затем мы переходим к масштабированию функций, для чего мы импортируем скаляр min-max. из sklearn, затем мы переносим функции, масштабируя каждую из них до определенного диапазона, который мы устанавливаем от 0 до 1. Теперь мы возьмем данные с 1-го по 60-й день и сделаем прогноз на 61-й день, а затем мы возьмем данные со 2-го по 61-й день и сделаем прогноз на 62-й день, здесь мы запускаем цикл таким образом, чтобы переменная прошла от 60 до конца диапазона, затем мы добавляем ее в массив X_train , прогнозируемые данные на 61-й день и т. д. добавляются в другой массив, которым является Y_train. Наконец, после добавления мы изменяем данные.

Следующим шагом является извлечение функций. На этом этапе мы выбираем только те функции, которые будут переданы в нейронную сеть, функции, которые мы принимаем во внимание, — это максимумы, дата, объем и минимумы. Итак, теперь, подробно объясняя, мы сначала импортируем библиотеки и пакеты Keras для создания RNN. Теперь мы импортируем четыре разные библиотеки: последовательные, выпадающие, lstm и плотные. Теперь мы переходим к согласованию RNN, здесь мы используем модель регрессии, где мы считываем последовательные данные и приписываем их регрессору. Переходя к следующим шагам, нейронная сеть должна быть обучена. Эта модель lstm имеет последовательный входной слой, три слоя lstm, плотный слой с активацией и выходной плотный слой с линейной функцией активации. Объясняя далее, во-первых, у нас есть входной (входной формы) слой и отсев, затем мы есть группа слоев (3 слоя), тогда выходной слой с единицами равен единице, так как нам нужен только один выход. После этого мы компилируем RNN, для чего нам нужно скомпилировать дефицитную модель и так использовать оптимизатор. Зная, что тип используемого оптимизатора оказывает значительное влияние на скорость/скорость, с которой алгоритм сходится к минимальному значению, а также на требование понятия рандомизации, чтобы мы не попали в ловушку локального минимума и, таким образом, потерпели неудачу достичь глобального минимума. Доступно несколько вариантов, но мы выбираем оптимизатор Adam (Adaptive Movement Estimation), так как он сочетает в себе преимущества оптимизаторов ADAgrad и RMSprop. Адам отвечает за расчет скорости адаптивного обучения для каждого параметра на основе его предыдущих градиентов. Наконец, мы создаем результаты и делаем прогнозы.

ИИ для трейдинга