Это код написан на языке Python. Это нейронная сеть предсказывает поведение цены любого торгового инструмента. Как я использую этот код! Сперва я купил VPS сервер и установил PyCharm, что бы запустить код и начать торговать. После подключился к метатрейдеру 5 с помощью того же PyCharm и после все автоматизировал. Наладил связь между нейросетью и МТ5. Сейчас нейронная сеть сама обучаеться и дает сигналы для торговли метатрейдеру 5! Я хочу добавить это исходник кода для гугла колаб! Вы можете с ним работать и сделать все как я написал. Но есть детали… И их много. Если, что спрашивайте буду помогать. А так же можно сотрудничать и помогать друг другу и писать свои варианты как работать с этим кодом. Это для того, чтобы получать больше прибыли. Ведь всегда можно все улучшить!
А вот пример насколько возможно все сделать лучше
www.myfxbook.com/members/leo23/real-time-artificial-intelligence-v50/2685966
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential, load_model
from keras.layers import LSTM, Dense, Dropout
import os
"""### Loading in Dataset"""
df = pd.read_csv('/content/Data.csv')
df.head()
"""### Preprocessing and Feature Extraction"""
df = df['Close'].values
df = df.reshape(-1, 1)
print(df.shape)
df[:5]
dataset_train = np.array(df[:int(df.shape[0]*0.8)])
dataset_test = np.array(df[int(df.shape[0]*0.8)-100:])
print(dataset_train.shape)
print(dataset_test.shape)
scaler = MinMaxScaler(feature_range=(0,1))
dataset_train = scaler.fit_transform(dataset_train)
dataset_train[:5]
dataset_test = scaler.transform(dataset_test)
dataset_test[:5]
def create_dataset(df):
x = []
y = []
for i in range(100, df.shape[0]):
x.append(df[i-100:i, 0])
y.append(df[i, 0])
x = np.array(x)
y = np.array(y)
return x,y
x_train, y_train = create_dataset(dataset_train)
x_train[:1]
x_test, y_test = create_dataset(dataset_test)
x_test[:1]
# Reshape features for LSTM Layer
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))
"""### Building Model"""
model = Sequential()
model.add(LSTM(units=96, return_sequences=True, input_shape=(x_train.shape[1], 1)))
model.add(Dropout(0.2))
model.add(LSTM(units=96, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(units=96, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(units=96))
model.add(Dropout(0.2))
model.add(Dense(units=1))
model.compile(loss='mean_squared_error', optimizer='adam')
if(not os.path.exists('stock_prediction.h5')):
model.fit(x_train, y_train, epochs=1, batch_size=32)
model.save('stock_prediction.h5')
from google.colab import drive
drive.mount('/content/drive')
model = load_model('stock_prediction.h5')
"""### Visualizing Results"""
predictions = model.predict(x_test)
predictions = scaler.inverse_transform(predictions)
fig, ax = plt.subplots(figsize=(8,4))
plt.plot(df, color='red', label="True Price")
ax.plot(range(len(y_train)+100,len(y_train)+100+len(predictions)),predictions, color='blue', label='Predicted Testing Price')
plt.legend()
y_test_scaled = scaler.inverse_transform(y_test.reshape(-1, 1))
fig, ax = plt.subplots(figsize=(8,4))
ax.plot(y_test_scaled, color='red', label='True Testing Price')
plt.plot(predictions, color='blue', label='Predicted Testing Price')
plt.legend()
x = x_test[-1]
num_timesteps = 1
preds = []
for i in range(num_timesteps):
data = np.expand_dims(x, axis=0)
prediction = model.predict(data)
prediction = scaler.inverse_transform(prediction)
preds.append(prediction[0][0])
x = np.delete(x, 0, axis=0) # delete first row
x = np.vstack([x, prediction]) # add prediction
print(preds)
Комментарии (15)
6 Mtyvnel Автор Сообщений: 138
22 poker Сообщений: 849
6 Mtyvnel Автор Сообщений: 138
Вот код, который(со слов Инсомнии) в этом howto полностью идентичен.
24 ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.
6 Mtyvnel Автор Сообщений: 138
Т.е. ты это написал и используешь сам? Активно изучаешь? Твоя ссылка на счет? Если нет, то на какой стадии ты сам? Сколько времени копаешь тему?
Просто интересно, ты мимопроходил или сам вплотную занялся. А за поднятие темы в любом случае спасибо.
45 Bishop Сообщений: 5802 - АЛЬФАХАМЕЦ-Машковод
6 Mtyvnel Автор Сообщений: 138
20 alex30774 Сообщений: 748
6 Mtyvnel Автор Сообщений: 138
9 maksGruv Сообщений: 340
Я с таким и подобными кодами работал, причем писал их сам. Данная версия построит вам практически идентичный график предсказания но в полевых условиях работать не будет. Дело в том что в таком формате модели очень быстро обучаются выдавать не следующий за периодом который мы подали отрезок, а последний из поданного периода, поскольку разница между ними не большая и соответственно схождение хорошее. Этому способствует любой банч сайз больше двух. Но если подать банч сайз один то модель перестает сходиться вовсе. Я решил в свое время эту проблему превратив ответы в бинарный вариант.
0 eccocom Сообщений: 1
20 nonych Сообщений: 125 - Евгеша
20 alex30774 Сообщений: 748
20 nonych Сообщений: 125 - Евгеша
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий