J'essaie de compléter l'histoire par elle-même dans cet article, mais si vous lisez ce qui suit mon article, le déroulement de l'histoire deviendra plus clair.
Cette fois, je vais essayer de prédire si la fourchette de prix (prix discount-prix de clôture) du lendemain de NIKKEI 225 est positive ou négative par une méthode différente de l'apprentissage automatique. Le point auquel il faut faire attention est que lorsque vous regardez le graphique avec des bougies, il arrive assez souvent que la ligne positive continue pendant un certain temps et la ligne négative continue. «Trois jours consécutifs» ou «quatre jours consécutifs».
Si aujourd'hui est une ligne positive et que la probabilité de devenir une ligne positive demain est différente de la probabilité de devenir une ligne négative, si la plus grande probabilité est utilisée comme valeur prédite, la possibilité d'atteindre la prédiction augmentera.
Immédiatement, découvrons le ratio de NIKKEI 225 pour ajouter en continu des lignes positives ou négatives.
Déposez les données de cours de l'action NIKKEI225 avec 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
...
Utilisez le code ci-dessous pour connaître le ratio yang yang, yin yang, yang yin, yin yin.
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 Avec 735 actions Yangyang = 170 cas Yang Yin = 195 cas Yinyang = 195 cas Teinte = 175 caisses Rencontré.
Que ça,
Le résultat était que. Je pensais qu'il y avait beaucoup de soleil et d'ombre, mais je l'ai enlevé. Mais c'est asymétrique, alors je vais l'essayer.
Si le Nikkei225 d'aujourd'hui est une ligne positive, il est plus probable que demain une ligne négative soit une ligne positive. 1357NF Achetez une double clôture inverse et vendez-la close
Si le Nikkei225 d'aujourd'hui est une ligne cachée, demain sera plus susceptible d'être une ligne positive que celle de demain. 1358 Acheter le double Nikkei Leva à un prix de clôture et vendre à un prix de clôture
Répétez ceci. Bref, si c'est une ligne positive aujourd'hui, c'est une ligne négative demain, et si c'est une ligne négative aujourd'hui, c'est une ligne positive demain. Est-ce un commerce de système?
Du 01/11/2017 au 28/07/2020, j'ai essayé de simuler le cas de la répétition de l'achat et de la vente de 10000000 yens à chaque fois avec le schéma d'achat et de vente ci-dessus. Les frais de négociation ont été fixés à 2026 yens pour un aller-retour. Le code est ci-dessous.
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: # Le Nikkei225 d'aujourd'hui est une ligne positive
Achetez le n ° 1357 pour 10 millions de yens et vendez-le à la clôture
n = int(10000000/n1357_close_list[i])
daily_gain = n1357_diff_list[i+1]*n - 2026
else: # Le Nikkei225 d'aujourd'hui est caché
Achetez le n ° 1358 pour 10 millions de yens et vendez-le à la clôture
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)
# terrain
plt.plot(x, y, label="total_gain")
plt.show()
print('total_gain=', total_gain)
N'est-ce pas bon!
total_gain= 5633247
Au cours des 33 mois allant du 01/11/2017 au 28/07/2020, les 10000000 yens d'origine sont devenus 15 633 247 yens, le taux annuel est donc calculé à 20,48%. Est-ce vrai? J'aimerais que tout le monde refasse le test.
Le graphique des profits / pertes cumulés montre une augmentation et une diminution graduelles, mais il augmente à long terme et la forme n'est pas mauvaise.
Je vais donc séparer la période d'étude et la période d'évaluation. Puisqu'il ne s'agit pas d'un grand apprentissage, il ne sera pas nécessaire de séparer la période d'apprentissage et la période d'évaluation séparément, donc traçons le graphique cumulatif des profits et des pertes pour toute la période du 2014-10-30 au 2020-07-28.
total_gain= 969052
Les profits et pertes cumulés sont positifs pour toute la période, mais le graphique montre que la perte a augmenté dans la première moitié de 700 jours et s'est rétablie dans la seconde moitié de 700 jours. Comment voyez-vous cela? Les 700 derniers jours devraient être considérés comme une simple coïncidence.
Continué (peut-être)
Recommended Posts