Ayuda de MetaEditorDesarrollo de programasAdministración intelectual

Administración intelectual

Para que el proceso de desarrollo de programas sea cómodo, el MetaEditor ofrece al usuario diferentes recursos para conseguirlo: desde la sustitución automática de los nombres y descripciones de las funciones hasta marcadores y atajos de teclado. Dichos medios permiten acelerar el proceso de escritura del código, navegar de forma cómoda y evitar la aparición de errores.

Este apartado describe las siguientes funciones:

Usted puede cancelar cualquier cambio del código mediante la ejecución del comando "Deshacer Deshacer" en el menú "Editar" o en la barra de herramientas "Estándar", o pulsando la combinación de teclas "Ctrl+Z".

Sustitución automática de los nombres de las funciones #

Cuando usted escribe el código del programa, el MetaEditor automáticamente sugiere posibles opciones de sustitución para funciones incorporadas y definidas por el usuario, constantes, variables, miembros de clase, palabras clave, etcétera. Esto acelera la escritura del código. Por ejemplo, tan pronto como ingrese las primeras letras del nombre de una función, se abrirá inmediatamente una lista de funciones con los nombres adecuados. Seleccione la opción apropiada con las flechas en el teclado y presione "Enter":

Lista de nombres

Si la lista de opciones es demasiado grande, escriba algunas letras más del nombre de la función. Para llamar a la lista de forma manual, haga clic en "Lista de nombres Lista de nombres" en el menú "Editar" o "Ctrl+Space" después de introducir los primeros símbolos del nombre.

Información sobre parámetros #

Podrá ver la signatura de la función correcta al escribir el código, sin abrir la referencia del idioma. Para hacer esto, coloque el cursor después del paréntesis de apertura, con el que comienza la descripción de los parámetros de la función, y luego haga clic en "Información sobre parámetros Información sobre los parámetros" en el menú "Editar" o "Ctrl+Shift+Space". La información sobre los parámetros y el tipo del valor de retorno de la función se mostrará en forma de pistas emergentes:

Información sobre parámetros

En la imagen de arriba se muestra la siguiente información para la función:

  • [1 de 2] – significa que la función tiene opciones de llamada, con diferentes parámetros. Para conmutar entre ellas, use las flechas en el teclado o clique con el botón izquierdo del ratón sobre la línea de la pista.
  • bool – indica el tipo del valor devuelto por la función.
  • ObjectSetInteger – nombre de la función.
  • (long chart_id, ... ) – enumeración de posibles parámetros de la función, antes de cada parámetro se indica su tipo (en este caso – "long"). El parámetro sobre el que está posicionado el cursor en este momento se muestra en negrita.

Ir a definición #

Esta herramienta nos permite navegar rápidamente hasta la definición (implementación) del tipo o elemento de clase seleccionado. Coloque el cursor sobre su nombre y pulse "Ir a definición Ir a definición" en el menú contextual o "Alt+G". Además, si la definición se encuentra en otro archivo, este archivo se abrirá y el cursor se colocará en la posición correspondiente.

La función también permite navegar hasta los archivos de inclusión. Para ello, coloque el cursor en cualquier lugar de la línea donde se declara (directiva #include) y ejecute el comando anterior.

Ir a anuncio #

Esta herramienta nos permite navegar rápidamente hasta la declaración de una variable o miembro de clase. Coloque el cursor sobre el nombre del artículo y pulse "Ir a anuncio" en el menú contextual. Además, si la declaración se encuentra en otro archivo, este archivo se abrirá y el cursor se pondrá en la posición correspondiente.

Lista de funciones #

Esta herramienta le permitirá ver una lista de todas las funciones declaradas en el archivo actual. Para abrir la lista, haga clic en "Lista de funciones Lista de funciones" en el menú "Editar" o "Alt+M".

Lista de funciones

En los corchetes a la derecha del nombre de la función se indican sus parámetros. Para ir a la función, haga clic en su nombre en la lista. Cada tipo de función tiene su icono en la lista:

  • Función – función.
  • Función de manejo de eventos – función de manejo de eventos (On*);
  • Método público de clase – método público de clase (público).
  • Método protegido de clase – método protegido de clase (protected).
  • Método privado de clase – método privado de clase (private).

Insertar comentarios #

Para facilitar el trabajo con comentarios en el código del programa en el menú "Editar" y en la barra de herramientas "Estándar" disponemos de una serie de funciones a este propósito:

  • Encabezado de la función Encabezado de la función – insertar el campo hecho para el comentario;
  • Comentario en bloque Comentario en bloque – insertar el símbolo del comentario en línea;
  • Comentar líneas Comentar líneas – insertar comentarios "//" al principio de cada línea seleccionada;
  • No comentar líneas No comentar líneas – quitar comentarios "//" del inicio de cada línea seleccionada.

El comando "Comentario en bloqueComentario en bloque" (Ctrl+/) inserta en la posición actual del cursor los símbolos del comentario en línea:

//---

El comando "Encabezado de la funciónEncabezado de la función" (Ctrl+.) inserta en la posición actual del cursor una plantilla para comentar la función:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

Posibilidades adicionales de edición de código #

Usted puede mover fácilmente fragmentos de código de una parte del programa a otra. Para hacer esto, seleccione el fragmento y luego arrástrelo a la posición deseada (Drag'n'Drop").

En el submenú "Adicional" del menú "Editar" está disponible una serie de comandos que simplifican la edición del código fuente:

  • Aumentar la sangría de las líneas Aumentar las líneas de sangría – inserte tres espacios (símbolo de tabulación) al comienzo de las filas seleccionadas. Para introducir espacios en una línea, ponga el cursor al principio de la misma. Para introducir espacios en varias líneas, selecciónelas por completo.
  • Disminuir la sangría de las líneas Disminuir las líneas de sangría – eliminar tres espacios (símbolo de tabulación) al comienzo de varias líneas seleccionadas. Una acción análoga se realiza con la combinación de teclas Tab+Shift.
  • Todas en mayúsculas Todas en mayúsculas – poner en mayúscula todas las letras de la frase seleccionada. Una acción análoga se realiza con la combinación de teclas Ctrl+Shift+U.
  • Todas en minúsculas Todas en minúsculas – poner en minúscula todas las letras de la frase seleccionada. Una acción análoga se realiza con la combinación de teclas Ctrl+U.

Trabajo con marcadores #

Los marcadores están diseñados para saltar rápidamente a diferentes partes del código. Marque las filas requeridas con los marcadores, y luego navegue entre ellas usando los comandos de menú "Editar - Marcadores" y el menú contextual del código fuente:

  • Alternar marcador Alternar marcador – poner o quitar el marcador de la línea actual en función de su estado actual. Puede realizar la misma acción pulsando la combinación de teclas "Ctrl+F2";
  • Siguiente marcador Siguiente marcador – ir al siguiente marcador en el código actual. Esta misma acción se realiza si pulsa la tecla "F2";
  • Marcador anterior Marcador anterior – ir al marcador anterior en el código actual. Puede realizar la misma acción pulsando la combinación de teclas "Shift+F2";
  • Eliminar todos los marcadores Eliminar todos los marcadores – eliminar todos los marcadores del código actual. Puede realizar la misma acción pulsando la combinación de teclas "Ctrl+Shift+F2".

En el MetaEditor también se han previsto marcadores con nombre: marcadores a los que se les asigna un identificador digital. Para establecer dicho marcador, presione una tecla numérica de 0 a 9 mientras mantiene presionada la tecla Ctrl. Para ir a la pestaña establecida previamente, presione el número correspondiente mientras mantiene presionada la tecla Alt.

Ir a la línea #

Para saltar rápidamente a cualquier línea de código en el archivo actual, haga clic en "Ir a la línea Ir a la línea" en el menú "Búsqueda" o "Ctrl+G". Se abrirá la siguiente ventana:

Ir a la línea

En esta ventana se indica el rango de las líneas con el código en el archivo actual. Para ir a la línea, ingrese su número y haga clic en "OK".

Snippets #

Los snippets son pequeños fragmentos de plantilla del código fuente que describen una u otra construcción del lenguaje MQL4/MQL5. Hacen que sea más fácil y rápido escribir el código fuente. Por ejemplo, al usarlos en el código del programa, puede agregar rápidamente una plantilla de trabajo para describir una clase o un ciclo. Para hacer esto, basta con introducir la palabra clave – class o for. Después de eso, el cursor cambia a Puede insertar un snippet que indica la posibilidad de insertar un snippet. Haga click en "Tab" y el programa insertará un espacio en blanco para la clase o para el ciclo, respectivamente.

Ejemplo de un snippet

Para conmutar entre los campos activos del snippet (en este caso es el nombre, constructor y destructor de la clase) se utilizan las teclas "Tab" y "Shift+Tab".

Si se cambia un campo activo, los demás campos se cambian automáticamente. Por ejemplo, si usted cambia el nombre de la clase, los nombres del constructor y del destructor se cambiarán automáticamente; si cambia el nombre de una variable en una de las expresiones del ciclo "for", también se cambiarán las variables en las demás expresiones que le pertenezcan.

El sistema de trabajo con snippets también reconoce las estructuras, clases, enumeraciones, métodos y funciones ya descritos. Coloque el cursor dentro de la descripción de la estructura correspondiente y presione "Ctrl+Enter". Después de ello, usted podrá navegar entre los miembros (para las clases, estructuras y enumeraciones) y argumentos (para los métodos y funciones) utilizando las teclas "Tab" y "Shift+Tab". También podrá editarlos de manera conjunta, tal como se describe más arriba.

En estos momentos están disponibles los siguientes snippets:

Palabra clave

Valor

#import

Declaración de una importación.

OnBookEvent

Manejador OnBookEvent.

OnCalculate

Manejador OnCalculate.

case

Selector case.

OnChartEvent

Manejador OnChartEvent.

class

Declaraciones de una clase.

OnDeinit

Manejador OnDeinit.

do

Declaración del ciclo do while.

enum

Declaración de una enumeración.

for

Declaración del ciclo for.

if

Declaración de la condición if.

else

Declaración de la condición else.

OnInit

Manejador OnInit.

OnStart

Manejador OnStart.

struct

Declaración de una estructura.

switch

Selector switch.

OnTester

Manejador OnTester.

OnTesterInit

Manejador OnTesterInit.

OnTesterPass

Manejador OnTesterPass.

OnTesterDeinit

Manejador OnTesterDeinit.

OnTick

Manejador OnTick.

OnTimer

Manejador OnTimer.

OnTrade

Manejador OnTrade.

OnTradeTransation

Manejador OnTradeTransation

while

Declaración del ciclo while.

Insertar recursos #

Para facilitar el procesamiento de aplicaciones, en el menú "Editar – Insertar" está disponible una serie de comandos de inserción rápida de archivos de los recursos.

Configuraciones en forma de #property

Inserta en el programa actual la directiva #property e inmediatamente abre una lista de todas las propiedades de programadisponibles en el lenguaje.

BMP/WAV en forma de #resource

Para agregar una imagen o archivo de sonido a los recursos del programa, basta con ejecutar este comando y seleccionar el archivo BMP o WAV (debe ubicarse dentro del directorio \MQL5). La directiva #resource con la ruta correcta al archivo seleccionado se agregará a la posición actual del programa.

#resource "\\Images\\image.bmp"

DLL/EX5 en forma de #import

Para importar funciones desde una biblioteca DLL externa o un archivo EX5/EX4, solo tiene que ejecutar este comando y seleccionar el archivo (debe ubicarse dentro del directorio \MQL5). La directiva #import con la ruta correcta al archivo seleccionado se agregará a la posición actual del programa.

#import "..\Experts\SendNotification.ex5"
 
#import

Entre las directivas, agregue una descripción de las funciones importadas.

MQH en forma de #include

Para agregar un archivo de inclusión al código del programa, ejecute este comando y luego seleccione el archivo MQH (debe estar dentro del directorio \MQL5). La directiva #include con la ruta correcta al archivo seleccionado se agregará a la posición actual del programa.

#include <Arrays\Array.mqh>

Conjunto de parámetros en forma de #property

Para agregar un conjunto de parámetros para poner a prueba el asesor con el código del programa, ejecute este comando y luego seleccione el archivo SET (debe ubicarse dentro del directorio \MQL5). La directiva #property con la ruta correcta al archivo seleccionado se agregará a la posición actual del programa.

#property tester_set "\\Profiles\\Tester\\Moving Average.set"

Fecha y hora en el formato AAAA.MM.DD hh:mm:ss / hora UNIX

Este comando permite insertar cómodamente la fecha y la hora en el código en el formato necesario. Al pulsarlo, aparece un calendario interactivo. Seleccione en él la fecha y la hora, y estas serán insertadas en la posición actual del programa en el formato elegido.

Insertar la fecha y la hora en el código

 

Color en forma de clrColor

Este comando permite insertar cómodamente el color en el código en el formato necesario. Al pulsarlo, aparece una paleta de colores interactiva. Seleccione el color, y este será insertado en la posición actual en el formato clrColor, utilizado en las funciones MQL5.

Insertar un color en el código

Archivo en forma de matriz binaria

Este comando le permite incluir en el texto del programa cualquier archivo en forma de matriz binaria. Ejecútelo y seleccione el archivo deseado (debe estar dentro del directorio \MQL5). Se agregará una matriz char a la posición actual del programa.

Usando esta función, podrá, por ejemplo, transferir patrones gráficos junto con los expertos/indicadores: incluya su plantilla en el código del programa como una matriz, y luego use la función FileSave para guardarla en el disco. Después de esto, la plantilla se podrá aplicar al gráfico utilizando la función ChartApplyTemplate.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
// --- archivo de plantilla en forma de matriz binaria
   unsigned char my_template[]=
     {
      0xFF,0xFE,0x3C, ... ,0x00 // la matriz de datos ha sido acortada en el ejemplo
     };
//--- guardando y aplicando la plantilla
   if(FileSave("my_template.tpl",my_template))
     {
      Print("Custom template saved in \\MQL5\\Files");
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
         Print("Custom template applied to the current chart");
      else
         Print("Failed to apply custom template");
     }
   else
      Print("Failed to save custom template");
  }

CSV como matriz de texto

Para agregar los datos de un archivo de texto al código del programa, ejecute este comando y luego seleccione el archivo TXT o CSV (debe estar dentro del directorio \MQL5). En la posición actual del programa, se agregará una matriz string de la dimensión requerida con los datos del archivo:

string data[][3]=
  {
   {"name1","value1"},
   {"name2","value2"},
   {"name3","value3"}
  };

Transformación de textos #

El MetaEditor le permite convertir fácilmente el formato de los datos originales. Para hacerlo, abra el archivo deseado, seleccione el texto en él y ejecute uno de los comandos en el menú "Editar - Convertir":

  • ASCII en HEX
  • ASCII en Base64
  • ASCII en una matriz binaria
  • HEX en ASCII
  • Base64 en ASCII

Monitoreo del portapapeles #

La función de seguimiento del portapapeles permite hacer más cómodo el trabajo con el código fuente gracias al acceso rápido a los últimos datos usados. Presione Alt + V en cualquier posición del código fuente, elija en el menú cualquiera de las líneas copiadas anteriormente, y dicha la línea se insertará en la posición seleccionada.

Para pegar desde el historial del portapapeles, pulse ALT+V o utilice el panel de instrumentos

Para activar/desactivar el seguimiento, utilice el comando correspondiente en el panel de herramientas o use la configuración del editor.