Gatillo: las reglas#
El gatillo decide cuándo se analiza una vela. Es una lista de reglas: al cierre de cada vela, el servicio las evalúa con las velas y los niveles que manda el sensor (VisionAlertEA, tu propio EA o Sandmarket). Si una regla se cumple entera, se llama a la IA. Si no, no se gasta nada.
Es una sola fuente para todo: las mismas reglas valen para MetaTrader, para cualquier EA del contrato y para Sandmarket.


Una regla#
Cada regla tiene:
- Nombre: sale en el aviso de Telegram ("Gatillo: Londres"), en
decisions.jsonly entriggers.jsonl. - Interruptor: una regla apagada no se evalúa.
- Dirección: Compras y ventas (
both), Solo compras (BUY) o Solo ventas (SELL). - Condiciones: tienen que cumplirse todas. Cada tipo de condición puede aparecer una vez por regla.
La regla de fábrica se llama "Zonas + patrones de vela": Toque de zona + Patrón de vela exigido. Es el sistema de siempre y el más barato.
El catálogo de condiciones#
| Condición | Clase | Parámetros (por defecto) | Qué comprueba |
|---|---|---|---|
Toque de zona (zone_touch) |
Produce las zonas | lookback 3 (1–50), tol_atr 0,25 (0–5), tol_pips 0, skip_broken sí |
Las zonas BUY/SELL dibujadas que alguna de las últimas lookback velas tocó, con tolerancia max(ATR × tol_atr, tol_pips) |
Patrón de vela (candle_pattern) |
Por zona | required sí |
El código busca en la vela cerrada un patrón de vela a favor de la zona |
Horario (hours) |
De la vela | hours "08:00-17:00" |
La hora de cierre de la vela cae en algún tramo |
Volatilidad mínima (min_atr_pips) |
De la vela | pips 5 |
El ATR(14) de la vela cerrada, en pips, llega al mínimo |
Cerca de un nivel (near_level) |
De la vela | max_atr 1 (0–20), include_key sí |
El cierre está a menos de max_atr ATR del nivel dibujado más cercano |
Toque de zona#
- Tocar es que cualquier parte de la vela (apertura, cierre, cuerpo o mechas) entre en la zona ampliada por la tolerancia. Una vela que abre en la zona y se aleja sin volver cuenta como toque.
- La tolerancia se calcula en la temporalidad que se analiza:
max(ATR(14) × tol_atr, tol_pips). La IA la ve como una banda punteada en la captura. - Zona rota (
skip_broken): si la última vela cerró claramente al otro lado (por debajo de una zona BUY o por encima de una SELL, más allá de la tolerancia), se ignora. - Solo zonas BUY/SELL de la dirección de la regla, y solo en las temporalidades de su filtro
@M15,H1. Los niveles CLAVE nunca se analizan.
Patrón de vela#
- Exigir un patrón a favor (
required, de fábrica): sin patrón, no hay análisis. Es lo que más ahorra. - Sin exigir: se anota el patrón que haya (o ninguno) y la regla dispara igual con el toque. La IA busca entonces también patrones de precio si activas
price_patterns(ver abajo). Cuesta bastante más. - Los patrones en contra (por ejemplo un Inverted Hammer en una zona BUY) no disparan: viajan a la IA y a Jev como evidencia en contra.
- Qué patrones cuenta el código y sus umbrales se fijan en lo común a todas las reglas.
Horario#
- Uno o varios tramos
HH:MM-HH:MMseparados por comas:08:00-12:00, 14:00-17:00. - Admite tramos que cruzan la medianoche:
22:00-02:00. - Hora del servidor de MetaTrader. En Sandmarket, el reloj del replay.
Volatilidad mínima#
Deja fuera los mercados dormidos: si el ATR(14) de la vela cerrada no llega a pips, la regla no dispara.
Cerca de un nivel#
Mira el nivel dibujado más cercano al cierre (BUY, SELL y, con include_key, también CLAVE) en las temporalidades de su filtro. Es útil en reglas sin Toque de zona: el nivel más cercano viaja en la instrucción a la IA.
Sin Toque de zona: el gráfico entero#
Una regla sin Toque de zona no parte de tus zonas. La IA recibe una zona llamada grafico, entre el mínimo y el máximo de las últimas tres velas, con la dirección de la regla. Por eso la dirección tiene que ser BUY o SELL (la app no deja guardar both).
Con una regla así activa, VisionAlertEA manda también los pares sin niveles dibujados (needs_levels pasa a false).
Cómo se evalúa#
Al cierre de cada vela, para cada regla activa, en el orden de la lista:
- Condiciones de la vela (Horario, Volatilidad mínima, Cerca de un nivel). Si alguna falla, la regla no dispara y queda el motivo.
- Candidatos. Con Toque de zona, las zonas tocadas y vivas; sin él, el gráfico entero. Si no hay ninguna zona en juego, la regla no dispara.
- Condiciones por zona (Patrón de vela), en cada candidato.
- Una zona solo dispara una vez: si dos reglas la ponen en juego, gana la primera de la lista.
- Enfriamiento: si esa regla ya analizó esa zona en ese par y temporalidad hace menos de
cooldown_barsvelas, se salta ("en enfriamiento").
Las zonas que quedan van juntas a la IA en un solo análisis, y cada una lleva la regla que la puso en juego. El aviso de Telegram dice "Gatillo:
Común a todas las reglas#
| Campo | Por defecto | Qué hace |
|---|---|---|
Pares vigilados (symbols) |
vacío | Vacío = los del EA (los 28 mayores) o todos los de la sesión de Sandmarket |
Temporalidades (timeframes) |
M15, H1, H4, D1 | Qué cierres de vela se miran |
Patrones de precio (price_patterns) |
no | La IA puede devolver también doble piso/techo, trampa, falla y clímax (no los detecta el código) |
Velas entre dos análisis (cooldown_bars) |
2 | Enfriamiento por par, temporalidad, regla y zona, antes de llamar a la IA |
Velas que manda el EA (candles_in_json) |
40 (30–500) | Las velas que dibujan las capturas y ve la IA |
Temporalidad de contexto (context_map) |
M15:H4, H1:H4, H4:D1, D1:W1 | La segunda captura de cada temporalidad |
Velas de tendencia previa (trend_bars) |
5 | Para los patrones que exigen tendencia antes |
Tendencia mínima (trend_atr) |
0,5 × ATR | Cuánto tiene que haber recorrido esa tendencia |
Hueco mínimo (gap_atr) |
0,1 × ATR | El margen donde la definición clásica pide un gap |
Velas para el cuerpo medio (avg_body_bars) |
10 | La referencia de "vela alta" y "vela pequeña" |
| Patrones de vela que cuenta el código | los 12 | Envolvente, Interna, Martillo, Martillo invertido, Three-Line Strike alcista y bajista, Tres cuervos, Estrella de la tarde, Estrella doji de la mañana, Three Inside Up/Down y Nube oscura |
Los patrones que de verdad llegan a la IA, con su definición, son los activos aquí (los cuenta el código) y en Análisis, más los tuyos propios.
Comprobar una regla#
- 👁 Previsualizar evalúa tu borrador con la última vela que mandó el sensor y dice, regla a regla, si dispararía y por qué.
service/logs/triggers.jsonltiene una línea por cada cierre de vela con la regla que disparó o el motivo de cada regla que no. Ver cómo leerlo.
¿Quieres casos concretos? Mira las recetas.