AlgoWizard: Variables (Integer, Double, Boolean y String)

Los cuatro tipos de variable en AlgoWizard, cómo crearlas y asignarles valores dinámicos, la casilla Confi para exponerlas en MetaTrader 4 y el módulo Debug (DBA) para verificar su comportamiento durante el backtest.

Las variables son lo que separa una estrategia con valores fijos de un robot capaz de recordar estados, calcular niveles dinámicos y adaptar su comportamiento vela a vela. Dominar los cuatro tipos disponibles es un paso obligado antes de construir cualquier lógica algo más compleja que un cruce de medias.

Tabla de contenidos

Qué son las variables en AlgoWizard

Las variables son espacios de memoria que almacenan valores dentro de una estrategia. Se gestionan desde un panel dedicado, accesible mediante un icono discreto del editor, donde se pueden ver, crear y eliminar todas las variables del proyecto en una única tabla.

Los cuatro tipos disponibles

TipoDescripciónAceptaEjemplo
IntegerNúmero entero sin decimales.1, 2, 100Contador de velas
DoubleNúmero con decimales (coma flotante).10.5, 1234.75Precio, nivel de MA
BooleanValor lógico (verdadero/falso).true / falseSeñal de entrada/salida
StringCadena de texto.'Hola', 'Buy'Etiquetas, mensajes

Boolean: la base de las señales

Las cuatro variables que se crean por defecto en la plantilla estándar de AlgoWizard son de tipo Boolean: long_entry_signal, long_exit_signal, short_entry_signal y short_exit_signal. Se evalúan dentro de los bloques condicionales (IF): si la variable vale true, la condición se cumple y se ejecuta la acción correspondiente.

NOTA

Todo el sistema de señales de AlgoWizard descansa sobre estas cuatro variables booleanas. Cuando se añade una condición a una señal de trading, en realidad se está construyendo la lógica que determina en qué momento esa variable pasa a valer true.

Double: el tipo más usado en trading

Double es el tipo más habitual porque los precios y los valores de indicadores casi siempre tienen parte decimal. En AlgoWizard los decimales se separan con punto, no con coma.

ATENCIÓN

Si asignas un valor decimal a una variable de tipo Integer, la parte decimal se trunca y el resultado puede introducir errores en los niveles de las órdenes. Usa siempre Double para variables que almacenen precios o valores de indicadores; reserva Integer para contadores e índices que nunca necesiten precisión decimal.

Crear una variable paso a paso

PasoAcción
1Abrir el panel de variables haciendo clic en el icono correspondiente del editor.
2Pulsar el botón 'Añadir' (símbolo +).
3Escribir el nombre de la variable (p. ej. precio, contador, señal_activa).
4Seleccionar el tipo en la columna 'Tipo': Integer, Double, Boolean o String.
5Introducir el valor inicial de la variable.
6Marcar la casilla 'Confi' si la variable debe ser editable desde MetaTrader 4.

La columna Confi: variables editables en MetaTrader 4

Al exportar el robot a MetaTrader 4 y pulsar F7 para abrir su configuración, solo se muestran las variables que tienen marcada la casilla Confi en AlgoWizard. Por defecto, el Magic Number siempre viene marcado, porque es uno de los parámetros que con más frecuencia se necesita cambiar al desplegar el robot en distintas cuentas.

CLAVE PRÁCTICA

Marca Confi solo en los parámetros que realmente vayas a ajustar desde MetaTrader sin recompilar el robot, como los pips de TP y SL. Exponer variables innecesarias satura el panel de configuración del robot y dificulta el despliegue.

Asignar valores dinámicos: la acción 'Asignar variable'

Para que una variable almacene un valor que se actualiza en cada barra —por ejemplo, el nivel de una media móvil— se usa la acción Asignar variable dentro de una regla de tipo Action Only. El flujo habitual es añadir una nueva regla, configurar el Rule Trigger en Bar Update con ejecución en apertura de barra, y dentro de esa regla elegir Otras acciones > Asignar variable, seleccionando la variable de destino y el valor a asignar. Ese valor se sobreescribe en cada apertura de barra, siempre con el dato más reciente.

Una vez asignada, la variable Double puede usarse como nivel de precio en una orden pendiente: en el campo de precio de una entrada Stop o Limit, se selecciona primero Number y después se navega hasta Variable > Double > el nombre de la variable. El nivel de la orden se actualizará automáticamente con cada barra, siguiendo el valor almacenado.

El módulo Debug (DBA): visualizar la evolución de una variable

AlgoWizard incluye un módulo de depuración, Debug (DBA), que muestra cómo evoluciona el valor de una variable a lo largo de todo el backtest. Se activa cambiando el módulo de OFF a ON en el panel principal, añadiendo la variable a monitorizar y asignándole un nombre descriptivo. Al volver a ejecutar el backtest, los resultados incluyen una pestaña Explore con el valor histórico de la variable vela a vela, lo que permite confirmar que toma los valores esperados antes de operar con dinero real.

Buenas prácticas

Buena prácticaRazón
Elegir el tipo correctoDouble para precios e indicadores, Integer para contadores, Boolean para señales, String para textos.
Nombres descriptivosFacilita el mantenimiento y la depuración del robot.
Ordenar las pestañasLa pestaña de cálculos, donde se asignan variables, siempre antes de las pestañas de señales.
Activar DBA durante el desarrolloPermite validar que los valores son correctos antes de operar con dinero real.
Marcar Confi solo lo necesarioExpone en MetaTrader únicamente los parámetros que realmente se van a ajustar.

Preguntas frecuentes (FAQs)

¿Por qué mis órdenes tienen niveles de precio incorrectos si uso Integer?

Porque Integer trunca cualquier parte decimal del valor asignado. Un precio o un nivel de indicador casi siempre tiene decimales, así que debe almacenarse en una variable Double.

¿Qué diferencia hay entre marcar o no marcar la casilla Confi?

Determina si esa variable aparece como parámetro editable al abrir la configuración del robot (F7) en MetaTrader 4. Sin marcar, el valor queda fijo al que se definió en AlgoWizard, solo modificable recompilando el robot.

¿Para qué sirve exactamente el módulo Debug (DBA)?

Para ver, vela a vela, el valor real que tomó una variable durante el backtest, en una pestaña de resultados dedicada. Es la forma más fiable de confirmar que una fórmula o una asignación se está comportando como se diseñó.

¿Puedo usar una variable como nivel de precio en una orden Stop?

Sí. En el campo de precio de la orden, selecciona Number y después navega hasta Variable > Double > el nombre de tu variable; el nivel de la orden seguirá el valor almacenado en cada barra.

Sigue leyendo el contenido de esta serie

WikiSQX - AlgoWizard > Variables: Integer, Double, Boolean y String

Buscar en la wikiSQX:

Seguir a Quantified Models:

Base de conocimiento:

Índice de esta entrada: