forked from nique_372/AiDataGenByLeo
74 lines
No EOL
2.6 KiB
Python
74 lines
No EOL
2.6 KiB
Python
# Copyright 2026, Niquel Mendoza | Leo.
|
|
# https://www.mql5.com/es/users/nique_372
|
|
# trainer_regression.py
|
|
|
|
#+------------------------------------------------------------------+
|
|
#| Imports |
|
|
#+------------------------------------------------------------------+
|
|
from final_trainer import CPipelineTraining
|
|
from final_trainer import SimpleLogger
|
|
from final_trainer import CMqlComunication
|
|
import argparse
|
|
import json
|
|
from pathlib import Path
|
|
import sys
|
|
|
|
|
|
|
|
# nota
|
|
# cuando se pasa a .exe hacerlo con todas las dependecias de los otros folders
|
|
#pyinstaller --onefile AiDataGenByLeo\Py\run_training.py
|
|
#$env:PYTHONPATH = "C:\Users\leoxd\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Shared Projects;C:\Users\leoxd\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Shared Projects\AiDataGenByLeo\Py"
|
|
#+------------------------------------------------------------------+
|
|
#| Funcion principal de ejecucion |
|
|
#+------------------------------------------------------------------+
|
|
def main():
|
|
parser = argparse.ArgumentParser()
|
|
|
|
# argrumentos requeridos
|
|
parser.add_argument('--config', required=True)
|
|
parser.add_argument("--results_json", required=True)
|
|
parser.add_argument("--lock_bin", required=True)
|
|
parser.add_argument('--log_file', required=False, default=None) # opcional
|
|
|
|
# args
|
|
args = parser.parse_args()
|
|
|
|
# logs
|
|
if args.log_file:
|
|
log_file = open(args.log_file, "w", encoding="utf-8")
|
|
sys.stdout = log_file
|
|
sys.stderr = log_file
|
|
|
|
# Clase comunicador
|
|
config_comunicador : dict = {
|
|
"path_json" : args.results_json,
|
|
"path_bin" : args.lock_bin
|
|
}
|
|
|
|
comunicador : CMqlComunication = CMqlComunication(config_comunicador)
|
|
|
|
# Cargamos la configuracion
|
|
cfg = json.loads(Path(args.config).read_text(encoding="utf-16"))
|
|
|
|
# Creamos el pipeline de entreminto
|
|
ejecutor : CPipelineTraining = CPipelineTraining(
|
|
cfg['general'],
|
|
cfg['regresion'],
|
|
cfg['clasificacion'],
|
|
SimpleLogger.CLoggerBase.LOG_ALL,
|
|
comunicador
|
|
)
|
|
|
|
# Ejecutamos el entreamiento
|
|
if not ejecutor.Execute():
|
|
print("Fallo al ejecutar el pipeline")
|
|
|
|
|
|
#+------------------------------------------------------------------+
|
|
#| Main |
|
|
#+------------------------------------------------------------------+
|
|
if __name__ == "__main__":
|
|
main()
|
|
|
|
|