"MQL5'te ONNX modelleri nasıl kullanılır?" makalesi için tartışma - sayfa 3

 

Uygulamalar üzerine incelemeler (nesneler, modeller ve araçlar)

1. Algoritmik ticarette derin öğrenme uygulaması üzerine anket (2021)

Algoritmik ticaret, finansal uygulamalarda en çok ilgi gören alanlardan biridir.

Geleneksel ticaret stratejileri ile karşılaştırıldığında, algoritmik ticaret uygulamaları daha yüksek verimlilik ve daha istikrarlı performans ile tahmin ve arbitraj gerçekleştirir.

Ticaret tahmini ve analizi gerçekleştirmek için derin öğrenme kullanan algoritmik ticaret modelleri üzerine çok sayıda çalışma yapılmıştır.

Bu makalede, öncelikle algoritmik ticaret uygulamalarında iyi performans gösteren birkaç derin öğrenme yöntemini özetliyor ve algoritmik ticarette derin öğrenmenin bazı uygulamalarını kısaca tanıtıyoruz.

Daha sonra, derin öğrenme teknolojisine dayalı algoritmik ticaret için en son anlık görüntü uygulamasını sağlamaya ve geliştirilen algoritmik ticaret modelinin farklı uygulamalarını göstermeye çalışıyoruz.

Son olarak, gelecekte bazı olası araştırma konuları önerilmektedir.

Bu makalenin temel amacı, algoritmik ticarette derin öğrenme uygulamalarının kapsamlı bir araştırma ilerlemesini sağlamak ve bilgisayar programı ticaret sistemlerinin sonraki araştırmaları için fayda sağlamaktır.


2. Finansal Uygulamalar için Derin Öğrenme: Bir Anket (2020)

Finansta hesaplamalı zeka, son birkaç on yılda hem akademi hem de finans endüstrisi için çok popüler bir konu olmuştur.

Çeşitli modellerle sonuçlanan çok sayıda çalışma yayınlanmıştır. Bu arada, Makine Öğrenimi (ML) alanında, Derin Öğrenme (DL), çoğunlukla klasik modellere göre daha iyi performans göstermesi nedeniyle son zamanlarda çok dikkat çekmeye başladı.

Bugün DL'nin pek çok farklı uygulaması mevcut ve bu geniş ilgi devam ediyor. Finans, DL modellerinin ilgi görmeye başladığı belirli bir alandır, ancak oyun alanı oldukça açıktır ve birçok araştırma fırsatı hala mevcuttur.

Bu makalede, bugün itibariyle finansal uygulamalar için geliştirilen DL modellerinin en son halinin bir görüntüsünü sunmaya çalıştık.

Çalışmaları yalnızca finans alanındaki alt alanlarına göre kategorize etmekle kalmadık, aynı zamanda DL modellerine göre de analiz ettik.

Buna ek olarak, gelecekteki olası uygulamaları belirlemeyi ve bu alanda devam eden araştırmalar için izlenecek yolu vurgulamayı da amaçladık.






3. Derin Öğrenme ile Finansal Zaman Serisi Tahmini: Sistematik Bir Literatür Taraması: 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.

Makine Öğrenimi (ML) araştırmacıları çeşitli modeller geliştirmiş ve bu doğrultuda çok sayıda çalışma yayınlanmıştır.

Bu nedenle, finansal zaman serisi tahmin çalışmaları için makine öğrenimini kapsayan önemli miktarda araştırma mevcuttur.

Son zamanlarda, Derin Öğrenme (DL) modelleri, geleneksel ML muadillerinden önemli ölçüde daha iyi performans gösteren sonuçlarla bu alanda ortaya çıkmaya başlamıştır.

Finansal zaman serisi tahmin araştırmaları için model geliştirmeye yönelik artan bir ilgi olmasına rağmen, yalnızca finans için DL'ye odaklanan inceleme makalelerinin eksikliği söz konusudur.

Bu nedenle, bu makaledeki motivasyonumuz, finansal zaman serisi tahmin uygulamaları için DL çalışmaları hakkında kapsamlı bir literatür taraması sağlamaktır.

Çalışmaları sadece endeks, forex, emtia tahmini gibi amaçlanan tahmin uygulama alanlarına göre kategorize etmekle kalmadık, aynı zamanda Evrişimsel Sinir Ağları (CNN'ler), Derin İnanç Ağları (DBN'ler), Uzun-Kısa Süreli Bellek (LSTM) gibi DL model seçimlerine göre de gruplandırdık.

Ayrıca, ilgili araştırmacıların faydalanabilmesi için olası aksaklıkları ve fırsatları vurgulayarak alanın geleceğini öngörmeye çalıştık





 

CHATGPT tarafından oluşturulan CNN LSTM sinir ağı

# 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()

Jupyter Notebook'ta yürütme sonucu
 
Farklı bir şey mi bekliyordunuz? Sadece kişinin kendi deneyimi ve bilgisi sayesinde bir sonuç elde edilebilir.
 
Vladimir Perervenko #:
Farklı bir şey mi bekliyordunuz? Sadece kişinin kendi deneyimi ve bilgisiyle bir sonuç elde edilebilir.

Şu anda böyle bir şeyin mümkün olduğunu beklemiyordum, teknoloji etkileyici. Bu tür araçlarla bile ciddi bir emek gerektiğine katılıyorum ve deneyim zor hataların çocuğudur....

 
Vladimir Perervenko #:

Ön işlemeyi MT'ye aktarmak sorun değil, sistemi gerçekten MT test cihazında test etmek istiyorum, python / R'de hatalarla dolu kendi test cihazımı yazmam gerekiyor.

 
Vladimir Perervenko projesi üç aşamadan oluşur:
  • ön işleme (birçok şey)
  • Model seçimi, eğitim, optimizasyon vb.
  • uygulama

µl'de ONNX modellerinin kullanılması uygulama sorununu çözmektedir. Ancak, tüm modeller değil ve oldukça kolay değil.

Modellerin eğitimi ve optimizasyonu Python'da ayrı bir süreçle çözülür.

Ancak tüm bunların arasında ilk aşama en çok zaman alan, son derece yaratıcı ve en önemli olanıdır. Ve bunu µl üzerinde gerçekleştirmek imkansızdır. İlkel ölçeklendirmeyi ön işleme olarak görmüyoruz. Ve halk bilgeliği der ki: "Çöp içeri - çöp dışarı". MO'nun yalnızca MCL'de tam olarak kullanılması için MCL'de ek olarak geliştirilecek ve uygulanacak çok fazla şey var. Özellikle sürekli genişlediği için muazzam olanı kucaklamak imkansızdır ...

Gerçekten o kadar kötü mü? Sonuçta, sinir ağları hakkında zaten birçok makale yazıldı. Ve hatta her şeyin "basit" olduğu makaleler bile var .....

 
Vladimir Perervenko projesi üç aşamadan oluşur:
  • ön işleme (birçok şey)

Ancak tüm bunların arasında ilk aşama en çok zaman alan, son derece yaratıcı ve en önemli olanıdır. Ve bunu µl üzerinde uygulamak imkansızdır.

Anladığım kadarıyla, ağın özellikleri olarak hareket eden bazı fiyat fonksiyonlarını hesaplamanın zorluğundan bahsediyoruz.

Bir örnek verebilir misiniz, belki burada bunların bir uygulamasını sunacak olanlar olacaktır.

 
Denis Kirichenko #:

Gerçekten o kadar kötü mü? Demek istediğim, sinir ağları hakkında zaten pek çok makale yazıldı. Ve hatta bazıları var ki her şey "basit"....

Fena değil. Ön işleme işlevselliğinin modern gelişimine kıyasla her şey çok embriyonik bir durumda.

Oldukça uzun bir süredir R'de programlama yapıyorum. Çok uzun zaman önce Python kullanıyordum ve Python'da makine öğrenimi projelerini (paketlerini) incelerken fark ettiğim ana şey, ön işlemenin neredeyse tamamen yokluğuydu. Yaklaşım, modelin her şeyi çıkaracağı yönünde. Bu ne kötü ne de iyi bir şey. Tarihsel olarak gelişen yaklaşım bu.

Buna karşılık R, ne işe yaradığına dair bir anlayışla birlikte devasa bir ön işleme cephaneliğine sahiptir.

Her ne kadar son zamanlarda birçok faydalı gelişmenin karşılıklı olarak ödünç alınması söz konusu olsa da.

Demek istediğim, bu genişliği kapsamak imkansızdır ve geliştiriciler bunu yapmak için çabalamaktadır. C'de yazılanları taşımak için - evet, ama her şeyi MKL'de yeniden yazmak için.....

ONNX ile ilgili olarak. Alan yeni, çok umut verici, hızla gelişiyor ve talep görüyor. Bu, ONNX'e ve ön işlemeye girme olasılığı olacağı anlamına gelir. TensorFlow zaten basit olsa da ön işleme katmanlarına sahiptir. Denemeniz gerekiyor, kullanışlı olacaktır.

Elbette eğitimde ONNX kullanmak daha cazip görünüyor, ancak bu sadece Linux için. Belki WSL uzmanları bir şekilde kullanabilir.

 
Bunu kullanmak için basit bir yutan desen kullanmayı tercih ederim😀 iyi bir sebep olmadan karmaşık
 
bu makale sayesinde mt5'ten python'a veri almayı ve python'da model oluşturmayı ve ardından mt5'te ea oluşturmak için python'dan model almayı öğrendiğim için harika, bu modelin geleneksel modellerden daha harika olup olmadığını bilmiyorum ama eminim farklı modeller yapacaktır. gelecek
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.