[PYTHON] Ist es möglich, mit Aktienkursprognose durch maschinelles Lernen zu essen [Umsetzungsplan]

Einführung

Dieser Artikel ist nur eine Idee. Ich bin weder ein Datenwissenschaftler noch ein hochbewusster Ingenieur, daher gibt es keine akademische Unterstützung. Es ist nur Poo Taros Idiot.

Ich weiß, dass die Aktienkurse ein zufälliger Spaziergang sind, aber ich frage mich immer, ob ich die Aktienkurse durch maschinelles Lernen der vergangenen Aktienkurse vorhersagen kann. Angenommen, die Preisspanne von morgen (Differenz zwischen dem Rabattpreis und dem Schlusskurs) kann mit einer Genauigkeit von 60% vorhergesagt werden. Da die Trefferquote beim Würfeln 50% beträgt, scheint die Trefferquote von 60% nicht so rücksichtslos zu sein.

Eine Trefferquote von 60% bedeutet, dass Sie 2 Mal mit 6 Siegen und 4 Verlusten gewinnen, wenn Sie 10 Mal vorhersagen. Wenn Sie jedes Mal den gleichen Betrag investieren und sich die Gewinne, die Sie durch das Erreichen der Marke erzielt haben, und die Verluste, die Sie durch das Erreichen der Marke verloren haben, auf lange Sicht gegenseitig aufheben, werden Sie die Gewinne zweimal alle zehn Male akkumulieren.

Wenn es sich um eine einzelne Marke handelt und sie nicht leer verkauft wird, besteht nur die Möglichkeit, sie zu kaufen, wenn ein Anstieg zu erwarten ist. Daher ist das System so, dass es nur durch den Kauf von Sachleistungen festgelegt werden kann. Das heißt, Nikkei 225 ist das Prognoseziel.

Wenn ja, ist es möglich, es nur durch den Kauf von Sachleistungen zu drehen. Da ich einen kleinen Geldbetrag zur Verfügung habe, kann ich eine Hebelwirkung erzielen.

Preisspanne von Nikkei 225

Lassen Sie uns zunächst herausfinden, wie hoch die Preisspanne des Nikkei 225 ist. Löschen Sie die Zeitreihendaten von Nikkei 225 auf csv.

Date,Open,High,Low,Close,Volume
2017-10-31,21896.38,22020.38,21840.07,22011.61,1055801728.0
2017-10-30,22047.95,22086.88,21921.24,22011.67,1397960064.0
2017-10-27,21903.27,22016.5,21815.72,22008.45,1241389952.0
2017-10-26,21698.95,21793.62,21688.56,21739.78,851784320.0
  ....

Überprüfen Sie dies, indem Sie den folgenden Code schreiben. Abhängig von der Marktentwicklung ist die durchschnittliche Preisspanne zum Zeitpunkt des Anstiegs und Abfalls unterschiedlich, wird jedoch als Kastenmarkt angesehen und der absolute Wert der Preisspanne wird gemittelt.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import statistics

def calc_histgram(exchange):
    '''
 Berechnung der Standardabweichung der Preisspannenverteilung und Erstellung eines Histogramms
    '''    
 # Gebot in Liste umwandeln
    open_list = exchange['Open'].tolist()
 # Schlusskurs in Liste umwandeln
    close_list = exchange['Close'].tolist()
    diff_list = ((np.array(close_list) - np.array(open_list))/np.array(open_list)).tolist()
    stdev = statistics.stdev(np.array(diff_list))

 #Berechnen Sie den Durchschnittswert der Preisspanne
    abs_diff_list = np.abs(diff_list)
    abs_diff_mean = statistics.mean(np.array(abs_diff_list))
    print('abs_diff_mean={}'.format(abs_diff_mean))
    
 # Zeichnen Sie ein Histogramm mit einer Preisspanne von = 20
    plt.hist(diff_list, bins=80, rwidth=50)
    plt.title('n225 price range, sigma={}'.format(stdev))
    plt.show()

def main():
    nikkei_225 = pd.read_csv('NIKKEI225.csv').set_index('Date').sort_index()
    calc_histgram(nikkei_225)

if __name__ == '__main__':
    main()

fig1-1_n225_sigma.png

Die durchschnittliche Preisspanne von 2014-10-14 bis 2017-10-31 betrug 0,64%.

Prognoseschema

In diesem Schema werden NF Nikkei Leverage und NF Nikkei Double Inverse verdoppelt, sodass die durchschnittliche Preisspanne Δ zweimal N225 beträgt, also Δ = 0,64% x 2 = 1,28%.

Angenommen, der Markt öffnet 20 Mal im Monat. Wenn Sie vorhersagen können, dass die Trefferquote 60% beträgt, gewinnen Sie 4 Mal im Monat, und der monatliche Gewinn entspricht dem Investitionsbetrag pro Tag x 1,28% x 4. Die Handelsgebühr (0,064% für Hin- und Rückfahrt) ist 20 Mal erforderlich. Darüber hinaus ist eine Investment Trust-Gebühr erforderlich, die jedoch nur einen geringen Betrag darstellt. Ignorieren Sie sie daher. Es wird davon ausgegangen, dass der Gewinn und Verlust außer den vier Gewinntagen gleichmäßig war.

Monatlicher Gewinn = Investitionsbetrag pro Tag x (1,28% x 4-0,064 x 20) = Täglicher Investitionsbetrag x 3,84% Wird sein.

Wenn der monatliche Zinssatz 3,84% beträgt, beträgt der jährliche Zinssatz 46%, multipliziert mit 12. Das ist köstlich. Ist es wahr? Unter der Annahme, dass der tägliche Investitionsbetrag 1 Million Yen beträgt, beträgt der erwartete monatliche Gewinn 38.400 Yen. Es ist ein gutes Taschengeld. Wenn Sie 10 Millionen Yen investieren, können Sie es essen.

Wenn etwas nicht stimmt, was stimmt nicht? Es heißt: "Sagen Sie das Vorzeichen der Preisspanne des Nikkei 225 mit einer Genauigkeit von 60% voraus." .. ..

Ich möchte hier überprüfen.

Zusammenfassung

Es ist ein Witz, dass ein Jahresgewinn von 46% erzielt werden kann, wenn der Code der Preisspanne des Nikkei 225 mit einer Genauigkeit von 60% vorhergesagt werden kann.

Ist es möglich, mit Aktienkursvorhersage durch maschinelles Lernen zu essen [Maschinelles Lernen Teil 1] ] wird befolgt.

Recommended Posts

Ist es möglich, mit Aktienkursprognose durch maschinelles Lernen zu essen [Umsetzungsplan]
Ist es möglich, mit Aktienkursvorhersage durch maschinelles Lernen zu essen [Maschinelles Lernen Teil 1]
Aktienkurs Prognose durch maschinelles Lernen ist so wahr, Numerai Signale
Aktienkursprognose durch maschinelles Lernen Numerai Signals
Aktienkursprognose durch maschinelles Lernen Beginnen wir mit Numerai
Aktienkursprognose mit maschinellem Lernen (Scikit-Learn)
Aktienkursprognose mit maschinellem Lernen (Return Edition)
Versuchen Sie, den Strombedarf durch maschinelles Lernen vorherzusagen
Angemessene Preisschätzung von Mercari durch maschinelles Lernen
Python & Machine Learning Study Memo ⑦: Aktienkursprognose
Einführung in das maschinelle Lernen
Was ist maschinelles Lernen?
[Einführung in Systre] Aktienkursprognose; schwach am Montag m (__) m