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
La razón de la principal ralentización de MT5 es la imitación del entorno completo de trading. En la gran mayoría de los Asesores Expertos, una simulación tan precisa no es necesaria. Una excelente solución para este tipo de Asesores Expertos sería cambiar a un modo de prueba simplificado, con un simple modelado del entorno de negociación. Sin embargo, no existe tal posibilidad. Pero si escribe su propio probador de estrategias simplificado y lo ejecuta en el modo de cálculos matemáticos, ¡la velocidad de optimización será de fuego! Esto es lo que sugiero que piensen todos los que quieren aumentar drásticamente la velocidad de optimización de EA.
En CStrategy, las operaciones comerciales se realizan directamente a través de CTrade. Es decir, CStrategy no tiene lógica de negociación propia en absoluto. En el Asesor Experto de prueba no vi ninguna otra lógica de negociación que la apertura/cierre de una posición después de N segundos. CStrategy tampoco almacena posiciones históricas, por lo que este ejemplo no es realizable en CStrategy.
CTrade tampoco almacena el histórico, pero eso no nos impidió implementar la variante a través de él.
El hecho de que el código OOP sea más lento que el procedimental no me dice nada. Vayamos al grano: ¿qué métodos de CTrade son un cuello de botella? ¿Por qué? ¿Qué te dice el perfilado de estos métodos? ¿Cómo se identifican las secciones de código lento en el probador?
No he analizado las razones de los frenos de SB, pero no creo que sea OOP, porque MT4Orders también está escrito mediante OOP, aunque sea mínimamente. Tras una petición al BOD, los desarrolladores aceleraron la SB. No sé si han retocado la propia SB o el compilador.
Analizo primero los frenos absolutos y luego los relativos
MetaTrader 5 tiene una excelente función de perfilado de un Asesor Experto sobre datos históricos. Pero, además de que funciona lentamente (en modo visual), el resultado final se proporciona en unidades relativas, es decir, es imposible comparar el rendimiento en términos absolutos.
La razón de la principal ralentización de MT5 es la imitación del entorno completo de trading. En la gran mayoría de los Asesores Expertos, una simulación tan precisa no es necesaria. Una excelente solución para este tipo de Asesores Expertos sería cambiar a un modo de prueba simplificado, con un simple modelado del entorno de negociación. Sin embargo, no existe tal posibilidad. Pero si escribe su propio probador de estrategias simplificado y lo ejecuta en el modo de cálculos matemáticos, ¡la velocidad de optimización será de fuego! Esto es lo que le sugiero que piense para todos aquellos que quieren aumentar drásticamente la velocidad de optimización de EA.
A través de símbolos personalizados puede lograr órdenes de magnitud speedup con simulación completa. En realidad, incluso ahora en el modo beta de símbolos personalizados es posible lograr esto. Lo haré más tarde.
MT4Orders:
¡MQL5 resultó ser más lento que la librería escrita en el mismo MQL5! Empecé a investigar y encontré la razón haciendo esta sustitución
La variante MQL5 del Asesor Experto comenzó a mostrar tal rendimiento.
¡Estúpida sustitución de PositionSelect con PositionGetTicket aumenta la velocidad de backtest en un 7%!
MT4Orders va por detrás del MQL5 puro optimizado al máximo por menos de un porcentaje.
Las plazas se distribuyeron del siguiente modo
He retocado la SB en sí (piezas de la SB utilizado por el Asesor de Expertos) sin cambiar su funcionalidad y versatilidad. Se convirtió no 84%, pero 97%.
Aquellos que utilizan SB, tomar nota de la posibilidad potencial de aceleración.
Resulta interesante comparar el rendimiento del mismo Asesor Experto multidivisa de MT4 convertido de diferentes maneras.
Conversión completa
y conversión artesanal (rápida)
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Asesores Expertos: Spreader
fxsaber, 2016.09.03 11:18 AM.
Resultados de la medición del rendimiento.
Versión completa
Artesanal
El artesanal pierde significativamente. La razón es simple - si quieres series de tiempo rápido, no se puede convertir MT4 series de tiempo de cabeza
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Bibliotecas: CPrice
fxsaber, 2016.08.28 10:36 AM
Mira una opción de este tipo
Puedes, como en MT4, llamar a Open[bar], High[bar], Time[bar], Volume[bar], etc. Y también iHigh(...), iClose(...) y otros.
Es necesario utilizar (no sólo para el monte, sino también para las variantes de pleno derecho) soluciones como esta.
El artesanal pierde significativamente. La razón es simple - si quieres timeseries rápido, no se puede convertir MT4 timeseries de frente.
Conclusión errónea. La razón de los frenos es bastante diferente. Insertemos sólo una línea en cada una de las variantes de MT5
Y medir de nuevo
El full-fledged es un 67% más rápido, ¡el artisanal es un 108% más rápido! En resumen, la diferencia es ahora pequeña - la full-fledged es ~11% más rápida que la artisanal. Ahí, parece, la razón está en la sobrecarga OOP.
Pero eso no es lo principal. ¡Con una línea hemos conseguido acelerar los EAs! Y esto es en el Optimizador, donde Comment no juega ningún papel.
Foro sobre trading, sistemas automatizados de trading y comprobación de estrategias de trading
Bibliotecas: TesterBenchmark
fxsaber, 2017.07.24 14:13
¡trading SB es 1,5 veces más lento que MQL5 puro!
Esto fue escrito en el verano junto con la aplicación SD. ¡Me sorprende que todo sea parejo! ¿O es lógico? ¡Como se puede hablar de super-velocidad del tester cuando casi todos los EAs (usando SB) fallan en velocidad, comen dinero en la Nube, etc.! Aparentemente esto es normal.
Simplifiqué el código fuente desechando el trabajo con History y MT4Orders. Dejé sólo MQL5 puro y SB
Resultado de SB
Resultado de MQL5 puro
¡Todo lo mismo 1,5 veces! Pero a los tontos no les importa, sigamos usando super-SB.
¡Igual 1,5 veces! Pero a los tontos no les importa, sigamos usando el super-SB.
Este es el tipo de ajustes SB
que milagrosamente acelera a los asesores SB. ¿Es complicado?
Francamente hablando, la SB de trading, sin cambiar la lógica de la API, debería reescribirse casi por completo. Cualquier parte de ella es mala.