En qué se convierte cada campo
Un constructor sin código es un formulario que escribe Pine. Saber en qué se convierte cada campo es lo que te permite leer tu propia exportación y confirmar que coincide con lo que pediste.
| Lo que fijas en el formulario | Lo que aparece en el Pine |
|---|---|
| el indicador y su periodo | un input.int para el periodo, más una llamada ta.* en ámbito global |
| un umbral («RSI por debajo de 30») | un input.float y una comparación en la condición de entrada |
| una segunda condición | lo mismo, unido con and u or |
| un filtro de sesión | una comparación de hora que condiciona la entrada |
| un stop y un objetivo | strategy.exit() con stop / limit, o loss / profit |
| comisión y slippage | commission_type, commission_value, slippage en la declaración |
| capital inicial y tamaño | initial_capital, default_qty_type, default_qty_value |
Por qué la llamada al indicador debe estar en ámbito global
Es la única propiedad estructural que merece comprobar tú mismo, porque es invisible en el comportamiento hasta que está mal.
// correcto — se ejecuta en cada barra, así que su historial es continuo
rsiVal = ta.rsi(close, rsiLen)
if rsiVal < 30 and close > maVal
strategy.entry("Long", strategy.long)
// incorrecto — v6 hace cortocircuito con and, así que ta.rsi() se omite en las
// barras donde la primera condición es falsa, y su historial se rompe
if close > maVal and ta.rsi(close, rsiLen) < 30
strategy.entry("Long", strategy.long)
En v6 los operadores and y or evalúan de forma perezosa [6], así que una
llamada a la derecha de una condición falsa no se ejecuta en esa barra. Los
indicadores mantienen estado interno entre barras, así que uno que no se ejecutó
en cada barra ya no tiene el historial que necesita — y nada lo informa.
Así que: busca and y or en tu exportación, y comprueba que no haya un
ta. a la derecha de ninguno. Es una comprobación de diez segundos y es lo
más valioso que puedes hacerle a un archivo generado.
La anatomía de una exportación generada
Los archivos generados siguen un orden fijo, lo que los hace rápidos de recorrer:
//@version=6— la línea de versiónstrategy(...)— la declaración, donde se deciden tus resultados- un bloque de comentarios con la temporalidad prevista
- las declaraciones
input.*— cada control que mostrará el diálogo de ajustes - la sección de series — llamadas
ta.*en ámbito global longCond/shortCond— las condiciones de entrada- las llamadas
strategy.entry() - las salidas —
strategy.exit()y los límites de riesgo - las llamadas
plot()
El bloque 2 es el primero que hay que leer y el que la gente se salta. Los bloques 4 y 6 juntos son donde verificas que cada control alimenta de verdad una comparación: si un umbral aparece como número suelto en el bloque 6 mientras el bloque 4 declara un input para él, ese control no hace nada.
La comprobación que cierra el círculo
Lleva un input a un extremo en el diálogo de ajustes y confirma que el número de operaciones cambia. Un input declarado en el bloque 4 pero nunca referenciado en el bloque 6 genera un control que se mueve y no tiene efecto, y no hay forma de verlo desde la interfaz. El detalle de qué más verificar está en el editor frente al constructor.
Tactix AI — Studio vs Guide
Tactix AI es la marca del asistente de AlfaTactix (abrir Tactix AI).
- Tactix Studio convierte una descripción de estrategia en una frase en un borrador de Timeframe, Señales, Filtros y Riesgo en el Strategy Builder visual. Revisas y editas cada campo antes de que Code Generator escriba MQL5 o Pine Script.
- Tactix Guide explica el paso en el que estás — qué rellenar, qué significa un control o cómo formular una regla — sin volcar código sin probar.
Es automatización form-first: el LLM no sustituye a Code Generator, y conservas límites de plan y validación en tiempo real.

