如何在警报中使用变量值?

您可以使用特定的占位符来存取警报里的变数值。例如,您可以在 NASDAQ:AAPL 建立警报并在消息 (Message) 框里输入:  

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


警报触发后,您会获得相应的值:

以下是可用的占位符列表:

 

1. {{ticker}} - 警报中使用的商品代码 (AAPL, BTCUSD等)。

 

2. {{exchange}} - 警报中使用的品种的交易所名称 (NASDAQ, NYSE, MOEX等)。请注意,延迟数据的商品,交易所名称以“_DL” 或 “_DLY” 来结尾。例如,“NYMEX_DL”。

3. {{close}}, {{open}}, {{high}}, {{low}}, {{time}}, {{volume}} - 触发警报的K线的相应值。请注意,指针、非标准图表和图形的警报取决于时间周期,而简单的价格警报(例如,价格超过某个值)总是以1分钟的K线计算。{{time}}采用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ,例如2019-08-27T09:56:00Z。其他值以定点数表示,用小数点将整数和小数分开,例如1245.25。

 

4. {{timenow}} - 警报的当前触发时间,格式与{{time}}相同。无论时间周期如何,都将时间返回至最接近的秒。

5. {{plot_0}}, {{plot_1}}, ... {{plot_19}} - 警报中使用的指标的相应输出序列。请注意,这些plot0开始编号,最高的编号是19(您只能访问20个第一个输出序列)。输出序列是您可以在图表上看到的指标值,例如,内置的成交量指标有两个输出序列:“成交量” 和 “成交量MA”。您可以在其上建立警报,并在消息框中输入如下内容:

 

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

6.{{interval}} - 返回在其上建立警报的图表的时间周期(即时间范围/分辨率)。请注意,出于技术原因,在某些情况下,此占位符将返回“1”,而不是图表上的时间周期。常规的基于价格的警报(条件为“ AAPL穿越120”或“ AMZN大于3600”)均基于交易品种的最后一个值,因此图表的时间周期与警报无关。因此,所有基于价格的警报实际上都是在1m时间周期内计算的,并且占位符将始终始终相应地返回“1”。此外,范围图也是基于1m数据计算的,因此{{interval}}占位符将在范围图上建立的任何警报中始终返回“1”。透过在图形和指标上建立警报,该占位符将按预期运行。

7. {{syminfo.currency}} - 返回当前商品的货币代码(“EUR”、“USD”等)。

8. {{syminfo.basecurrency}} - 如果商品引用货币对,则返回当前商品的基础货币代码。否则,返回 na。例如,当商品为“EURUSD”时,它返回“EUR”。

具有“ strategy”前缀的占位符只能在策略警报中使用:

  • {{strategy.position_size}} - 返回Pine中相同关键字的值,即当前位置的大小。
  • {{strategy.order.action}} - 为执行的订单返回字符串“buy”或“sell”。
  • {{strategy.order.contracts}} - 返回已执行订单的合约数量。
  • {{strategy.order.price}} - 返回执行订单的价格。
  • {{strategy.order.id}} - 返回已执行订单的ID(在生成订单的函数调用之一中用作第一个参数的字符串:strategy.entry,strategy.exit或strategy.order)。
  • {{strategy.order.comment}} - 返回已执行订单的注释(在生成订单的函数调用之一中的comment参数中使用的字符串:strategy.entry、strategy.exit、或strategy.order)。如果未指定注释,则将使用strategy.order.id的值。
  • {{strategy.order.alert_message}} - 返回alert_message参数的值,该参数可以在调用用于下订单的函数之一时在策略的Pine代码中使用:strategy.entry、strategy.exit、或strategy.order。此功能仅在Pine v4及更高版本中受支持。 
  • {{strategy.market_position}} - 以字符串形式返回策略的当前位置:“long”、“flat”、或 “short”。
  • {{strategy.market_position_size}} - 以绝对值(即非负数)的形式返回当前仓位的大小。
  • {{strategy.prev_market_position}} - 以字符串形式返回策略的上一个位置:“long”、“flat”、或 “short”。
  • {{strategy.prev_market_position_size}} - 以绝对值(即非负数)的形式返回前一个仓位的大小。

 

警报触发后,您会看到相应的值:

相同的规则适用于用Pine编写的脚本。 根据程序代码中调用顺序对序列进行计数。请参阅下面的功能列表,它们的序列可用于通知消息中:

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

如果此类函数的series参数包含布尔值,则通知消息中将替换0或1。请记住,某些功能 - plotcandle和plotbar - 分别显示4个序列,并且在编号逻辑中将考虑其中的每个功能。

 

然而,这种访问plot的方法并不总是很方便。为了使事情变得容易,我们增加了对使用其名称调用plot的支持。为此,请使用占位符{{plot("Name")}},其中Name是序列的名称。

 

对于内置指标,唯一支持的名称是英文版本中使用的名称。以下这个使用名称来调取序列值的成交量指标的范例中,您要在消息中包括以下内容:

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

同样地,为使Pine Script调取该系列,您应该从相应函数的title参数中指定名称(除了plotcandle和plotbar之外,所有plot函数均支持),并且语言将不再重要。如果您无权调取程序代码,则可以在样式设置中看到该名称。

 

例如,调取这个脚本的值:

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

通用

在警报消息中包含 {{plot("series")}}

 

同样的名称显示在脚本设定:

在单一警报中使用多个指标时,您可以引用第一个指标的值 - 第一个下拉列表中指示的值。请参见下面的范例。

 

当警报包含这些设定时,您只能引用MA值。要调取脚本“My script”的值,您需要在第一个下拉列表中选择它。

 

您还可以在alertcondition函数的message参数中指定新的占位符,例如:

 

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

通用

从自变量来的消息将自动拉入建立警报对话框中的消息窗口。

 

请注意,当从alertcondition函数建立具有条件的警报时,值替换仅适用于v4脚本或更高版本。

 

透过将消息中的变量值发送到所需的网址,可以将触发警报中的值与Webhooks一起使用。或透过使用外部第三方应用程序,例如TradingView Alerts to MT4/MT5,该应用程序已经利用了动态值的用法。在此范例脚本中可以找到一些语法示例,为使用警报的您开启了更多可能性。