¿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, 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.
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.
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.
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 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”.
Dentro de esta pantalla aparece un recuadro denominado “Name” en el que aparece escrito ; 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 |
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:
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 |
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 pone a disposición del usuario, alrededor de 190 funciones para utilizar y complementar al resto de operadores.
Sería algo complejo o casi imposible construir un buen indicador contando únicamente con los operadores anteriormente descritos. MetaStock 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 la 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.
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 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.
El programa MetaStock 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.
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).
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”
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 la 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.
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 “{“; ”}”.
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:
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 la condición es cierta. El tercer campo (en color rojo) es la acción que realizará si la 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.
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 idicador de otro no creándose confusión.
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 idicador 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.
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:
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.
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 el 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.
Ejemplos de "Binary Waves”
La siguiente tabla muestra las reglas empleadas para cuatro indicadores del tipo "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 móvil | cierre < = media 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.
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".
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.
0 comentarios
Publicar un comentario