Discussion de l'article "Comment utiliser les modèles ONNX dans MQL5" - page 3

 

Revues sur les applications (objets, modèles et outils)

1. étude sur l'application de l'apprentissage profond au trading algorithmique (2021)

Le trading algorithmique est l'un des domaines les plus concernés par les applications financières.

Par rapport aux stratégies de négociation traditionnelles, les applications de négociation algorithmique effectuent des prévisions et des arbitrages avec une plus grande efficacité et des performances plus stables.

De nombreuses études sur les modèles de trading algorithmique utilisant l'apprentissage profond ont été menées pour effectuer des prévisions et des analyses de trading.

Dans cet article, nous résumons tout d'abord plusieurs méthodes d'apprentissage profond qui ont montré de bonnes performances dans les applications de trading algorithmique, et nous présentons brièvement certaines applications de l'apprentissage profond dans le trading algorithmique.

Nous essayons ensuite de fournir la dernière application instantanée pour le trading algorithmique basée sur la technologie de l'apprentissage profond, et nous montrons les différentes implémentations du modèle de trading algorithmique développé.

Enfin, nous suggérons quelques pistes de recherche pour l'avenir.

Les principaux objectifs de ce document sont de fournir un état d'avancement complet de la recherche sur les applications de l'apprentissage profond dans le trading algorithmique, et de profiter à la recherche ultérieure sur les systèmes de trading programmés par ordinateur.


2) L'apprentissage profond pour les applications financières : une étude (2020)

L'intelligence informatique dans la finance a été un sujet très populaire à la fois dans le monde universitaire et dans l'industrie financière au cours des dernières décennies.

De nombreuses études ont été publiées et ont abouti à divers modèles. Parallèlement, dans le domaine de l'apprentissage machine (ML), l'apprentissage profond (DL) a commencé à faire l'objet d'une grande attention récemment, principalement en raison de ses performances supérieures à celles des modèles classiques.

Il existe aujourd'hui un grand nombre d'implémentations différentes de l'apprentissage profond, et l'intérêt qu'il suscite ne se dément pas. La finance est un domaine particulier où les modèles d'apprentissage profond ont commencé à attirer l'attention, mais le champ de jeu est encore très ouvert et il existe encore de nombreuses possibilités de recherche.

Dans ce document, nous avons essayé de fournir un aperçu de l'état de l'art des modèles de DL développés pour les applications financières, à ce jour.

Nous avons non seulement classé les travaux en fonction du sous-domaine financier auquel ils étaient destinés, mais nous les avons également analysés sur la base de leurs modèles de DL.

En outre, nous avons également cherché à identifier les futures mises en œuvre possibles et à mettre en évidence la voie à suivre pour la recherche en cours dans ce domaine.






3) Prévision des séries temporelles financières avec l'apprentissage profond : une revue systématique de la littérature : 2005-2019 (2019)

Financial time series forecasting is, without a doubt, the top choice of computational intelligence for finance researchers from both academia and financial industry due to its broad implementation areas and substantial impact.

Les chercheurs en apprentissage automatique ont proposé divers modèles et un grand nombre d'études ont été publiées en conséquence.

Il existe donc un nombre important d'études portant sur l'apprentissage automatique dans le cadre des études de prévision des séries chronologiques financières.

Récemment, des modèles d'apprentissage profond (Deep Learning, DL) ont commencé à apparaître dans ce domaine, avec des résultats qui surpassent de manière significative les modèles d'apprentissage profond traditionnels.

Bien qu'il y ait un intérêt croissant pour le développement de modèles pour la recherche sur les prévisions de séries temporelles financières, il y a un manque d'articles de synthèse qui se sont concentrés uniquement sur l'apprentissage profond pour la finance.

Par conséquent, notre motivation dans ce document est de fournir une analyse documentaire complète sur les études de DL pour les implémentations de prévisions de séries temporelles financières.

Nous avons non seulement classé les études en fonction des domaines de prévision envisagés, tels que les prévisions relatives aux indices, au marché des changes et aux matières premières, mais nous les avons également regroupées en fonction de leurs choix de modèles de DL, tels que les réseaux neuronaux convolutifs (CNN), les réseaux de croyance profonds (DBN) et les mémoires à long et à court terme (LSTM).

Nous avons également essayé d'envisager l'avenir du domaine en soulignant les revers et les opportunités possibles, afin que les chercheurs intéressés puissent en bénéficier.





 

Réseau neuronal CNN LSTM créé par CHATGPT

# Import necessary libraries
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM, Dropout, Conv1D, MaxPooling1D, Flatten

# Load the dataset
df = pd.read_csv('https://query1.finance.yahoo.com/v7/finance/download/AAPL?period1=1411958400&period2=1636521600&interval=1d&events=history&includeAdjustedClose=true')

# Preprocess the data
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(df['Close'].values.reshape(-1, 1))

# Split the data into training and testing sets
training_size = int(len(scaled_data) * 0.7)
testing_size = len(scaled_data) - training_size
training_data = scaled_data[0:training_size, :]
testing_data = scaled_data[training_size:len(scaled_data), :]

# Function to create input features and labels for model
def create_dataset(dataset, look_back):
    data_X, data_Y = [], []
    for i in range(len(dataset)-look_back-1):
        a = dataset[i:(i+look_back), 0]
        data_X.append(a)
        data_Y.append(dataset[i + look_back, 0])
    return np.array(data_X), np.array(data_Y)

# Create input features and labels for training and testing sets
look_back = 60
X_train, y_train = create_dataset(training_data, look_back)
X_test, y_test = create_dataset(testing_data, look_back)

# Reshape the input data for CNN-LSTM model
X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))
X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))

# Define and compile the CNN-LSTM model
model = Sequential()

model.add(Conv1D(filters=32, kernel_size=5, activation='relu', input_shape=(look_back, 1)))
model.add(MaxPooling1D(pool_size=2))
model.add(Dropout(0.2))

model.add(Conv1D(filters=64, kernel_size=5, activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Dropout(0.2))

model.add(LSTM(50, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(50))
model.add(Dropout(0.2))

model.add(Dense(1))

model.compile(loss='mean_squared_error', optimizer='adam')

# Train the model on the training data
model.fit(X_train, y_train, epochs=100, batch_size=32)

# Use the model to make predictions on the testing data
y_pred = model.predict(X_test)

# Rescale the data back to original values
y_pred = scaler.inverse_transform(y_pred)
y_test = scaler.inverse_transform(y_test.reshape(-1, 1))

# Plot the original and forecasted values
plt.plot(y_test, label='Actual')
plt.plot(y_pred, label='Predicted')
plt.xlabel('Time')
plt.ylabel('Close Price')
plt.title('AAPL Stock Price Forecast')
plt.legend()
plt.show()

Résultat de l'exécution dans Jupyter Notebook
 
Vous attendiez-vous à autre chose ? Ce n'est qu'à partir de sa propre expérience et de ses propres connaissances que l'on peut obtenir un résultat.
 
Vladimir Perervenko #:
Vous attendiez-vous à autre chose ? Ce n'est qu'avec sa propre expérience et ses propres connaissances que l'on peut obtenir un résultat.

Je ne m'attendais pas à ce qu'une telle chose soit possible aujourd'hui, la technologie est impressionnante. Je suis d'accord pour dire que même avec de tels outils, un travail sérieux est nécessaire, et l'expérience est le fils d'erreurs difficiles....

 
Vladimir Perervenko #:

Transférer le prétraitement vers MT n'est pas un problème, je veux vraiment tester le système dans le testeur MT, en python/R je dois écrire mon propre testeur, plein d'erreurs.

 
Vladimir Perervenko projet d' apprentissage automatique comprend trois phases :
  • le prétraitement (beaucoup de choses)
  • Sélection du modèle, entraînement, optimisation, etc.
  • la mise en œuvre

L'utilisation des modèles ONNX dans µl résout le problème de l'implémentation. Cependant, ce n'est pas le cas pour tous les modèles et ce n'est pas très facile.

L'entraînement et l'optimisation des modèles sont résolus par un processus séparé en Python.

Mais de tout ce qui précède, la première étape est la plus longue, la plus créative et la plus importante. Et il est impossible de la réaliser sur le µl. Nous ne considérons pas la mise à l'échelle primitive comme un prétraitement. Et la sagesse populaire dit : "Garbage in - rubbish out". Il y a trop de choses à développer et à mettre en œuvre en plus dans MCL pour que la MO ne soit pleinement utilisée que sur MCL. Il est impossible d'embrasser l'immensité, d'autant plus qu'elle est en constante expansion...

Est-ce vraiment si grave? Après tout, de nombreux articles ont déjà été écrits sur les réseaux neuronaux. Et il y en a même où tout est "simple" .....

 
Vladimir Perervenko projet d' apprentissage automatique comprend trois phases :
  • le prétraitement (beaucoup de choses)

Mais de toutes ces étapes, la première est la plus longue, la plus créative et la plus importante. Et il est impossible de la mettre en œuvre sur le µl.

Si je comprends bien, nous parlons de la difficulté de calculer certaines fonctions de prix qui agissent comme des caractéristiques du réseau.

Pouvez-vous donner un exemple, peut-être y aura-t-il des personnes ici présentes qui présenteront une mise en œuvre de ces choses.

 
Denis Kirichenko #:

Est-ce vraiment si grave? Je veux dire que de nombreux articles ont déjà été écrits sur les réseaux neuronaux. Et il y en a même où tout est "simple" ....

Ce n'est pas si mal. Tout est à l'état embryonnaire par rapport au développement moderne des fonctionnalités de prétraitement.

Je programme en R depuis assez longtemps. J'ai commencé à utiliser Python il n'y a pas si longtemps et la principale chose que j'ai remarquée en étudiant les projets d'apprentissage automatique (packages) en Python est l'absence presque totale de prétraitement. L'approche est que le modèle se charge de tout. Ce n'est ni mauvais ni bon. C'est l'approche qui s'est développée historiquement.

En revanche, R dispose d'un énorme arsenal de prétraitement avec une compréhension de ce à quoi il sert.

Bien que récemment, il y ait eu un emprunt mutuel de nombreux développements utiles.

Je veux dire qu'il est impossible de couvrir l'immensité, et les développeurs s'efforcent de le faire. Porter ce qui est écrit en C - oui, mais tout réécrire en MKL.....

En ce qui concerne ONNX. Le domaine est nouveau, très prometteur, en développement rapide et en demande. Cela signifie qu'il y aura une possibilité de conduire dans ONNX et le prétraitement. TensorFlow possède déjà des couches de prétraitement, bien que simples, mais tout de même. Vous devez l'essayer, il vous sera utile.

Bien sûr, il est plus intéressant d'utiliser ONNX pour l'entraînement, mais ce n'est que pour Linux. Peut-être que les experts du WSL peuvent l'utiliser d'une manière ou d'une autre.

 
Pour l'utiliser, je préférerais utiliser une simple figure d'engouffrement😀 compliquée sans raison valable.
 
c'est super grâce à cet article je sais comment récupérer les données de mt5 vers python et traiter le modèle en python puis récupérer le modèle en python pour générer des ea sur mt5, je ne sais pas si ce modèle est plus performant que les modèles traditionnels mais je suis sûr qu'il va faire des modèles différents. c'est l'avenir.
How to use ONNX models in MQL5
How to use ONNX models in MQL5
  • www.mql5.com
ONNX (Open Neural Network Exchange) is an open format built to represent machine learning models. In this article, we will consider how to create a CNN-LSTM model to forecast financial timeseries. We will also show how to use the created ONNX model in an MQL5 Expert Advisor.