En los lenguajes de programación modernos existen muchas funciones integradas que le permiten evitar la duplicación de código y, por tanto, minimizar el número de errores y aumentar la productividad del programador. En MQL5, dichas herramientas incluyen las ya conocidas funciones, tipos de objeto que admiten herencia (clases y estructuras), macros de preprocesador y la capacidad de incluir archivos. Pero esta lista estaría incompleta sin las plantillas.
Una plantilla es una definición genérica especialmente diseñada de una función o tipo de objeto a partir de la cual el compilador puede generar automáticamente instancias de trabajo de esa función o tipo de objeto. Las instancias resultantes contienen el mismo algoritmo pero operan sobre variables de distinto tipo, correspondientes a las condiciones de uso específicas de la plantilla en el código fuente.
Para los que conocen C++, señalamos que las plantillas de MQL5 no admiten muchas características de las plantillas de C++, en particular:
Por un lado, esto reduce el potencial de las plantillas en MQL5, pero, por otro, simplifica el aprendizaje del material para quienes no estén familiarizados con estas tecnologías.