live.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import yfinance as yf
  2. from datetime import datetime, timedelta
  3. import ast
  4. import os
  5. from Processing import *
  6. import importlib
  7. import sys
  8. import re
  9. def get_stock_price(stock_symbol):
  10. try:
  11. # Récupérer les données du marché pour le symbole d'action donné
  12. stock_data = yf.Ticker(stock_symbol)
  13. # Récupérer les données historiques avec la date actuelle comme date de fin
  14. stock_info = stock_data.history(period='1d')
  15. # Obtenir la valeur actuelle de l'action (le dernier prix de clôture)
  16. current_price = stock_info['Close'].iloc[-1]
  17. return current_price
  18. except Exception as e:
  19. return f"Une erreur s'est produite : {str(e)}"
  20. def lireNBCouche(filepath):
  21. print(filepath)
  22. try:
  23. with open("filepath, 'r') as file:
  24. # Lire les lignes du fichier
  25. lines = file.readlines()
  26. # Initialiser les variables pour stocker les trois nombres
  27. nb1 = None
  28. nb2 = None
  29. nb3 = None
  30. # Parcourir chaque ligne pour extraire les nombres
  31. for line in lines:
  32. if line.startswith('NB1:'):
  33. nb1 = int(line.split(':')[-1].strip())
  34. elif line.startswith('NB2:'):
  35. nb2 = int(line.split(':')[-1].strip())
  36. elif line.startswith('NB3:'):
  37. nb3 = int(line.split(':')[-1].strip())
  38. print("ouidd")
  39. # Vérifier si tous les nombres ont été trouvés
  40. if nb1 is not None and nb2 is not None and nb3 is not None:
  41. print("oui")
  42. return nb1, nb2, nb3, 40
  43. else:
  44. print("non")
  45. raise ValueError("Les nombres NB1, NB2 et NB3 ne sont pas tous présents dans le fichier.")
  46. except Exception as e:
  47. print("nnnn")
  48. return f"Une erreur s'est produite : {str(e)}"
  49. def live():
  50. valeurs_ponderees =[]
  51. #valeurs_ponderees = Recupere les 30 derniere valeurs * 41
  52. #valeurs=RecupereLes40valeurs()
  53. Atest = os.listdir("Atest")
  54. for entest in Atest:
  55. Fichier = "Atest/" + entest
  56. nbCouche1,nbCouche2,nbCouche3,nbCouche4 = lireNBCouche(Fichier)
  57. resAchat1, resAchat2, resAchat3, resVente = lireAchat(Fichier)
  58. weight1,weight2,weight3,weight4 = lirePoids(Fichier)
  59. couche1, couche2, couche3, couche4 = lireCouche(Fichier)
  60. Portfeuille = lirePortefeuille(Fichier)
  61. Action = lireAction(Fichier)
  62. for date in range(len(dates)):
  63. res = processing(valeurs_ponderees,weight1,weight2,weight3,weight4,couche1,couche2,couche3,couche4,nbCouche1,nbCouche2,nbCouche3,nbCouche4)
  64. for i in range(0,40):
  65. Action[i],Portfeuille=evaluation(res[i], valeurs_date[date][i], Action[i], Portfeuille,resAchat1,resAchat2,resAchat3,resVente,Achat1,Achat2,Achat3,Frais)
  66. ecrirePortefeuille(Fichier)
  67. ecrireActions(Fichier)
  68. ecrireResultat(Fichier)
  69. live()