Discusión sobre el artículo "Optimización paralela con el método de enjambre de partículas (Particle Swarm Optimization)"
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Artículo publicado Optimización paralela con el método de enjambre de partículas (Particle Swarm Optimization):
El presente artículo describimos un modo de optimización rápida usando el método de enjambre de partículas, y presentamos una implementación en MQL lista para utilizar tanto en el modo de flujo único dentro de un EA, como en el modo paralelo de flujo múltiples como un complemento ejecutado en los agentes locales del simulador.
Desde un punto de vista algorítmico, el método de PSO es relativamente sencillo. La idea principal consiste en generar un conjunto de "partículas" virtuales en el espacio de los parámetros de entrada del asesor experto. Después, las partículas se mueven y modifican su velocidad dependiendo de las métricas comerciales del asesor experto en los puntos correspondientes en el espacio. El proceso se repite en multitud de ocasiones, hasta que las métricas dejen de mejorar. A continuación, mostramos el pseudocódigo del algoritmo:
Particle Swarm Optimization Pseudo-Code
Según este, cada partícula tiene la posición, velocidad y memoria actuales de su "mejor" punto en el pasado. Entendemos por "mejor" el punto (el conjunto de parámetros de entrada del experto) donde se ha conseguido el mejor valor de la función objetivo para esta partícula. Vamos a describir esto en una clase.
El tamaño total de las matrices es igual a la dimensión del espacio de optimización, es decir, al número de parámetros optimizables del asesor (pasados al constructor). Como la optimización presupone, por defecto, que cuanto mayor sea el valor de la función objetivo, mejor será el valor de la función objetivo, vamos a inicializar el campo bestValue con el número mínimo posible -DBL_MAX. Como criterio de valoración del experto, suele intervenir una de las métricas comerciales (el beneficio, la rentabilidad, el ratio de Sharpe, etcétera). Si realizamos la optimización utilizando un parámetro cuyos valores inferiores se consideran más convenientes (por ejemplo la reducción), podremos realizar las transformaciones adecuadas para maximizar los valores opuestos.
Las matrices y variables se han hecho públicas para simplificar el acceso y su código de recálculo. Respetando estrictamente los principios de la POO, deberíamos ocultar estas utilizando el modificador private y describir los métodos de lectura y modificación.
Autor: Stanislav Korotky