# Lista de cambios de MQLArticles En este documento se detallan todos los cambios presentes en el repositorio. ## Version (1.31) - 1/03/2026 ### Agregado #### Strategy - Nuevo mqh para construir el string que se usara como filtro #### Indicators - Se agrego el Adx normal y el Wilder (Main y al Pool) ### Modificado #### Strategy - en CStrategyFiter clase base esta clase requeira que se le pase como segundo parametro el nombre del filtro. - La funcion CStrategyFilter::Name ya no es virtual pura.. no se podra sobreescribir. ## Version (1.30) - 26/02/2026 ### Agregado #### Utils - Nueva clase CSetFile en Utils, (inlcluye test). - Nuevo mqh ExtraFcuntions en Utils, este incluye funciones "extra", por ahora solo hay una funcion para desactivar el autotrading (de MT5). #### Strategy - Se agrego una fucnion opcional OnEveryTick para CStrategyFilter (Esta se llama manaulemnte) ### Modificado #### Strategy - Todas las clases de Strategy haran son T osea pueden heredar de clases custom. - Restructuracion de archivos en el Clasificador y Parser de StrategyFilters, nuevo define STRATEGY_FILTER_BASE_CLASS_MIN_PADRE para controlar el "padre" de CStrategyFilter (por ejemplo si se requiere filtros avanzados de noticias). - Optimizacion en CStrategyFilters... ahora cada clase debera de espeicifcar si usa Execute() o OnEveryTick() de lo contrario no se llamara a dichas Funciones, la espricicacion se hace en el constructor. - Se mejoro el lenguaje de CStrategyFIlters ahora soporta comparacion directa con otros filtros - Permitir dejo de ser virtual a hora es una funcion "fija" para modificar el valor use OnEval y modifica m_value_filter, la idea con esto es optimizacion.. para evitar la doble llamada a Permitir().. ahora se cachea el valor.. ### Eliminado #### Strategy - Se quito la sintaxis por * (comodin), ahora se usara #group (macro) max explicado en el README de Strategy\\Drv\\SimpleFilter\\Parser ## Version (1.27) - 14/02/2026 ### Modificado - En todos los eventos se quito el uso de & para valores simples como datetime, int, etc.. en funciones, asi que en vez de const TType& value, se remplazo a const TType value. Debido a dicha modificacion todos las clases herededas de algun eventos tendran que actulizasrse (solo cambiando la firma) Asi que no es un cambio que requiera reformar el codigo. - AutoDelente para las funcoines "limpiadoras" ahora requiere const int reason, quedo deprecado const int& reason. - CDiff, la clase para calcular una distancia.. se "expande", dado que ahora no solo soporta puntos y atr, si no que teoricamente soportara tipos custom, dado que el nuevo diseño de esta clase se enfocara en herencia, (anteriormente era una sola clase con los unicos dos tipos), debido a esto la funcion CreateDiffInstance quedo deprecada, ya fue eliminada, solo esta disponible CreateDiffPtr. ## Version (1.26) - 1/02/2026 ### Modificado - En riskmananget en la funcion para setear el lote este se eliminaba antes de ser removido como logger, lo que causaba que no se elimine dejando un puntero "colgado" en el array.. que podria causar un INVALID_POINTER ## Version (1.25) - 31/01/2026 - Cambio en la deinicializacion global de eventos. ### Agregado - Añadidas las funcion IsActive a CEventsBasic y AccountStatus, esta funcion verifica si las clases estan activas.. util al momento de "desuscribirse" de dichas clases. ### Removido - Anteriormente casi todas las clases que usaban eventos de CAccountGestor o CAllClassEventsBasic tenian como parametro "is global instance" o similares, en esta nueva version se eliminaron ese parametro manteniendo la compatibilidad con la version 1.15, dado que ya no es necesario.. esto se debe que en el destructor de cada clase cada una consulta a su "provedor de eventos" si este esta activo, siendo que si es cierto, entonces se desuscribe, anteriormente no era asi.. cada clase verifica si era una instancia global y recien ahi se desuscribia. - Se elimino la ocultaicon de funciones que hacia la clase CAllClassEventsBasic para "sobre escribir" las funciones AddLogger y RemoveLogger, ahora todo esta limpio. ## Version (1.20) - 29/01/2026 - Cambio completo de arquitectura de eventos, pasamos de que cada clase envie eventos a sus "hijos" a que una sola clase global maneje los eventos.. ### Agregado - Se agrego la clase CAutoPtrCleaner y su instancia global g_ea_cleaner en el archivo Utils\\FA\\AutoDelete.mqh, esta instancia global facilita la autoeliminacion de punteros de cualquier tipo. - Se agrego la clase CEventsBasic encargada de los eventos basicos como OnNewDay, Mon, Week. - Se amplio la linea de herencia ahora las clases que requieran de eventos [OnNewDay, Mon, Week] deberan de heredar de CAllClassEventsBasic. - Se agrego la clase CEmptyClass. - Ahora CAccountGestor hereda de CAllClassEventsBasic. - Ahora en CRiskManagement, como en todas las clases que heredan de CAllClassEventsBasic se debe de especificar si la clase se instancia globalmente.. o forma parte de ella (Esto lo hacen auto las clases). - Se agregaron nuevos tipos de maximas ganancias y perdidas (Maxima ganancia, maxima gananica desde el bajo, y maxima ganancia desde el alto). ### Modificado - Para que cada clase reciba los eventos se debera de regisrar (vs el sistema de add antigo) para cada evento..que se desee recibir en las clases correspondientes. - CLossProfit, se divide en varias clases (ver el README de RM\\LossProfit). - AccountStauts ya no hereda de CManagerBase.. por lo que todas las llamaas a funcione sde dicha clase ya son invalidas.. (AddItemFast, Insert, etc.). ### Eliminado - Se eliminaron los eventos OnNewDay, OnNewWeek, OnNewMonth de CAccountGestor. - AccountStatus ya no elimina los punteros agregados a el.. solo da eventos.