Guía de creación de ZuluScripts
Última actualización el
Introducción
ZuluTrade ha creado una nueva generación de scripts de trading que permite a los Traders crear y poner en marcha sus propios robots e indicadores de trading directamente a través de su cuenta de Trader de ZuluTrade Trader, ¡sin necesidad de ningún software externo o registros en otras páginas!
Los ZuluScripts se ponen en marcha utilizando el lenguaje de consulta de ZuluTrade (zql) que ha sido desarrollado para que sea compatible con los lenguajes de scripting más comunes en el mercado de Forex.
Todo lo que tendrá que tener para utilizar los ZuluScripts es una cuenta de Trader con la opción ZuluTrade+ habilitada (como se muestra en la pestaña de Ajustes), y un enlace a su cuenta de corredor.
Acceder al editor de scripts de trading de ZuluTrade
Para acceder a los scripts de trading de ZuluTrade, una vez se haya registrado en ZuluTrade y haya vinculado su cuenta a la plataforma de ZuluTrade+, tendrá que ir a la estación de trading de ZuluTrade y hacer clic en 'Scripts de Trading'.
Se abrirá entonces una nueva ventana emergente titulada 'Cliente de Trading'.
En la barra superior derecha del editor de scripts, encontrará cuatro pestañas distintas que cambian el modo de funcionalidad del editor de scripts.
El primero establece el modo de creación de scripts, el segundo establece el modo para crear indicadores personalizados, el tercero es para la creación de títulos y el cuarto abre el glosario de ZQL, donde encontrará información detallada sobre cada comando del lenguaje ZQL.
Inicio
Cómo crear un ZuluScript
Para crear su ZuluScript, tendrá que hacer clic en 'Crear Script' en el editor de scripts.
Tras crear el nuevo script, el panel del editor se completa con un código de zql modelo - es en este panel en el que hay que introducir el código del script.
Debajo del editor y a la derecha hay tres botones, que le ayudarán a crear su ZuluScript - Guardar, Compilar y Utilizar.
Guardar - el botón de Guardar le permite guardar su script en cualquier momento para no perder ningún cambio realizado.
Sin embargo, guardar un cambio en un script no significa que el script esté listo para usarse. Todos los cambios han de ser compilados y utilizados antes de estar disponibles para ser utilizados.
Compilar - Compilar un script permite comprobar si hay errores de sintaxis en el código y, en el caso de que no los haya, se crean los archivos binarios asociados con su script para que pueda ejecutarse.
Si el proceso de compilación falla, los errores encontrados aparecerán en el panel de 'Resultado de compilación.
A continuación puede ver un ejemplo de una compilación no terminada con éxito:
Utilizar - Para poder utilizar un script, primero ha de haber sido compilado. Una vez se haya compilado y se haya creado el archivo .zql, podrá utilizar el script y tenerlo disponible para utilizarlo en su estación de trading de ZuluTrade.
Metadatos - En la parte derecha de la ventana puede enmendar los metadatos de su script.
El campo 'Nombre' es el nombre que aparecerá al adjuntar el script a una gráfica.
El campo 'Nombre de archivo' es el nombre de archivo con el que se guardará internamente el script en ZuluTrade. No es obligatorio cambiar este campo, pero si desea hacerlo, recuerde que ha de finalizar con la terminación '.zql'.
El campo 'Descripción' es una breve descripción que estará visible al adjuntar el script a una gráfica. La descripción puede ayudarle a recordar la funcionalidad exacta del script, así que le recomendamos incluir todos los detalles que necesite en este espacio.
Lista de scripts - Debajo de los campos de metadatos figura un listado de los scripts guardados. Tenga en cuenta que cada script nuevo creado se guardará automáticamente.
El script actualmente seleccionado (cuyo código se muestra en el panel del editor) aparece resaltado.
Borrar un script - En el caso de que necesite borrar un script, sólo tiene que hacer clic en la "x" que figura junto al nombre del script y confirmar su eliminación en la ventana emergente que aparece.
Script de ejemplo - Vamos a ver un ejemplo de script zql que puede utilizar para comprobaciones:
#property copyright "Copyright © 2014, Zulutrade Inc"
#property link "www.zulutrade.com"
extern int BuyThreshold = 40;
extern int SellThreshold = 30;
extern double Lots = 1;
extern int MagicNumber = 33;
extern string comment = "by example script";
extern int maxOpenPositions = 3;
extern int shift = 1;
int RSILength = 14;
int TimeOfFirstBar = 0;
int init() {
}
int start() {
double RSI = 0.0;
if (isFirstTickOfCurrentBar()) {
RSI = iRSI(NULL, PERIOD_H1, RSILength, PRICE_CLOSE, shift);
Print("Got RSI value for period H1 and shift ", shift, " equals to ", RSI);
// Buy Condition
if ( RSI >= BuyThreshold && OrdersTotal() < maxOpenPositions) {
if (doBuy() == false) {
return (0);
}
}
// Close condition
if ( RSI <= SellThreshold && OrdersTotal() > 0) {
if(doClose() == false) {
return(0);
}
}
}
}
// Figures out the first tick of a new bar
bool isFirstTickOfCurrentBar() {
if (TimeOfFirstBar != Time[1]) {
TimeOfFirstBar = Time[1];
return (true);
}
return (false);
}
// Close an order checking magic number to make sure it is generated from current script
bool doClose() {
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
if (OrderClose( OrderTicket(), OrderLots(), Ask, 0, White) == -1) {
Print ("Failed to close trade ", OrderTicket(),", error # ", GetLastError());
return(false);
}
Print ("Successfully closed trade ", OrderTicket(),", error # ", GetLastError());
return(true);
}
// Open a new order
bool doBuy() {
int ticket = OrderSend( Symbol(), OP_BUY, Lots, Ask, 0, 0.0, 0.0, comment, MagicNumber, 0, Lime);
if (ticket < 0) {
Print ("Failed to open trade, error # ", GetLastError());
return (false);
}
Print ("Successfully opened ticket ", ticket);
return (true);
}
Este script comprueba en cada ciclo el número de posiciones abiertas. Si no hay ninguna abierta y se cumplen algunas condiciones de los indicadores, el script abre una nueva posición. En caso contrario, si hubiera muchas posiciones abiertas, cerrará una.
NOTA: No es una estrategia de trading real y sólo se muestra como ejemplo.
Si en algún momento necesitara crear un nuevo script, simplemente haga clic en el botón 'Crear script' y vuelva a iniciar este proceso.
Inicio
Cómo crear un indicador personalizado
Se pueden crear y utilizar indicadores personalizados en otro script de trading, ampliando los indicadores técnicos ya disponibles en el lenguaje.
Los indicadores personalizados pueden utilizarse en cualquier ZuluScript utilizando la función iCustom() ZQL después de haber guardado, compilado y utilizado el indicador personalizado.
Nota: De momento no podemos incluir indicadores personalizados en las gráficas.
Para crear su indicador personalizado, haga clic en el botón 'Crear indicador' en el editor de scripts.
Asegúrese de que el editor está en la pestaña de indicadores personalizados:
¡Tendrá que editar, nombrar, guardar y utilizar su indicador personalizado cuando esté listo!
Las funciones editar, nombrar, guardar y utilizar funcionan de forma similar a los ZuluScripts
Nota: el nombre del indicador será el utilizado después de pedir a la función iCustom() que acceda a él en sus ZuluScripts.
Vamos a ver un ejemplo de un indicador personalizado que podrá usar para realizar comprobaciones:
extern int index = 0;
int MODE = 0;
int init() {
return(0);
}
int start() {
double value = iCustom(NULL, NULL, "my_new_indicator", 0, index);
Print("my_new_indicator value for bar ", index, " is ", value);
}
Inicio
Cómo crear un título
Aquí puede definir las funciones reutilizables que pueden importarse y ser utilizadas por cualquier script o indicador personalizado.
Tenga en cuenta que los títulos no son scripts ZQL por lo que no requieren ninguna función init(), start() o deinit().
Para crear su título, tendrá que hacer clic en el botón 'Crear título' del editor de scripts.
Asegúrese de que el editor está en la pestaña de títulos:
Nota I: Es el nombre de archivo que ha de utilizarse en la directiva #include<> en el script que necesitará para acceder a las funciones.
Nota II: Los títulos sólo se guardan. La compilación o utilización no es necesaria ya que el código será compilado y utilizado al ser importado por un script o indicador personalizado.
Con el título en un nuevo script, basta con incluir el archivo del título como sigue
#include "my_common_functions.zqh"
int init() {
}
int start() {
printMyBalance();
}
Inicio
Glosario
En el glosario encontrará información detallada sobre cada comando del lenguaje ZQL.
Sólo tiene que hacer clic en las letras de la parte superior para desplazarse al listado de palabras con cada letra. Además haciendo clic en las letras que encabezan la lista, podrá ampliar/reducir las funciones de cada letra y al hacer clic en el nombre de una función/encabezado podrá ampliar/reducir los detalles de la función.
Inicio
Cómo utilizar un script en su cuenta de trader
Después de compilar y utilizar con éxito un script, podrá cerrar el editor de scripts y adjuntar el script a una gráfica.
Para ello, vaya al par de divisas y periodo que desee. Para este ejemplo, en la gráfica de EURUSD con un periodo de H1.
Haga clic en el botón de scripts de trading (resaltado en la imagen que sigue) y seleccione el script que desee.
Si deja el puntero del ratón sobre el script, aparecerá una ventana con la descripción del script.
Para iniciar el script en la Gráfica/Periodo seleccionado, haga clic en el nombre del script y aparecerá una nueva ventana con la descripción del script y los campos de inicialización de las variables externas del script.
Tras ajustar los parámetros a sus necesidades, haga clic en el botón "Iniciar" y se incluirá el script en su gráfica.
Nota: El script se ejecutará en esta gráfica desde los servidores de ZuluTrade, sin importar si su ordenador está encendido o si ha iniciado sesión en su cuenta o no.
Pestaña de scripts de trading - Aquí puede revisar los scripts de trading actualmente activos en cada gráfica/periodo y la versión que se está ejecutando y la hora de la última actualización.
También puede navegar directamente a la gráfica en la que se está ejecutando el script desde el icono de la gráfica.
Pestaña de mensajes - Los mensajes de su script, impresiones, mensajes de ZuluTrade sobre su script, etc. aparecerán en este apartado.
Inicio
Detener y dejar de utilizar un script
Puede detener y dejar de utilizar un script cuando quiera
Detener un script - Para detener un script en una gráfica/periodo, tendrá que ir a la pestaña de 'Scripts de trading' y hacer clic en la 'x' que hay a la derecha del script si desea detenerlo, y confirmar después su detención en la ventana emergente correspondiente.
Nota: Detener un script sólo lo detendrá evitando que se ejecute en una gráfica/periodo. El script permanecerá en su cuenta de trader y en sus scripts de trading
Dejar de utilizar un script - Para dejar de utilizar un script lo que tiene que hacer es ir a la pestaña 'Scripts de trading', hacer clic en la 'x' que hay junto a su nombre y confirmar su decisión en la ventana emergente.
Nota: Esta función quitará el script de la lista de scripts disponibles en su cuenta de trader pero no lo eliminará de la ventana del editor de scripts.
Inicio
Guia del inversor de ZQL Standalone Compiler
Iniciándose con ZQL Standalone Compiler
ZQL Standalone Compiler es el modelo autónomo del compilador ZQL Script que zulutrade ofrece en su plataforma web. Compilará cualquier secuencia de comandos compatible con ZQL (p.e. Mq4) en un archivo .zl.
Descargar
ZQL Standalone Compiler es distribuido desde el sitio de FXCMMarkets.
El compilador está disponible en formatos zip o tar.
Requisitos
- Java JDK 6 (te recomendamos que uses el hotspot de Java JDK 6)
Instalación
Simplemente extraiga su descarga elegida al directorio de su elección. Puede instalar ZQL Standalone Compiler en cualquier sitema operativo compatible con los formatos zip o tar. Refiérase a las Notas de Lanzamiento para información adicional relacionada con el lanzamiento.
Una rápida visita
Ahora que ha descargado ZQL Standalone Compiler, lo siguiente a discutir es la presentación de la distribución y explorar la estructura del directorio del compilador, los archivos de configuración fundamentales, los archivos de registros y demás.
Estructura Directorio
Directorio |
Descripción |
lib/
|
Contiene las dependencias de la biblioteca del compilador. |
conf/
|
Contiene archivos de configuración cruciales que no deberían ser alterados de forma alguna. |
run.bat
|
La secuencia de comandos ejecutada para dispositivos Windows. |
run.sh
|
La secuencia de comandos ejecutada para dispositivos Linux/Unix. |
Opciones del compilador
Nombre Parámetro
|
Nombre Corto Parámetro
|
Valor
|
Descripción
|
help |
h |
- |
Imprime el mensaje de ayuda a la consola. |
class |
c |
Cualquier valor del código |
El nombre de la clase generada. |
package |
p |
Cualquier código en forma de una ruta de paquete |
El nombre del paquete generado |
output |
o |
Cualquier valor del código |
El nombre del archivo de salida compilado sin extensión |
zqh |
z |
Cualquier código en forma de una ruta de directorio (relativa o absoluta) |
Incluya la ruta del directorio con los archivos zqh personalizados |
name |
n |
El nombre de las secuencias de comandos deseados
si tiene espacios asegúrese de colocarlos entre " en Windows y \" en Linux
|
El nombre visible de la secuencia de comandos una vez cargada en el sistema de FXCMMarkets |
description |
d |
La descripción de las secuencias de comandos deseadas
si tiene espacios asegúrese de colocarlos entre " en Windows y \" en Linux
|
La descripción de la secuencia de comandos es mostrar una vez esté cargada en el sistema de FXCMMarkets |
Ejemplos
Compilar una secuencia de comandos experta personalizada |
Resultado |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
|
my_expert.zl |
Compilar una secuencia de comandos experta personalizada con una secuencia de comandos de encabezamiento personalizado (p.e. en el directorio de encabezamientos) |
Resultado |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
|
my_expert.zl |
Inicio