[Python] Mes prévisions de cours de bourse [HFT]

1. Motivation

2. À propos des informations sur la carte

Quantité de vente(ASK) Prix de l'action Acheter la quantité(BID)
500 670
400 669
600 668
667 300
666 1,200
665 400
ASK Prix de l'action BID
500 670
400 669
500 668
667 300
666 1,200
665 400
ASK Prix de l'action BID
500 670
400 669
600 668
667 400
666 1,200
665 400

3. Ensemble de données FI-2010

Qu'est-ce que le jeu de données FI-2010?

Aperçu des données

data = pd.read_csv('Train_Dst_Auction_DecPre_CF_1.txt', 
                   header=None, delim_whitespace=True)
print(data.shape)
#=> (149, 47342)
plt.figure(figsize=(20,10))
plt.imshow(data, interpolation='nearest', vmin=0, vmax=0.75, 
           cmap='jet', aspect=data.shape[1]/data.shape[0])
plt.colorbar()
plt.grid(False)
plt.show()

save.png

lob = data.iloc[:40,0].values
lob_df = pd.DataFrame(lob.reshape(10,4), 
                      columns=['ask','ask_vol','bid','bid_vol'])
print(lob_df)
ask ask_vol bid bid_vol
0 0.2631 0.00392 0.2616 0.00663
1 0.2643 0.00028 0.2615 0.00500
2 0.2663 0.00165 0.2614 0.00500
3 0.2664 0.00500 0.2613 0.00043
4 0.2667 0.00039 0.2612 0.00646
5 0.2710 0.00700 0.2611 0.00200
6 0.2745 0.00200 0.2609 0.00199
7 0.2749 0.00487 0.2602 0.00081
8 0.2750 0.00300 0.2600 0.00197
9 0.2769 0.01000 0.2581 0.01321

4. Modèle

Données de formation et étiquettes

Architecture modèle

5. Mise en œuvre

Prétraitement des données

#Les informations sur le conseil se trouvent dans les 40 premières lignes. 29738 comme données de la cinquième marque~Spécifiez 47294.
lob = data.iloc[:40, 29738:47294].T.values
#Ici, standardisez par prix et quantité.
lob = lob.reshape(-1,2)
lob = (lob - lob.mean(axis=0)) / lob.std(axis=0)
lob = lob.reshape(-1,40)
lob_df = pd.DataFrame(lob)
#Calculez le point médian non standardisé.
lob_df['mid'] = (data.iloc[0,29738:47294].T.values + data.iloc[2,29738:47294].T.values) / 2
#Spécifiez les paramètres.
p = 50
k = 50
alpha = 0.0003
#Créez une étiquette à partir du milieu en fonction des paramètres.
lob_df['lt'] = (lob_df['mid'].rolling(window=k).mean().shift(-k)-lob_df['mid'])/lob_df['mid']
lob_df = lob_df.dropna()
lob_df['label'] = 0
lob_df.loc[lob_df['lt']>alpha, 'label'] = 1
lob_df.loc[lob_df['lt']<-alpha, 'label'] = -1
from sklearn.model_selection import train_test_split
from keras.utils import to_categorical
from keras.layers import Conv2D, Dense, Reshape, Input, LSTM
from keras import Model, backend
import tensorflow as tf
#Créez des données d'entraînement.
X = np.zeros((len(lob_df)-p+1, p, 40, 1))
lob = lob_df.iloc[:,:40].values
for i in range(len(lob_df)-p+1):
    X[i] = lob[i:i+p,:].reshape(p,-1,1)
y = to_categorical(lob_df['label'].iloc[p-1:], 3)
print(X.shape, y.shape)
#=> (17457, 50, 40, 1) (17457, 3)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

Construction de modèles

tf.reset_default_graph()
backend.clear_session()

inputs = Input(shape=(p,40,1))
x = Conv2D(8, kernel_size=(1,2), strides=(1,2), activation='relu')(inputs)
x = Conv2D(8, kernel_size=(1,2), strides=(1,2), activation='relu')(x)
x = Conv2D(8, kernel_size=(1,10), strides=1, activation='relu')(x)
x = Reshape((p, 8))(x)
x = LSTM(8, activation='relu')(x)
x = Dense(16, activation='relu')(x)
outputs = Dense(3, activation='softmax')(x)

model = Model(inputs=inputs, outputs=outputs)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Apprenons!

epochs = 50
batch_size = 256
history = model.fit(X_train, y_train,
                    epochs=epochs,
                    batch_size=batch_size,
                    verbose=1,
                    validation_data=(X_test, y_test))

Epoch 100/100 13965/13965 [==============================] - 5s 326us/step - loss: 0.6526 - acc: 0.6808 - val_loss: 0.6984 - val_acc: 0.6595

save.png save.png

6. Examen

Recommended Posts

[Python] Mes prévisions de cours de bourse [HFT]
Python: prévision du cours de l'action, partie 2
Python: prévision du cours de l'action partie 1
Prévision du cours de l'action 2 Chapitre 2
Prévision du cours de l'action 1 Chapitre 1
Mémo d'étude Python & Machine Learning ⑦: Prévision du cours de l'action
Prévision du cours de l'action avec tensorflow
Obtenez des stocks avec Python
Prévision du cours des actions à l'aide de l'apprentissage automatique (scikit-learn)
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow)
Téléchargez les données de cours des actions japonaises avec Python
Prévision de stock avec TensorFlow (LSTM) ~ Prévision de stock Partie 1 ~
[Python] Création d'un graphique de tirage des actions
Prévision du cours des actions à l'aide de l'apprentissage automatique (édition de retour)
Mon Numpy (Python)
Mon système (Python)
Mon pyproj (Python)
Mes pandas (Python)
Mon str (Python)
Mon pyautogui (Python)
Mon PySide (Python)
Mon shutil (Python)
Mon matplotlib (Python)
Mon urllib (Python)
Mon pyperclip (Python)
Mon sklearn (Python)
[Mon mémo] python
Mon ConfigParser (Python)
Mon Webdriver (Python)
Mon arcpy (Python)
Mon win32gui (Python)
Mon système d'exploitation (Python)
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow) - Partie 2
Prévision du cours de l'action par machine learning Numerai Signals
Web scraping avec Python (cours de l'action)
Prévision du cours de l'action à l'aide du Deep Learning [acquisition de données]
Prévision de stock avec TensorFlow (perceptron multicouche: MLP) ~ Prévision de stock 2 ~
Ma belle soupe (Python)
[Mon mémo] python -v / python -V
Astuces Python (mon mémo)
Prévision de la fluctuation des prix de la monnaie virtuelle
[Série chronologique avec plotly] Visualisation dynamique avec plotly [python, cours boursier]
Kaggle ~ Prévision de prix de l'immobilier ② ~
Kaggle ~ Prévision de prix à domicile ~
Historique de programmation 1 mois Extraire le stock NY Dow avec Python!
[Introduction à Systre] Prévision du cours de l'action; faible lundi m (__) m
Prévisions du cours des actions par apprentissage automatique Commençons Numerai
Mon environnement d'analyse de données python
Scraping prévisions météorologiques avec python
Prévision du cours de l'action avec LSTM_1
Conseils d'acquisition de données de cours de bourse
Les prévisions du cours des actions par apprentissage automatique sont si vraies Signaux Numerai