forked from nique_372/MQLArticles
201 lines
10 KiB
Markdown
201 lines
10 KiB
Markdown
# Lista de cambios de MQLArticles
|
|
En este documento se detallan todos los cambios presentes en el repositorio.
|
|
|
|
|
|
## Version (1.38) - (31/07/2026-4/08/2026)
|
|
|
|
### Indicadores
|
|
- Ahora se usa CHashMapFast en vez de CDistSValue para el pool (key a handle)
|
|
|
|
### Rendimiento
|
|
- Con todos esots cambios el rendimiento en el EA base de orderblocks a aumentado en 150ms en mis pruebas.,
|
|
mi idea es, como es costrumbre con el ecositema TSN maximizar la velcidad al maximo todo lo que me de mis conocimientos
|
|
con el fin de tener las libs mas rapidas de todo mql5... esta lib como es la base
|
|
del ecositema TSN seguira en constante mejora.
|
|
|
|
### RM
|
|
- Ahora CTicketsInfo pasa a llamar CTicketsTable ademas usa intermnate ya no una implemacnion custom si no usa CHashMapFast
|
|
con hashing de ulong fibbo (incluye benchmakrt, la version previa aun esta ahi no la elimine pero ya no se usa)
|
|
- Cambio en CAccountStatus ahora la funcion OnClosePosition el paramtro global_pos_index ahora es del tipo int (ya no es int16_t)
|
|
- Correciones de bugs en DeleteByIndex en la nueva version de CTickesTable (la nueva implementada), fomula para
|
|
obtener el bit pos estaba mal..
|
|
- Correciones en risk management bases se usaba count-1 (del hashmap) para obtener la uiltima posicion
|
|
pero como tal nosotros no usabamso eso si no la psoicon pos idex del hashmap tabla asi que cuando habia nueva posicon y esta
|
|
se cerraba el risk manngete no llegabaa a elimianral por lo qeu el bot que depende de este ya no habria trader (bug solucionado)
|
|
|
|
### PosManagement
|
|
- Mejoras en velocidad para Breakeven\ConditionalPartials\Partials, ahora para los arrays base y a eliminar se usa un sistema
|
|
de reserva + tamaño explicito via integer, con crecimiento doble... y las eliminaciones ahora son o(1)
|
|
swap simpe (en vez de bucle)
|
|
- En Breakeven se mejoro el uso de params para el factory ahora es array de tamaño fijo y no dinamico
|
|
tambien nuevo campo filled.. para no solo comparar por tamaño del array
|
|
|
|
|
|
## Utils
|
|
- Añadido el mqh RegService
|
|
- Añadido TFI (valor enumtimeframe a tabla de 32 entradas, util para mapearlo con strings etc.. via pfh)
|
|
- En Grapich Objects ciertas funciones de dibujados en su parametro string ahora es const string&
|
|
|
|
## Version (1.37) - 19/07/2026
|
|
|
|
### Utils
|
|
- EnumStr ahora usa Perfect Hash generado por SimPHash
|
|
- Se movio el tema de DictT\Dict a un repo especial para colecciones y hashmaps.. (etc..)
|
|
|
|
## Version (1.36) - 28/05/2026
|
|
|
|
## Licencia
|
|
- Se agregó el archivo LICENSE al repositorio (Licencia NL-NC del ecosistema TSN).
|
|
- Esta licencia es efectiva a partir del 28/05/2026 17:32:00 GMT y aplica a todo
|
|
el código presente y futuro del repositorio, incluyendo versiones, tags y forks
|
|
realizados a partir de esta fecha.
|
|
- Al continuar usando, clonando o forkeando este repositorio, aceptas automáticamente
|
|
los términos de la licencia NL-NC. Si no estás de acuerdo, deja de usar el código.
|
|
- Términos completos: https://forge.mql5.io/nique_372/TSNReposIndex/src/branch/main/Licenses/LICENSE-NL-NC.md
|
|
|
|
## Cambio en el codigo
|
|
|
|
### RM
|
|
- Se separo en otro archivo el modulo de CTIcksInfo ademas se elimino la taba de is filled y el array de posciioens y hashes ahora es de tamaño fijo meidantes defines.
|
|
- Breaking change de CAccountGestor ahora OnOpenClosePosition se divide en dos funciones OnOpenPosition y OnClosePosition
|
|
- Mejoras en RiskManagement ahora este ya no alcemna directasmnte las posiciones si no qeu solo almacena indices de g_account_positions... el array es de tamaño fidjo
|
|
- Se agregaron mas funciones a la struct CTickesInfo (3)
|
|
|
|
### Gestion de posiciones
|
|
- Todos los modulos de gestion de posiciones actulizados a las ultimas versiones.
|
|
|
|
### Examples
|
|
- Correcion del panel de breakeven
|
|
|
|
### Utils
|
|
- Nuevos enusm agregados a EnumReg
|
|
- Se actulizo la clase de CAutoCleaner en la parte final de liberacion de arrays
|
|
- Se ha mejorado y optimizado la implementacino de tfmangeer
|
|
- CEncrypt en su metodo SetAleatoryKey ahora soporta caracteres ushort
|
|
### Indicators Cts
|
|
- Nueva funcion agregada para limpiar completamente la clase
|
|
|
|
|
|
## Añadidos
|
|
- Se añadieron mas bots en el FOlder Ob\\Bots\\ ahora se añadio un bot de ob con swing sweep filter para el cierre parcial condicional
|
|
|
|
|
|
|
|
## Version (1.35) - 29/04/2026
|
|
## Utils
|
|
- Se agrego el modulo ErrDescription
|
|
- Se agrego el moduelo EnumReg
|
|
## RM
|
|
- Se elimino el parametro type de la funcion "CalculateSLWithLot" en CGetLote
|
|
|
|
|
|
## Version (1.34) - 10/04/2026
|
|
### Utils
|
|
- Nuevos modulos Dict, EnumStr, StrMath, y FolderOps.
|
|
- Correciones en modulos Encrypt y Decrypt.
|
|
|
|
## Version (1.33) - 26/03/2026
|
|
### Utils
|
|
- Se ha agregado el modulo Encrypt para encryptar y desencriptar textos y archivos
|
|
- Nuevas funciones en Files para obtener extension, etc.
|
|
|
|
## Version (1.32) - 19/03/2026
|
|
### RM
|
|
- Se ha agregado la compatibilidad de maximas perdidas\ganancias con otros EAs
|
|
- Se ha quitado la referncia en la funcion superated
|
|
- Nuevas funciones IsSuperates en CRiskManagementBase
|
|
|
|
#### Utils
|
|
- Manager base renovado, la clase CManagerBaseSimple, se le han agregado mas hooks, y se cambio el sistema de eventos.
|
|
|
|
## 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.
|