AiDataGenByLeo/Py/run_training.py

74 lines
2.6 KiB
Python
Raw Permalink Normal View History

2026-03-21 07:28:08 -05:00
# 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
2026-03-26 09:51:21 -05:00
import sys
2026-03-26 11:23:50 -05:00
2026-03-26 09:51:21 -05:00
# nota
# cuando se pasa a .exe hacerlo con todas las dependecias de los otros folders
2026-03-26 15:56:35 -05:00
#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"
2026-03-21 07:28:08 -05:00
#+------------------------------------------------------------------+
#| Funcion principal de ejecucion |
#+------------------------------------------------------------------+
def main():
parser = argparse.ArgumentParser()
# argrumentos requeridos
parser.add_argument('--config', required=True)
parser.add_argument("--results_json", required=True)
2026-03-26 11:23:50 -05:00
parser.add_argument("--lock_bin", required=True)
parser.add_argument('--log_file', required=False, default=None) # opcional
2026-03-21 07:28:08 -05:00
# args
args = parser.parse_args()
2026-03-26 11:23:50 -05:00
# logs
if args.log_file:
2026-03-26 15:56:35 -05:00
log_file = open(args.log_file, "w", encoding="utf-8")
2026-03-26 11:23:50 -05:00
sys.stdout = log_file
sys.stderr = log_file
2026-03-21 07:28:08 -05:00
# Clase comunicador
config_comunicador : dict = {
"path_json" : args.results_json,
"path_bin" : args.lock_bin
}
comunicador : CMqlComunication = CMqlComunication(config_comunicador)
# Cargamos la configuracion
2026-03-28 10:58:07 -05:00
cfg = json.loads(Path(args.config).read_text(encoding="utf-16"))
2026-03-21 07:28:08 -05:00
# Creamos el pipeline de entreminto
ejecutor : CPipelineTraining = CPipelineTraining(
cfg['general'],
cfg['regresion'],
cfg['clasificacion'],
2026-03-24 07:46:54 -05:00
SimpleLogger.CLoggerBase.LOG_ALL,
comunicador
2026-03-21 07:28:08 -05:00
)
# Ejecutamos el entreamiento
if not ejecutor.Execute():
print("Fallo al ejecutar el pipeline")
#+------------------------------------------------------------------+
#| Main |
#+------------------------------------------------------------------+
2026-03-24 10:47:40 -05:00
if __name__ == "__main__":
main()
2026-03-30 09:08:59 -05:00