| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- from datetime import datetime, timedelta
- import ast
- import os
- from Processing import *
- import importlib
- import sys
- import re
- module_name = "Global"
- if len(sys.argv) != 2:
- print("Usage: python Entrainement.py <Numerodu global>")
- sys.exit(1)
- try:
- parametre = int(sys.argv[1])
- module_name = "Global_" + str(parametre)
-
- except ValueError:
- print("Le paramètre doit être un entier.")
- sys.exit(1)
- try:
- imported_module = importlib.import_module(module_name)
- except ImportError:
- print(f"Aucun fichier {module_name}")
- sys.exit(1)
- nom_dossier = "res_" + str(parametre)
- def parse_float_array(string):
- parts = string.split(':')
- nom = parts[0].strip()
- float_array = ast.literal_eval(parts[1].strip())
- return float_array
-
- def verif(dateIN):
-
- valeurs_ponderees =[]
- valeurs_date = []
- with open(dateIN, "r") as file:
- dates = file.readlines()
- for date in dates:
- date = date.strip()
- ponde,da = lirefichier(date)
- valeurs_ponderees.append(ponde)
- valeurs_date.append(da)
- Atest = os.listdir(nom_dossier)[-5:]
- r=[]
- for entest in Atest:
-
- Portfeuille = imported_module.PortefeuilleInit
- pourc = 0
- Action = [0] * 40
-
- with open(nom_dossier+"/"+ entest, "r") as file:
- file.readline()
- file.readline()
- file.readline()
- file.readline()
- file.readline()
- file.readline()
- file.readline()
- weight1 = parse_float_array(file.readline())
- weight2 = parse_float_array(file.readline())
- weight3 = parse_float_array(file.readline())
- weight4 = parse_float_array(file.readline())
-
- couche1 = parse_float_array(file.readline())
- couche2 = parse_float_array(file.readline())
- couche3 = parse_float_array(file.readline())
- couche4 = parse_float_array(file.readline())
- for date in range(len(dates)):
- 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)
- for i in range(0,40):
- 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)
- pourc = verification(valeurs_date[date],Action,Portfeuille,imported_module.PortefeuilleInit)
- r.append(pourc)
- return r
- def resPourcen():
- return len(os.listdir(nom_dossier))/1000
-
- def moyen():
- fichiers = os.listdir(nom_dossier)
- i=0
- for fichier in fichiers:
- i+=float(fichier)
- return i / len(fichiers)
-
- def fc_ma():
- fichiers = os.listdir(nom_dossier)
- i = float(fichiers[0])
- for fichier in fichiers:
- if float(fichier) > i :
- i =float(fichier)
- return i
-
-
- def operation_sur_resultat(liste1, liste2, liste3, liste4, liste5):
- # Vérifier si toutes les listes ont la même longueur
- if not all(len(liste) == len(liste1) for liste in [liste2, liste3, liste4, liste5]):
- raise ValueError("Toutes les listes doivent avoir la même longueur")
- # Utiliser une compréhension de liste pour additionner les éléments correspondants
- somme_elements = [a + b + c + d + e for a, b, c, d, e in zip(liste1, liste2, liste3, liste4, liste5)]
- # Soustraire 5, diviser par 130 et multiplier par 20
- resultat_final = [(x - 5) / 130 * 20 for x in somme_elements]
- return resultat_final
- pourcent=resPourcen()
- moyen = moyen()
- ma=fc_ma()
- V1 = verif("dateV1.txt")
- V2 = verif("dateV2.txt")
- V3 = verif("dateV3.txt")
- V4 = verif("dateV4.txt")
- V5 = verif("dateV5.txt")
- jour20 = operation_sur_resultat(V1,V2,V3,V4,V5)
- print(f"pourcentage : {pourcent}, moyen : {moyen}, max : {ma}")
- print(jour20)
|