Diskussion zum Artikel "Wie man ONNX-Modelle in MQL5 verwendet" - Seite 3

 

Übersichten über Anwendungen (Objekte, Modelle und Werkzeuge)

1. Überblick über die Anwendung von Deep Learning im algorithmischen Handel (2021)

Der algorithmische Handel ist eine der wichtigsten Richtungen im Bereich der Finanzanwendungen.

Im Vergleich zu traditionellen Handelsstrategien führen algorithmische Handelsanwendungen Prognosen und Arbitrage mit höherer Effizienz und stabilerer Leistung durch.

Zahlreiche Studien über algorithmische Handelsmodelle, die Deep Learning verwenden, wurden durchgeführt, um Handelsprognosen und Analysen durchzuführen.

In diesem Artikel fassen wir zunächst mehrere Deep-Learning-Methoden zusammen, die sich in algorithmischen Handelsanwendungen bewährt haben, und stellen kurz einige Anwendungen von Deep Learning im algorithmischen Handel vor.

Anschließend versuchen wir, die neueste Snapshot-Anwendung für den algorithmischen Handel auf der Grundlage der Deep-Learning-Technologie vorzustellen, und zeigen die verschiedenen Implementierungen des entwickelten algorithmischen Handelsmodells.

Abschließend werden einige mögliche Forschungsfragen für die Zukunft vorgeschlagen.

Das Hauptziel dieser Arbeit ist es , einen umfassenden Überblick über den Forschungsfortschritt von Deep-Learning-Anwendungen im algorithmischen Handel zu geben und einen Nutzen für die nachfolgende Forschung von Computerprogramm-Handelssystemen zu bieten.


2) Deep Learning für Finanzanwendungen: Ein Überblick (2020)

Computergestützte Intelligenz im Finanzbereich ist in den letzten Jahrzehnten sowohl in der Wissenschaft als auch in der Finanzindustrie ein sehr beliebtes Thema gewesen.

Es wurden zahlreiche Studien veröffentlicht, die zu verschiedenen Modellen geführt haben. Im Bereich des maschinellen Lernens (ML) hat das Deep Learning (DL) in letzter Zeit viel Aufmerksamkeit erregt, vor allem aufgrund seiner besseren Leistung als die klassischen Modelle.

Es gibt heute viele verschiedene Implementierungen von DL, und das breite Interesse hält an. Das Finanzwesen ist ein besonderer Bereich, in dem DL-Modelle an Bedeutung gewonnen haben, allerdings ist das Spielfeld noch weit offen und es gibt noch viele Forschungsmöglichkeiten.

In diesem Beitrag haben wir versucht, einen Überblick über den aktuellen Stand der entwickelten DL-Modelle für Finanzanwendungen zu geben.

Wir haben die Arbeiten nicht nur nach ihrem angestrebten Teilbereich im Finanzwesen kategorisiert, sondern sie auch auf der Grundlage ihrer DL-Modelle analysiert.

Darüber hinaus haben wir versucht, mögliche künftige Implementierungen zu identifizieren und den Weg für die laufende Forschung auf diesem Gebiet aufzuzeigen.






3. finanzielle Zeitreihenprognosen mit Deep Learning: Eine systematische Literaturübersicht: 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.

Forscher auf dem Gebiet des maschinellen Lernens (ML) haben verschiedene Modelle entwickelt, und eine große Anzahl von Studien wurde veröffentlicht.

Daher gibt es eine beträchtliche Anzahl von Studien, die sich mit ML für Finanzzeitreihenprognosen befassen.

In letzter Zeit tauchen in diesem Bereich auch Modelle des Deep Learning (DL) auf, deren Ergebnisse die traditionellen ML-Modelle deutlich übertreffen.

Obwohl es ein wachsendes Interesse an der Entwicklung von Modellen für die Finanzzeitreihenprognoseforschung gibt, fehlt es an Übersichtsarbeiten, die sich ausschließlich auf DL im Finanzbereich konzentrieren.

Daher besteht unsere Motivation in dieser Arbeit darin, einen umfassenden Literaturüberblick über DL-Studien für die Implementierung von Finanzzeitreihenprognosen zu geben.

Wir haben die Studien nicht nur nach den Bereichen kategorisiert, in denen die Prognosen umgesetzt werden sollen, wie z.B. Index-, Devisen- und Rohstoffprognosen, sondern sie auch nach der Wahl des DL-Modells gruppiert, wie z.B. Convolutional Neural Networks (CNNs), Deep Belief Networks (DBNs) und Long-Short Term Memory (LSTM).

Wir haben auch versucht, einen Ausblick auf die Zukunft des Bereichs zu geben, indem wir die möglichen Rückschläge und Chancen hervorgehoben haben, damit interessierte Forscher davon profitieren können.





 

CNN LSTM neuronales Netzwerk erstellt von 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()

Ausführungsergebnis in Jupyter Notebook
 
Haben Sie etwas anderes erwartet? Nur durch die eigene Erfahrung und das eigene Wissen kann es zu einem Ergebnis kommen.
 
Vladimir Perervenko #:
Haben Sie etwas anderes erwartet? Nur durch die eigene Erfahrung und das eigene Wissen kann es zu einem Ergebnis kommen.

Ich habe eher nicht erwartet, dass so etwas jetzt möglich ist, die Technologie ist beeindruckend. Ich stimme zu, dass selbst mit solchen Werkzeugen ernsthafte Arbeit erforderlich ist, und Erfahrung ist der Sohn harter Fehler....

 
Vladimir Perervenko #:

Transfer Vorverarbeitung zu MT ist kein Problem, ich will wirklich das System in MT-Tester zu testen, in Python/R muss ich meine eigenen Tester zu schreiben, voller Fehler.

 
Vladimir Perervenko Projekt zum maschinellen Lernen besteht aus drei Phasen:
  • Preprocessing (viele Dinge)
  • Modellauswahl, Training, Optimierung, etc.
  • Implementierung

Die Verwendung von ONNX-Modellen in µl löst das Problem der Implementierung. Allerdings sind nicht alle Modelle und nicht ganz einfach.

Das Training und die Optimierung der Modelle wird durch einen separaten Prozess in Python gelöst.

Von all diesen Schritten ist der erste der zeitaufwändigste, kreativste und wichtigste. Und es ist unmöglich, sie auf µl zu realisieren. Wir betrachten die primitive Skalierung nicht als Vorverarbeitung. Und die Volksweisheit sagt: "Müll rein - Müll raus". Es gibt zu viel, was zusätzlich entwickelt und in MCL implementiert werden muss, um MO nur auf MCL voll nutzen zu können. Es ist unmöglich, das Unermessliche zu umarmen, zumal es sich ständig erweitert ...

Ist es wirklich so schlimm? Schließlich sind schon viele Artikel über neuronale Netze geschrieben worden. Und es gibt sogar einige, in denen alles "einfach" ist .....

 
Vladimir Perervenko Projekt zum maschinellen Lernen besteht aus drei Phasen:
  • Vorverarbeitung (eine Menge von Dingen)

Die erste Phase ist jedoch die zeitaufwändigste, kreativste und wichtigste Phase. Und es ist unmöglich, sie auf µl zu implementieren.

Soweit ich verstanden habe, geht es um die Schwierigkeit, einige Preisfunktionen zu berechnen, die als Eigenschaften des Netzes fungieren.

Können Sie ein Beispiel nennen, vielleicht gibt es hier jemanden, der eine Implementierung dieser Dinge vorstellt.

 
Denis Kirichenko #:

Ist das wirklich so schlimm? Ich meine, es wurden schon viele Artikel über neuronale Netze geschrieben. Und es gibt sogar einige, in denen alles "einfach" ist ....

Es ist nicht schlecht. Verglichen mit der modernen Entwicklung von Vorverarbeitungsfunktionen befindet sich alles noch in einem sehr embryonalen Stadium.

Ich programmiere schon seit langem in R. Vor nicht allzu langer Zeit habe ich Python verwendet, und das Wichtigste, was mir beim Studium von Projekten (Paketen) für maschinelles Lernen in Python aufgefallen ist, ist das fast vollständige Fehlen von Vorverarbeitungsfunktionen. Der Ansatz ist, dass das Modell alles herausnimmt. Das ist weder schlecht noch gut. Dies ist der Ansatz, der sich historisch entwickelt hat.

Im Gegensatz dazu verfügt R über ein riesiges Arsenal an Vorverarbeitungen, von denen man weiß, wozu sie gut sind.

Obwohl es in letzter Zeit eine gegenseitige Anleihe vieler nützlicher Entwicklungen gegeben hat.

Ich meine, dass es unmöglich ist, die Weite zu erfassen, und die Entwickler bemühen sich, dies zu tun. Zu portieren, was in C geschrieben ist - ja, aber alles in MKL..... neu zu schreiben.

Bezüglich ONNX. Der Bereich ist neu, sehr vielversprechend, entwickelt sich schnell und ist sehr gefragt. Das bedeutet, dass es eine Möglichkeit geben wird, in ONNX und die Vorverarbeitung einzusteigen. TensorFlow hat bereits Schichten der Vorverarbeitung, wenn auch einfach, aber immerhin. Sie müssen es ausprobieren, es wird sich als nützlich erweisen.

Natürlich sieht es attraktiver aus, ONNX beim Training zu verwenden, aber das ist nur für Linux. Vielleicht können WSL-Experten es irgendwie nutzen.

 
Um dies zu nutzen, würde ich lieber ein einfaches Engulfing-Muster verwenden😀 kompliziert für keinen guten Grund
 
es ist großartig, dank dieses Artikels, dass ich weiß, wie man Daten aus mt5 zu Python und traling Modell in Python dann erhalten Modell von Python zu generieren ea auf mt5, ich weiß nicht, ob dieses Modell mehr groß als traditionelle Modelle, aber ich bin sicher, dass es verschiedene Modelle machen. es ist Zukunft
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.