Ich versuche, die Geschichte in diesem Artikel selbst zu vervollständigen, aber wenn Sie den folgenden Artikel lesen, wird der Ablauf der Geschichte klarer.
Dieses Mal werde ich versuchen, vorherzusagen, ob die Preisspanne (Discount-Preis-Schlusskurs) des nächsten Tages von NIKKEI 225 durch eine andere Methode als maschinelles Lernen positiv oder negativ ist. Der Punkt, auf den Sie achten sollten, ist, dass es beim Betrachten des Diagramms mit Kerzen häufig vorkommt, dass die positive Linie eine Weile anhält und die negative Linie anhält. "Drei Tage hintereinander" oder "vier Tage hintereinander".
Wenn heute eine positive Linie ist und die Wahrscheinlichkeit, morgen eine positive Linie zu werden, sich von der Wahrscheinlichkeit unterscheidet, eine negative Linie zu werden, erhöht sich die Wahrscheinlichkeit, die Vorhersage zu treffen, wenn die größere Wahrscheinlichkeit als vorhergesagter Wert verwendet wird.
Lassen Sie uns sofort das Verhältnis von NIKKEI 225 zum kontinuierlichen Hinzufügen positiver oder negativer Linien herausfinden.
Löschen Sie die Aktienkursdaten von NIKKEI225 mit 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
2017-10-25,21900.13,21921.36,21648.35,21707.62,1258339712.0
...
Verwenden Sie den folgenden Code, um das Verhältnis von Yang-Yang, Yin-Yang, Yang-Yin und Yin-Yin herauszufinden.
import pandas as pd
import numpy as np
nikkei_225 = pd.read_csv('NIKKEI225.csv').set_index('Date').sort_index()
open_list = nikkei_225['Open'].tolist()
close_list = nikkei_225['Close'].tolist()
diff_list = np.array(close_list) - np.array(open_list)
posiposi = 0
posinega = 0
negaposi = 0
neganega = 0
for i in range(len(diff_list)-1):
if diff_list[i]>=0 and diff_list[i+1]>=0:
posiposi = posiposi + 1
elif diff_list[i]>=0 and diff_list[i+1]<0:
posinega = posinega + 1
elif diff_list[i]<0 and diff_list[i+1]>=0:
negaposi = negaposi + 1
else:
neganega = neganega + 1
print(posiposi, posinega, negaposi, neganega)
2014-10-30_2017-10-31 Mit 735 Aktien Yangyang = 170 Fälle Yang Yin = 195 Fälle Yinyang = 195 Fälle Schatten = 175 Fälle Getroffen.
Als das,
Das Ergebnis war das. Ich dachte, es gäbe viel Sonnenschein und Schatten, aber ich entfernte es. Aber es ist asymmetrisch, also werde ich es versuchen.
Wenn der heutige Nikkei225 eine positive Linie ist, ist es morgen eher eine negative als eine positive Linie. 1357NF Kaufen Sie einen Double Inverse Close und verkaufen Sie ihn Close
Wenn der heutige Nikkei225 eine versteckte Linie ist, ist morgen eher eine positive Linie als die von morgen. 1358 Kaufen Sie doppeltes Nikkei Leva zu einem engen Preis und verkaufen Sie zu einem engen Preis
Wiederholen Sie dies. Kurz gesagt, wenn es heute eine positive Linie ist, ist es morgen eine negative Linie, und wenn es heute eine negative Linie ist, ist es morgen eine positive Linie. Ist das ein Systemhandel?
Vom 2017-11-01 bis zum 2020-07-28 habe ich versucht, den Fall zu simulieren, dass Kauf und Verkauf mit dem oben genannten Kauf- und Verkaufsprogramm jedes Mal um 10.000.000 Yen wiederholt werden. Die Handelsgebühr wurde für eine Hin- und Rückfahrt auf 2026 Yen festgesetzt. Der Code ist unten.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
nikkei225 = pd.read_csv('NIKKEI225.csv').set_index('Date').sort_index()
n1357 = pd.read_csv('1357.csv').set_index('Date').sort_index()
n1358 = pd.read_csv('1358.csv').set_index('Date').sort_index()
nikkei225_open_list = nikkei225['Open'].tolist()
nikkei225_close_list = nikkei225['Close'].tolist()
nikkei225_diff_list = np.array(nikkei225_close_list) - np.array(nikkei225_open_list)
n1357_open_list = n1357['Open'].tolist()
n1357_close_list = n1357['Close'].tolist()
n1357_diff_list = np.array(n1357_close_list) - np.array(n1357_open_list)
n1358_open_list = n1358['Open'].tolist()
n1358_close_list = n1358['Close'].tolist()
n1358_diff_list = np.array(n1358_close_list) - np.array(n1358_open_list)
x = []
y = []
total_gain = 0
for i in range(len(nikkei225_diff_list)-1):
if nikkei225_diff_list [i]> = 0: # Der heutige Nikkei225 ist eine positive Linie
Kaufen Sie # 1357 für 10 Millionen Yen und verkaufen Sie es zum Schluss
n = int(10000000/n1357_close_list[i])
daily_gain = n1357_diff_list[i+1]*n - 2026
sonst: # Der heutige Nikkei225 ist versteckt
Kaufen Sie # 1358 für 10 Millionen Yen und verkaufen Sie es zum Schluss
n = int(10000000/n1358_close_list[i])
daily_gain = n1358_diff_list[i+1]*n - 2026
total_gain += daily_gain
x.append(i)
y.append(total_gain)
# Handlung
plt.plot(x, y, label="total_gain")
plt.show()
print('total_gain=', total_gain)
Ist das nicht gut?
total_gain= 5633247
In den 33 Monaten vom 2017-11-01 bis zum 2020-07-28 wurden die ursprünglichen 10.000.000 Yen zu 15.633.247 Yen, sodass die jährliche Rate auf 20,48% berechnet wird. Ist es wahr? Ich hätte gerne eine Nachuntersuchung für alle.
Das kumulative Gewinn- / Verlust-Diagramm zeigt eine leichte Zunahme und Abnahme, aber es steigt auf lange Sicht und die Form ist nicht schlecht.
Also werde ich den Studienzeitraum und den Evaluierungszeitraum trennen. Da es sich nicht um ein großes Lernen handelt, ist es nicht erforderlich, den Lernzeitraum und den Bewertungszeitraum zu trennen. Zeichnen wir daher das kumulierte Gewinn- und Verlustdiagramm für den gesamten Zeitraum vom 30.10.2014 bis zum 28.07.2020.
total_gain= 969052
Die kumulierten Gewinne und Verluste sind für den gesamten Zeitraum positiv, aber die Grafik zeigt, dass sich der Verlust in den ersten 700 Tagen vergrößert und in den letzten 700 Tagen erholt hat. Wie siehst du das? Die letzten 700 Tage sollten als Zufall angesehen werden.
Fortsetzung (vielleicht)
Recommended Posts