| ÚLTIMOS TEMAS EN EL FORO | |
|---|---|
|
| MQL4 para Novatos V |
|
|
| por X-Trader | |
| 11/04/2008 | |
|
Bien, pasamos a la acción: si Vd. ha seguido el curso desde el principio, no debería tener problemas para crear su primer indicador en MQL4. Eso sí, antes de ponernos manos a la obra es preciso repasar qué características poseen los indicadores en Metatrader:
En definitiva podemos decir que un indicador consta de los siguientes parámetros:
Teniendo en cuenta todo esto, comenzamos a crear nuestro primer indicador. Para ello abrimos el Metaeditor tecleando F4 y vamos a File->New. Se nos abrirá un asistente en el que debemos seleccionar Custom Indicator y darle a Siguiente. A continuación rellenamos los campos de Name, Author y Link. Justamente debajo de esos campos vemos un espacio en blanco que pone Parameters. Ahí podemos añadir variables que después se pueden modificar para que cualquier usuario pueda hacer cambios en los valores que definen el indicador. Para nuestro ejemplo, pulsamos en Add y pondremos como nombre al parámetro, barsToProcess, y fijando su valor por defecto igual a 100, dejando el tipo de variable como int (entero). Le damos a Siguiente. Ahora se nos piden dos cosas: por un lado, si queremos tener el indicador en una ventana aparte (para lo cual deberemos marcar Indicator in separate window) y por otro, el número de líneas (Indexes) de que constará el indicador. Debemos tener en cuenta que aunque pongamos que tiene 5 líneas no tienen porque dibujarse todas: podemos por ejemplo usar 3 para almacenar valores y 2 para representar el indicador en sí. Asimismo, el máximo de líneas que podemos poner es de 8. Para añadir una nueva línea haremos click en Add pero por defecto ya tenemos una, cuyo color podemos modificar (ponemos Azul por ejemplo) así como el tipo de representación (que por ahora dejaremos en Line). Hacemos click en Finalizar y listo, ya tenemos definidos todos los parámetros del indicador. Veamos qué significa el código que acabamos de generar: El encabezado recoge los datos del autor: #property copyright "X-Trader" #property link "http://www.x-trader.net" A continuación se enumeran las propiedades del indicador: debe dibujarse en una subventana, con una línea y en color azul marino (Navy): #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Navy Observese que el parámetro indicator_color va seguido de un número, que se corresponde con la línea (buffer) a la que afecta (ojo, la enumeración de los buffers comienza aquí en 1 y no en 0 como hasta ahora). Seguidamente nos muestra los parámetros definidos: //---- input parameters extern int barsToProcess=100; Definimos el buffer: //---- buffers double ExtMapBuffer1[]; Ahora comienza el código del indicador en sí. Si miramos el código completo veremos que consta de tres secciones diferenciadas: init(), deinit() y start(). Veamos en qué consiste cada una:
En init() se ha especificado como se dibujará el buffer mediante la función SetIndexStyle. En este caso, con DRAW_LINE nos dibujará una línea. Observese que aquí la enumeración de los buffers vuelve a ser desde 0. Por su parte la función SetIndexBuffer asocia un array al buffer que habíamos definido. Finalmente return(0) finaliza la función init(): int init()
Bien veamos qué significa el código que hemos introducido en start(). Comenzamos con un bucle de tipo for, comenzando en la última barra (i=0) y finalizando en la primera disponible (i<Bars) incrementando una unidad el contador (i++): Donde se ha introducido la función IndicatorCounted() que nos dice cuantas barras no se han modificado desde que se llamó a la función start(). Ahora el bucle for depende de la variable limit que almacena el número de barras que están modificándose en el momento de calcular el indicador.
(Continuará...)
|




