You are on page 1of 10

Curso de MetaStock 6.0 10.- Indicator Builder.

¿Qué es el “Indicator Builder”?
El mundo bursátil, y paralelamente el mundo del Análisis Técnico están en una
continua evolución. El programa MetaStock 6.0, incorpora desde los indicadores más
“clásicos”, o aquellos cuya eficacia está probada hasta aquellos cuya aparición se produjo
en fechas más bien recientes. Para que el programa no se quede rápidamente desfasado, o
simplemente para satisfacer las ansias de investigar del usuario, aparece esta potente
herramienta que permite construir cientos de indicadores de una manera sencilla y eficaz.
Esta herramienta es el “Indicator Builder” o, tras una burda traducción, “El Constructor
de Indicadores”. A través de un lenguaje muy similar al empleado en las hojas de cálculo,
(Microsoft Excel, Lotus 1-2-3,...), se pueden fabricar aquellos indicadores cuya aparición sea
nóvel y de los cuales se conozca su fórmula, (por ejemplo indicadores de nueva generación
que aparecen en revistas especializadas de Análisis Técnico), o indicadores que el propio
usuario del programa haya desarrollado.
Para la correcta utilización de esta poderosa herramienta serán necesarios unos
conocimientos básicos de matemáticas y lógica. Los indicadores creados con el "Indicator
Builder" aparecerán junto al resto de indicadores cargados con el propio programa. Estos
nuevos indicadores podrán emplearse desde la lista rápida de indicadores de la barra de
herramientas principal o desde el menú “Insert” “indicator”, exactamente de la misma forma
que el resto de indicadores.

Trabajo con Fórmulas
Los indicadores, las exploraciones y los test de sistemas para operar, son definidos
todos y cada uno de ellos a través de fórmulas; fórmulas que no son más que expresiones
matemáticas definidas por el usuario.
Es posible crear 1.000 indicadores nuevos, además de los que ya aparecen con el
propio programa. Estos indicadores son guardados y almacenados automáticamente por el
programa para que la siguiente vez que se vayan a emplear no sea necesario tener que
reintroducir de nuevo la fórmula.
Los indicadores predefinidos y aquellos creados por el usuario son independientes
entre sí, de este modo los cambio realizados en los últimos no afectan en absoluto a los
primeros.
Para comenzar a emplear el "Indicator Builder" se deberá realizar alguna de las tres
siguientes acciones:

1.- Pulsar el botón:
2.- Acudir al menú “Tools” y seleccionar "Indicator Builder".
3.- Pulsar la combinación de teclas Ctrl+B.
Una vez realizada cualquiera de ellas aparecerá la pantalla general del "Indicator
Builder.

X/1
Curso de MetaStock 6.0 10.- Indicator Builder

En esta pantalla aparecerán todos los indicadores creados por el usuario, (también
aparecen aquellos indicadores que se crearon en anteriores versiones de MetaStock, ya que
al cargar MetaStock 6.0 cabe la opción de “rescatar” esos indicadores, y traspasarlos a la
nueva versión). Los indicadores que aparecen en la fotografía serán distintos a los que
aparecerán en esa misma ventana en su ordenador.
En la parte derecha de esta ventana aparecen siete botones diferentes cuyas
funciones son las siguientes: Close, (cierra esa pantalla), New, (creación de un nuevo
indicador), Edit, (Modificación de un indicador ya creado), Copy, (Copia un indicador ya
creado), Delete, (Borra el indicador seleccionado), Print, (Imprime el indicador
seleccionado) y Help, (Abre el libro de ayuda del programa).
Pulsando el botón “New” aparecerá la pantalla denominada “Editor de Indicadores”.

X/2
Curso de MetaStock 6.0 10.- Indicator Builder.

Dentro de esta pantalla aparece un recuadro denominado “Name” en el que aparece
escrito <New Indicator>; aquí será donde se introducirá el nombre que denominará al nuevo
indicador. Debajo de este campo, se encuentra un recuadro mucho mayor “Formula” que
será en el que habrá que introducir la expresión matemática (o f—rmula) que definirá el
indicador. En la parte superior derecha aparece un recuadro a la izquierda de la frase
“Display In QuiickList”, activando este recuadro, el indicador creado aparecerá en la lista
rápida que aparece en la barra de herramientas principal del programa. Pulsando el botón
“Functions” aparecerá un listado de funciones que podrán ser empleadas en la construcción
de los indicadores.

Identificadores de Precios:
Los identificadores de precio especifican campos de precio. Estos campos de precio
son los distintos precios o datos a los que la fórmula del indicador se puede referir, es decir,
los precios de apertura, máximo, mínimo, cierre, volumen, open interest u otro indicador.
Pulsando el botón “new” crearemos un nuevo indicador que denominaremos “Indesfi”,
en el recuadro de “Formula” introduciremos, por ejemplo, la palabra “Close”, (sin comillas);
al hacer esto se creará un indicador llamado “Indesfi” que representará mediante una línea
los precios de cierre.
Para que los fórmulas no sean muy costosas de escribir ni muy aparatosas estos
identificadores poseen abreviaturas que permiten ahorrar espacio y simplificar la sintaxis de
la fórmula. Estas abreviaturas se muestran en la tabla siguiente:

Nombre Largo: Abreviatura:
Open (Apertura) O
High (Máximo) H
Low (Mínimo) L
Close (Cierre) C

X/3
Curso de MetaStock 6.0 10.- Indicator Builder
Volume (Volumen) V
Interest (Open Interes) OI
Indicator (Indicador) P

Operadores Matemáticos:
Las fórmulas pueden contener los siguientes operadores matemáticos: (también
podrán emplearse operadores más complicados, raíces cuadradas por ejemplo, pero se
verán posteriormente).

Símbolo Operador
+ Suma
- Resta
* Multiplicación
/ División

Seleccionando el indicador “Indesfi” dentro de la pantalla general del "Indicator
Builder" pulsaremos el botón “Edit”. En la fórmula en la cual habíamos introducido “close”
ahora introducimos (C+O)/2; obtendremos un indicador que suma el precio de apertura y el
de cierre y ese resultado lo divide para dos.

Precedencias de los Operadores:
Para acotar que fórmula o que parte de ella precede a otra se emplean los paréntesis.
Los paréntesis serán los que controlaran el orden de las operaciones, (de la misma forma
que se emplean los paréntesis en matemáticas). Si no se emplean paréntesis en las fórmulas
los operadores tienen las siguientes precedencias:

- Valores Negativos
* Multiplicación
/ División
+ Suma
- Resta
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
= Igual que
<> No igual a...
And “Y” lógico
Or “O” lógico

X/4
Curso de MetaStock 6.0 10.- Indicator Builder.

La expresión “C+O/2”, escrita sin paréntesis, el programa la calcularía como “O/2” más
“C”, es decir, el precio de apertura dividido entre dos más el precio de cierre, resultado
bastante diferente al que se consigue con la fórmula que anteriormente hemos introducido:
“(C+O)/2”, por ello será casi siempre mejor emplear los paréntesis.

Funciones:
Sería algo complejo o casi imposible construir un buen indicador contando
únicamente con los operadores anteriormente descritos. MetaStock 6.0 pone a disposición
del usuario, alrededor de 190 funciones para utilizar y complementar al resto de operadores.
Estas funciones se pueden añadir, bien escribiendo su nombre (en inglés) o bien pulsando el
botón “Functions”. Por ejemplo, para realizar una raíz cuadrada es necesario insertar l a
fórmula denominada “sqrt()”. La raíz cuadrada de los precios de cierre sería: sqrt(CLOSE).
Este tipo de sintaxis es muy similar al de la mayoría de las hojas de cálculo.
Todas las funciones deberán ser seguidas por dos paréntesis (), si no se ponen estos
paréntesis aparecerá un mensaje de error al pulsar el botón “OK”.

Parámetros de las Funciones:
Los parámetros de las funciones son los datos suplementarios que hay que introducir a
las propias funciones. Así la función de la raíz cuadrada solo tiene un parámetro, es decir,
sólo hay que indicar sobre que se quiere que se haga la raíz cuadrada, (Close o cierre en
nuestro ejemplo). También existen algunas funciones que no requieren ningún parámetro,
como por ejemplo la función del MACD: “macd()”, es decir, el MACD se calcula por si solo.
También es posible combinar varias fórmulas, por ejemplo haremos la raíz cuadrada
del MACD: “sqrt( macd() )”
Son muchas las funciones que requieren de múltiples parámetros, como por ejemplo
la fórmula del Price Oscillator u Oscilador de Precio, que necesita cuatro parámetros para
su cálculo: oscp(10,20,EXPONENTIAL,%), que traducido significa que se calculará un
Oscilador de Precios 10-20 exponencial y calculado por el método porcentual. Si no se
introduce uno de los parámetros el programa se encargará de recordarlo, mostrando un
mensaje de error.

Localización de errores en las Fórmulas:
El programa MetaStock 6.0 es por si solo una excelente herramienta para probar y
comprobar el funcionamiento correcto de nuevas fórmulas. Tanto es así, que es imposible
introducir una formula incorrecta en cuanto a su construcción, que la fórmula introducida
proporcione un indicador de compra y venta fiable es otra cosa. Esto es así, porque si el
programa detecta algún error, al pulsar el botón OK advierte de ese error y no permite salir
de la pantalla sin corregirlo. Por lo tanto, todas las fórmulas, que pasen la “prueba del OK”
siempre serán válidas.
Si al introducir una fórmula se introduce un error el programa comprueba esa fórmula,
y al pulsar el OK, se vuelve a mostrar la formula y se sitúa el cursor en el lugar donde se ha
encontrado el error, junto a un mensaje que indica cual es el error. Esta es la razón por la
que no se pueden introducir fórmulas incorrectas. Esta forma de corregir los errores vamos a
ilustrarla a través de un ejemplo:
Suponemos que se quiere representar un indicador que contenga una media móvil
exponencial de 10 períodos sobre los precios de cierre. Todo lo que recordamos es que la
función de las medias móviles se denomina "mov". Introduciremos lo único que sabemos:
mov y hacemos click en el botón OK.

X/5
Curso de MetaStock 6.0 10.- Indicator Builder

El cursor se posicionará detrás del nombre de la función ("mov") y aparecer‡ el cuadro
de advertencia anterior, que significa que debe poner un paréntesis detrás del nombre de la
función. Ahora se deberá añadir un paréntesis de apertura. mov( y haga click en OK. En este
momento, el cursor estará posicionado después de "(" y se mostrará el mensaje: "Price array
or function expected", que significa que le falta el precio o una función detrás del
paréntesis. Introduzca el identificador de precio "CLOSE" mov(CLOSE y haga click en OK.
Si continúa este proceso Metastock le seguirá pidiendo datos hasta que la sintaxis de la
fórmula sea la correcta, es decir: mov(CLOSE,10,EXPONENTIAL).

Insertar Funciones:
Haciendo click en el botón “Functions” mientras se está creando una fórmula nueva o
modificando una ya creada aparecerá la pantalla denominada “Paste Functions”

Esta pantalla lista las categorías de funciones disponibles en el recuadro de l a
izquierda y los nombres de las funciones de cada categoría en el de la derecha. Haciendo
click en OK se insertará dentro de la fórmula (en el lugar en que se encuentre el cursor) la
función que se haya seleccionado. La función también puede insertarse con una
descripción de los argumentos requeridos activando el recuadro Paste Arguments.

X/6
Curso de MetaStock 6.0 10.- Indicator Builder.
Introducción de comentarios:
Dentro del recuadro de la fórmula es posible introducir comentarios sobre el indicador
que se está creando o sobre lo que se desee. Para hacer esto simplemente se deberá escribir
el comentario rodeándolo de corchetes “{“; ”}”.

La función if():
Esta función se emplea para crear proposiciones condicionadas del tipo:
“si...entonces”. Ésta contiene tres parámetros tal y como lo plasma el ejemplo siguiente:
“if( CLOSE > (HIGH+LOW) / 2, +V, -V )
El primer campo (en color azul) es la condición que el programa analizará para ver si
es cierta o falsa. El segundo campo (en color verde) es la acción que realizará si l a
condición es cierta. El tercer campo (en color rojo) es la acción que realizará si l a
condición es falsa.
La anterior formula suma el volumen si el cierre es mayor que la media entre máximo
y mínimo o, si no, lo resta.

Utilización de los Operadores “And” (Y) y “Or” (ó).
Cuando se han de reunir varias condiciones en una sola formula se hace necesario el
uso de los ya nombrados operadores “and” y “or”. Por ejemplo se podría crear un indicador
que tome el valor +1 cuando el MACD sea mayor que cero y a la vez que el RSI sea mayor
que 80, para ello escribiríamos la fórmula siguiente.
“If( macd() > 0 AND rsi(14) > 80, +1, 0 )”
Se pueden añadir tantos operadores como espacio se disponga, y también se pueden
combinar ambos operadores.
If((macd() > 0 OR close > mov(close,10,e)) AND rsi(14) > 80, +1, 0)
Traduciendo: este indicador valdrá +1 si el MACD es mayor de cero o el precio de
cierre está por encima de la media móvil exponencial de 10 sesiones de los precios de
cierre, y el RSI es mayor de 80. Para que la anterior fórmula tenga el resultado expuesto se
han colocado los paréntesis alrededor del operador “or”, ya que si no se hubiesen agrupado
la media móvil y el RSI al tener prioridad en el cálculo el operador “And” según lo visto en
una de las tablas expuestas en este capítulo.

Referencias a otros indicadores creados por el usuario:
Los indicadores que se creen pueden contener referencias a otros indicadores
diseñados por el propio usuario, para ello está diseñada la función fml(). Por ejemplo, la
función "fml( "My MACD")" es igual a la fórmula cuyo texto contiene "My MACD" como
nombre. No es necesario el nombre completo, sólo el texto suficiente que consiga
diferenciar este indicador de otro no creándose confusión.
El siguiente indicador representará el valor del indicador denominado "Down Day" si
el precio de cierre es menor o igual a la media móvil exponencial de 10 períodos de los
precios de cierre, por el contrario, si es mayor, se representa el valor del indicador llamado
"Up Day. La fórmula es la siguiente:
" if( close <= mov(close, 10, E), fml("Down Day"), fml("Up Day") )
Esta técnica de incluir en una misma fórmula otras fórmulas recibe el nombre de
anidado de fórmulas. El empleo de fórmulas anidadas es una manera excelente de abreviar
y simplificar largas y complejas fórmulas. Una fórmula anidada puede hacer referencia a
una fórmula anidada que hace referencia a una fórmula anidada y así consecutivamente.

X/7
Curso de MetaStock 6.0 10.- Indicator Builder
Las referencias circulares (una fórmula llama a otra fórmula que llama a la primera)
causarán un mensaje de error cuando se represente dicha fórmula.

Fórmulas autorreferenciadas con el empleo de la partícula “PREV”:
Empleando la constante PREV se pueden crear fórmulas que se autorreferencian. Una
fórmula autorreferenciada es aquella que es capaz de tomar como referencia valores de la
propia fórmula pero de un período de tiempo pasado. Un ejemplo de este tipo de fórmulas
es la siguiente:
“(H+L) + PREV”
Esta fórmula lo que ha ce es sumar los precios máximos y mínimos y luego sumar este
valor al valor que tuvo ayer el mismo indicador. Un claro ejemplo en un indicador algo más
serio, es el que se obtiene observando la fórmula del OBV:
“(if(c>ref(c,-1),1,-1)*volume)+PREV”

El identificador de precios “P”:
El programa dispone de un identificador de precio especial la variable "P" se emplea
para referenciar cualquier línea o un indicador o precio, es decir, el indicador que se cree
se calculará sobre uno de estos elementos dependiendo de donde se “deposite” el indicador.
La variable "P" representa la el elemento sobre el que se ponga el indicador. Con los
system tests y las exploraciones, la variable "P" representará el elemento que anteriormente
se haya seleccionado. Esto puede ser útil si se quiere que un indicador, una exploración, un
system test, o un Experto calcule un indicador por ejemplo en base a un determinado
elemento del gráfico y no en base únicamente al valor base del chart, que son los precios.
Si se aplica un indicador que contenga la variable "P" sobre las barras de precios, el
precio de cierre será el que use por la variable "P" para el cálculo del indicador.
Por ejemplo, la siguiente fórmula es un indicador "MACD-type" es decir, la diferencia
entre las medias móviles exponenciales de 12 y 26 periodos del elemento del gráfico sobre
el que se deposite en el indicador:
“mov( P, 12, E) - mov( P, 26, E)”
Si por ejemplo se aplicase este indicador al indicador predefinido
Accumulation/Distribution, el resultado no será más que el MACD del indicador
Accumulation/Distribution. En resumen, con el anterior indicador, se pueden obtener los
correspondientes “MACDs” del resto de indicadores.

“Binary Waves”
Los "Binary Waves" son un tipo especial de indicadores que intentan expresar en qué
posición están con respecto a un valor y en que medida. No es concepto fácil de asumir sin
antes dominar al completo el resto de "Indicator Builder".
Un indicador del tipo "Binary Wave" toma el valor +1 o -1 dependiendo de si e l
indicador se encuentra alcista o bajista, de ahí viene su nombre, (onda doble). El auténtico
y asombroso poder de estos indicadores se obtiene con múltiples (ondas), en lugar de poder
obtener dos resultados podemos obtener muchas más.

X/8
Curso de MetaStock 6.0 10.- Indicator Builder.

Ejemplos de "Binary Waves”
La siguiente tabla muestra las reglas empleadas para cuatro indicadores del tipo
"Binary Waves”:
Indicador Alcista si: Bajista si:
MACD > su media móvil < su media móvil
Media móvil cierre > media cierre < = media
móvil móvil
R.O.C. R.O.C. > 0 R.O.C.< = 0
Estocástico > 50 < = 50

Tal y como se muestra en la tabla, se considerará al MACD alcista siempre que esté
por encima de su media móvil (de 9 sesiones y exponencial) o también denominada línea
de señal, y del mismo modo se considerará al MACD bajista cuando se encuentre por
debajo o tome el mismo valor que su media móvil. Por lo tanto, el MACD Binary Wave
tomará el valor +1 o -1 dependiendo de donde se encuentre el MACD con respecto a su
media móvil, dependiendo de si en ese momento es alcista o bajista. Con el resto de
indicadores sucede lo mismo siguiendo los mismos criterios.
También podríamos desear combinar a la vez estos cuatro "Binary Waves" en un solo
indicador Binary Wave composite. De este modo cuando los cuatro Binary Waves son
alcistas, el valor que tomará el Binary Waves composite no será +1 sino que será +4, y así
cuando los cuatro Binary Waves sean bajistas el Binary Waves composite tomará el valor -4.
Cuando nos encontremos con dos alcistas y dos bajistas el valor del composite será cero.
Con el composite encontramos en un indicador cuatro indicadores a la vez, de este
modo, el filtro contra señales falsas para operar es tremendo y sólo se operará cuando cuatro
indicadores a la vez lo señalen encontrándose todos ellos en la misma situación.

X/9
Curso de MetaStock 6.0 10.- Indicator Builder
Introducción del ejemplo:
Se deberán introducir cada "Binary Wave” por separado y posteriormente se realizará
el composite basándose en esas fórmulas ya introducidas. Así se puede emplear y modificar
individualmente cada "Binary Wave".
1.- Deberemos crear un nuevo indicador que denominaremos “MACD Wave”, que
valdrá +1 cuando el MACD sea superior a su media móvil, y -1 cuando sea inferior a ella:
if(macd() > mov(macd(),9,E), +1, -1)
2.- La segunda fórmula corresponde al indicador "Binary Wave" que denominaremos
“Mov Wave”, el cual valdrá +1 si el precio de cierre es superior a la media móvil de 20
sesiones exponencial; sino valdrá -1:
if(C > mov(C,20,E), +1, -1)
3.- El tercer indicador "Binary Waves" se llamará “ROC Wave”, tomará el valor +1 si el
ROC (hallado en porcentaje) de 12 períodos sobre los precios de cierre es mayor que cero;:
si no es así el indicador tomará el valor -1:
if(roc(c,12,%) > 0, +1 , -1)
4.- La cuarta fórmula la llamaremos “Stoch Wave” y valdrá +1 si el indicador
Estocástico es mayor que 50 y -1 si es menor:
if(stoch(5,3) > 50, +1, -1)
5.- La última fórmula va a ser la que englobará las cuatro anteriores en un indicador
del tipo Binary Wave; a esta fórmula la llamaremos “Indesfi Composite”:
fml(“MACD Wave”) + fml(“Mov Wave”) + fml(“ROC Wave”) + fml(“Stoch Wave”)
El siguiente gráfico ilustra el resulado:

Valores más cercanos a +4 indican más estado alcista.

X/10