¿Cómo usar un valor variable en la alerta?

Puede usar marcadores de posición especiales para acceder a valores variables en el mensaje de alerta. Por ejemplo, puede crear una alerta en NASDAQ: AAPL y escribir en un cuadro de mensaje:

{{exchange}}:{{ticker}}, price = {{close}}, volume = {{volume}}

Después de que se active la alerta, obtendrá los valores correspondientes:

Aquí hay una lista de marcadores de posición disponibles:

1. {{ticker}} - ticker del símbolo utilizado en la alerta (AAPL, BTCUSD, etc.).

2. {{exchange}} - exchange del símbolo utilizado en la alerta (NASDAQ, NYSE, MOEX, etc). Tenga en cuenta que para los símbolos retrasados, el exchange terminará con “_DL” or “_DLY”. Por ejemplo, “NYMEX_DL”.

3. {{close}}, {{open}}, {{high}}, {{low}}, {{time}}, {{volume}} - valores correspondientes de la barra en la que se activó la alerta. Tenga en cuenta que las alertas sobre indicadores, gráficos y dibujos no estándar dependen de una resolución, mientras que las alertas simples de precios (por ejemplo, el precio cruza algún valor) siempre se calculan en barras de 1 minuto. {{time}} es en UTC, formateado como yyyy-MM-ddTHH:mm:ssZ. Por ejemplo, 2019-08-27T09:56:00Z. Otros valores son números de punto fijo con un punto decimal que separa las partes integrales y fraccionarias. Por ejemplo, 1245.25.

4. {{timenow}} - hora del lanzamiento actual de la alerta, formateada de la misma manera que {{time}}. Tiempo de retorno al segundo más cercano, independientemente de la resolución.. 

5. {{plot_0}}, {{plot_1}}, ... {{plot_19}} - serie de salida correspondiente de un indicador utilizado en la alerta. Tenga en cuenta que los diagramas están numerados desde cero. La ID de tramo más alto es 19 (solo puede acceder a 20 primeras series de salida). Las series de salida son los valores de un indicador que puede ver en un gráfico. Por ejemplo, el indicador de volumen incorporado tiene dos series de salida: Volumen y Volumen MA. Puede crear una alerta y escribir en un cuadro de mensaje algo como esto:

Volume: {{plot_0}}, Volume average: {{plot_1}}

6. {{interval}}: devuelve el intervalo (es decir, el marco de tiempo/resolución) del gráfico en el que se crea la alerta. Tenga en cuenta que, por razones técnicas, en algunos casos, este marcador de posición devolverá "1" en lugar del período de tiempo en el gráfico. Las alertas regulares basadas en precios (con condiciones como "AAPL Crossing 120" o "AMZN mayor que 3600") se basan todas en el último valor del símbolo, por lo que el período de tiempo del gráfico no es relevante para la alerta. Debido a eso, todas las alertas basadas en precios se calculan en realidad en el período de tiempo de 1 m y el marcador de posición siempre devolverá "1" en consecuencia. Además, los gráficos de rango también se calculan en base a datos de 1 m, por lo que el marcador de posición {{interval}} siempre devolverá "1" en cualquier alerta creada en un gráfico de rango. Con las alertas creadas en dibujos e indicadores, este marcador de posición funcionará como se esperaba.

7. {{syminfo.currency}} - devuelve el código de divisa del símbolo actual ("EUR", "USD", etc.).

8. {{syminfo.basecurrency}} - devuelve el código de divisa base del símbolo actual si el símbolo hace referencia a un par de divisas. En caso contrario, devuelve "na". Por ejemplo, devuelve "EUR" cuando el símbolo es "EURUSD".

Los marcadores de posición con el prefijo "estrategia" solo se pueden usar en alertas de estrategia:

  • {{strategy.position_size}}: devuelve el valor de la misma palabra clave en Pine, es decir, el tamaño de la posición actual.
  • {{strategy.order.action}}: devuelve la cadena "comprar" o "vender" para la orden ejecutada.
  • {{strategy.order.contracts}}: devuelve el número de contratos de la orden ejecutada.
  • {{strategy.order.price}}: devuelve el precio al que se ejecutó la orden.
  • {{strategy.order.id}}: devuelve el ID de la orden ejecutada (la cadena utilizada como primer parámetro en una de las llamadas a funciones que genera órdenes: strategy.entry, strategy.exit o strategy.order).
  • {{strategy.order.comment}}: devuelve el comentario de la orden ejecutada (la cadena utilizada en el parámetro de comentario en una de las llamadas a funciones que genera órdenes: strategy.entry, strategy.exit o strategy.order). Si no se especifica ningún comentario, se utilizará el valor de strategy.order.id.
  • {{strategy.order.alert_message}}: devuelve el valor del parámetro alert_message que se puede utilizar en el código Pine de la estrategia al llamar a una de las funciones utilizadas para realizar pedidos: estrategia.entry, estrategia.exit o estrategia.order . Esta característica solo es compatible con Pine v4.
  • {{strategy.market_position}}: devuelve la posición actual de la estrategia en forma de cadena: "larga", "plana" o "corta".
  • {{strategy.market_position_size}}: devuelve el tamaño de la posición actual como un valor absoluto, es decir, un número no negativo.
  • {{strategy.prev_market_position}}: devuelve la posición anterior de la estrategia en forma de cadena: "larga", "plana" o "corta".
  • {{estrategia.prev_market_position_size}}: devuelve el tamaño de la posición anterior como un valor absoluto, es decir, un número no negativo.

Después de que se active la alerta, verá los valores correspondientes:

Las mismas reglas se aplican a los guiones escritos en Pine. Las series se cuentan según su orden de llamada en el código. Vea la lista de funciones a continuación. Sus series se pueden usar en mensajes de notificación:

  • plot;
  • plotshape;
  • plotchar;
  • plotarrow;
  • plotbar;
  • plotcandle.

Si el argumento en serie de tales funciones contiene un valor booleano, 0 o 1 se sustituirá en el mensaje de notificación. Tenga en cuenta que ciertas funciones, plotcandle y plotbar, muestran 4 series cada una, y cada una de ellas se tendrá en cuenta en la lógica de numeración.

Sin embargo, este método de acceso a las parcelas no siempre es conveniente. Para facilitar las cosas, agregamos soporte para nombrar a los diagramas usando sus nombres. Para hacer esto, use el marcador de posición {{plot("Name")}}, donde Name es el nombre de la serie.

Para los indicadores integrados, los únicos nombres compatibles son los que se usan en la versión en inglés. En el ejemplo con el indicador de Volumen para acceder a series usando sus nombres, incluiría lo siguiente en el mensaje:

Volume: {{plot("Volume")}}, Volume average: {{plot("Volume MA")}}

Del mismo modo, para que Pine Script acceda a la serie, debe especificar el nombre del argumento del título de la función correspondiente (compatible con todas las funciones de trazado excepto plotcandle y plotbar), y el idioma ya no importará. Si no tiene acceso al código, el nombre se puede ver en la configuración de estilo.

Por ejemplo, para acceder a los valores de este script:

//@version=4study("My script")plot(close, title="series")
GenericGeneric

Include {{plot("series")}} in the alert message.

El mismo nombre se muestra en la configuración del script:

Cuando utilice varios indicadores en una sola alerta, puede consultar los valores de la primera, la indicada en la primera lista desplegable. Vea el ejemplo a continuación.

Cuando una alerta incluye esta configuración, solo puede hacer referencia a los valores de MA. Para acceder a los valores del script "Mi script", debe seleccionarlo en la primera lista desplegable.

También puede especificar nuevos marcadores de posición en el argumento del mensaje de la función alertcondition. Por ejemplo:

//@version=4study("My script")alertcondition(close>open, message="price {{ticker}} = {{close}}")
GenericGeneric

El mensaje del argumento se extrae automáticamente en la ventana del mensaje en el diálogo de creación de alertas.

Tenga en cuenta que al crear una alerta con una condición desde la función de alertcondition, la sustitución del valor solo funcionará para scripts v4 o superiores.

Los valores de las alertas activadas se pueden usar junto con webhooks enviando valores variables de un mensaje a las direcciones deseadas. O mediante el uso de aplicaciones externas de terceros como TradingView Alerts a MT4 / MT5, que ya utiliza el uso de valores dinámicos. Algunos casos de uso de sintaxis se pueden encontrar en este script de ejemplo. Esto abre aún más posibilidades para aquellos de ustedes que usan alertas.