verif.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. from datetime import datetime, timedelta
  2. import ast
  3. import os
  4. from Processing import *
  5. import importlib
  6. import sys
  7. import re
  8. module_name = "Global"
  9. if len(sys.argv) != 2:
  10. print("Usage: python Entrainement.py <Numerodu global>")
  11. sys.exit(1)
  12. try:
  13. parametre = int(sys.argv[1])
  14. module_name = "Global_" + str(parametre)
  15. except ValueError:
  16. print("Le paramètre doit être un entier.")
  17. sys.exit(1)
  18. try:
  19. imported_module = importlib.import_module(module_name)
  20. except ImportError:
  21. print(f"Aucun fichier {module_name}")
  22. sys.exit(1)
  23. nom_dossier = "res_" + str(parametre)
  24. def parse_float_array(string):
  25. parts = string.split(':')
  26. nom = parts[0].strip()
  27. float_array = ast.literal_eval(parts[1].strip())
  28. return float_array
  29. def verif(dateIN):
  30. valeurs_ponderees =[]
  31. valeurs_date = []
  32. with open(dateIN, "r") as file:
  33. dates = file.readlines()
  34. for date in dates:
  35. date = date.strip()
  36. ponde,da = lirefichier(date)
  37. valeurs_ponderees.append(ponde)
  38. valeurs_date.append(da)
  39. Atest = os.listdir(nom_dossier)[-5:]
  40. r=[]
  41. for entest in Atest:
  42. Portfeuille = imported_module.PortefeuilleInit
  43. pourc = 0
  44. Action = [0] * 40
  45. with open(nom_dossier+"/"+ entest, "r") as file:
  46. file.readline()
  47. file.readline()
  48. file.readline()
  49. file.readline()
  50. file.readline()
  51. file.readline()
  52. file.readline()
  53. weight1 = parse_float_array(file.readline())
  54. weight2 = parse_float_array(file.readline())
  55. weight3 = parse_float_array(file.readline())
  56. weight4 = parse_float_array(file.readline())
  57. couche1 = parse_float_array(file.readline())
  58. couche2 = parse_float_array(file.readline())
  59. couche3 = parse_float_array(file.readline())
  60. couche4 = parse_float_array(file.readline())
  61. for date in range(len(dates)):
  62. res = processing(valeurs_ponderees[date],weight1,weight2,weight3,weight4,couche1,couche2,couche3,couche4,imported_module.nbCouche1,imported_module.nbCouche2,imported_module.nbCouche3,imported_module.nbCouche4)
  63. for i in range(0,40):
  64. Action[i],Portfeuille=evaluation(res[i], valeurs_date[date][i], Action[i], Portfeuille,imported_module.resAchat1,imported_module.resAchat2,imported_module.resAchat3,imported_module.resVente,imported_module.Achat1,imported_module.Achat2,imported_module.Achat3,imported_module.Frais)
  65. pourc = verification(valeurs_date[date],Action,Portfeuille,imported_module.PortefeuilleInit)
  66. r.append(pourc)
  67. return r
  68. def resPourcen():
  69. return len(os.listdir(nom_dossier))/1000
  70. def moyen():
  71. fichiers = os.listdir(nom_dossier)
  72. i=0
  73. for fichier in fichiers:
  74. i+=float(fichier)
  75. return i / len(fichiers)
  76. def fc_ma():
  77. fichiers = os.listdir(nom_dossier)
  78. i = float(fichiers[0])
  79. for fichier in fichiers:
  80. if float(fichier) > i :
  81. i =float(fichier)
  82. return i
  83. def operation_sur_resultat(liste1, liste2, liste3, liste4, liste5):
  84. # Vérifier si toutes les listes ont la même longueur
  85. if not all(len(liste) == len(liste1) for liste in [liste2, liste3, liste4, liste5]):
  86. raise ValueError("Toutes les listes doivent avoir la même longueur")
  87. # Utiliser une compréhension de liste pour additionner les éléments correspondants
  88. somme_elements = [a + b + c + d + e for a, b, c, d, e in zip(liste1, liste2, liste3, liste4, liste5)]
  89. # Soustraire 5, diviser par 130 et multiplier par 20
  90. resultat_final = [(x - 5) / 130 * 20 for x in somme_elements]
  91. return resultat_final
  92. pourcent=resPourcen()
  93. moyen = moyen()
  94. ma=fc_ma()
  95. V1 = verif("dateV1.txt")
  96. V2 = verif("dateV2.txt")
  97. V3 = verif("dateV3.txt")
  98. V4 = verif("dateV4.txt")
  99. V5 = verif("dateV5.txt")
  100. jour20 = operation_sur_resultat(V1,V2,V3,V4,V5)
  101. print(f"pourcentage : {pourcent}, moyen : {moyen}, max : {ma}")
  102. print(jour20)