Alertas desde scripts
Cómo un script en LootScript notifica que se cumplió una condición: alert() y alertcondition(), frecuencia, activación de condiciones, adónde llega la notificación y qué no ofrecen las alertas desde scripts.
Un script puede notificarte de que en el mercado en vivo se cumplió una condición: ruptura de un nivel, un pico de delta, cruce de líneas. Para eso en LootScript hay dos funciones — alert(), que el script llama por sí mismo, y alertcondition(), una condición que activas manualmente.
La activación pasa por el mismo flujo que las demás notificaciones del terminal: registro en la pestaña Alertas, sonido, etiqueta emergente. Todo eso se procesa localmente en tu equipo: las alertas funcionan mientras el terminal esté en ejecución y el script esté en el gráfico.
Dos maneras
alert() |
alertcondition() |
|
|---|---|---|
| Quién decide si debe sonar | Código del script | Tú: debes activar la condición |
| Cuándo suena | Según la frecuencia elegida, incluida en una vela sin cerrar | Solo al cierre de la vela, no más de una vez por vela |
| Texto | Cualquier cadena; puedes ensamblarla con números | Texto fijo en el código |
| Dónde se activa | Siempre, mientras el script esté en el gráfico | Con la casilla en la consola del editor |
Si la alerta debe sonar siempre, usa alert(). Si el script declara varias señales y solo algunas deben sonar, decláralas con alertcondition() y activa las que necesites.
alert(): alerta desde el código
alert(message, freq = alert.freq_once_per_bar_close)message — cadena. Los números se insertan con str.tostring: "Цена " + str.tostring(close). El texto llega en la notificación tal cual; el terminal no lo traduce ni lo corrige.
La frecuencia se fija con la constante:
| Frecuencia | Cuándo suena |
|---|---|
alert.freq_once_per_bar_close |
Por defecto. Una vez, cuando la vela cerró: en la primera actualización de la vela siguiente, con los valores de la vela cerrada |
alert.freq_once_per_bar |
En el primer momento en que la llamada se ejecutó en esa vela — incluso si la vela aún se está formando. Luego guarda silencio hasta la siguiente vela |
alert.freq_all |
En cada recálculo de la vela en vivo donde se ejecutó la llamada |
La frecuencia se evalúa por cada llamada a alert() por separado: dos llamadas en un mismo script no se silencian entre sí. En un recálculo el script no envía más de 16 alertas; las restantes se descartan.
Ejemplo: alerta por un pico de delta, en cuanto aparece en la vela que se está formando.
indicator("Всплеск дельты", overlay = false)
mult = input.float(3.0, "Во сколько раз больше обычного", minval = 1.5, step = 0.5)
base = ta.sma(math.abs(delta.value), 50)
spike = delta.available and math.abs(delta.value) > base * mult
plot(delta.value, "Дельта", style = plot.style_columns, color = delta.value >= 0 ? color.teal : color.red)
if spike {
alert("Всплеск дельты: " + str.tostring(delta.value, "#.##"), freq = alert.freq_once_per_bar)
}Donde no hay delta, delta.available es falso y la alerta guarda silencio — más detalles sobre la regla na en la sección Datos de mercado.
alertcondition(): condición que activas tú
alertcondition(condition, title, message)condition — expresión booleana, title — nombre de la condición, message — texto de la notificación. title y message son cadenas literales en el código; no puedes construirlas a partir de números. Si no hay message, en la notificación irá title.
La condición suena solo al cierre de la vela, no más de una vez por vela y solo si está activada. Por defecto todas las condiciones están desactivadas.
Añade el script al gráfico
En el Editor de scripts haz clic en Añadir al gráfico.
Abre la pestaña «Salida»
En la consola bajo el código selecciona la pestaña Salida. Allí se muestran los valores de las series en la última vela y la lista «Condiciones de alertas (alertcondition) — activa las que necesites».
Activa las condiciones
Marca las casillas de las condiciones por las que quieras recibir notificaciones. Si el script está en varios gráficos, cada uno tiene su propia lista.
El historial no genera alertas
Las alertas suenan solo en actualizaciones en vivo. El primer cálculo tras cargar el gráfico, tras cambiar de instrumento o tras cargar historial más antiguo se considera historia: sobre velas pasadas ni alert() ni alertcondition() se disparan. Por eso, al añadir un script al gráfico no recibirás una oleada de notificaciones por el pasado.
Puedes comprobar la condición sobre el historial visualmente: dibuja su marca con plotshape — señalará cada vela donde la alerta se habría disparado.
Adónde llega la alerta
Cada activación:
- Se registra en la pestaña «Alertas» con la fuente «Alerta de script». En la entrada aparecen el texto del mensaje, el nombre del script y, para
alertcondition(), el nombre de la condición. La lista se abre en una ventana separada o panel del espacio de trabajo; el filtro Fuentes deja solo las alertas de script. - Reproduce un sonido. Se selecciona en Ajustes → Alertas, bloque «Sonidos», línea «Alerta de script»: lista de sonidos y un interruptor que silencia el sonido.
- Muestra una etiqueta «Nombre del script: texto».
- Resalta la pestaña del espacio de trabajo donde está el gráfico con el script.
Las demás notificaciones del terminal se describen en la página Alertas y niveles.
Registro: log.*
Para depurar condiciones hay un registro. log.info, log.warning y log.error escriben una línea en la pestaña Registro de la consola del editor — la misma donde están Problemas y Salida.
- El registro, como las alertas, solo se escribe en actualizaciones en vivo — en el historial guarda silencio.
- Por vela — no más de 16 líneas; las restantes se descartan.
- La consola guarda las últimas 256 líneas. Las más antiguas se expulsan; su número se muestra como «filas desplazadas». El botón Limpiar borra el registro.
indicator("Проверка условия", overlay = true)
len = input.int(20, "Канал, баров", minval = 2, maxval = 500)
upper = ta.highest(high, len)[1]
plot(upper, "Верх канала", color = color.teal)
if barstate.islast {
log.info("Закрытие " + str.tostring(close) + ", верх канала " + str.tostring(upper))
}Ejemplo: ruptura del canal
El script dibuja el límite superior del canal, marca las rupturas con un triángulo y las notifica de dos maneras: alert() suena siempre, y la condición «Ruptura al alza» solo si la activas.
indicator("Пробой канала с алертом", overlay = true)
len = input.int(20, "Канал, баров", minval = 2, maxval = 500)
upper = ta.highest(high, len)[1]
breakUp = ta.crossover(close, upper)
plot(upper, "Верх канала", color = color.teal)
plotshape(breakUp, "Пробой", style = shape.triangleup, location = location.belowbar, color = color.teal, size = size.small)
if breakUp {
alert("Пробой вверх, цена " + str.tostring(close), alert.freq_once_per_bar_close)
}
alertcondition(breakUp, "Пробой вверх", "Цена закрылась выше канала")El límite se toma con un desplazamiento [1] — sobre velas previas; de lo contrario el máximo actual siempre estaría dentro del canal. La frecuencia freq_once_per_bar_close significa que la alerta llegará tras el cierre de la vela por encima del canal, y el triángulo en el gráfico quedará exactamente donde sonó la alerta. En un script real normalmente se deja uno de los dos métodos — aquí están ambos para comparar.