如何在快訊中使用變數值?

您可以使用特定的佔位符來存取快訊裡的變數值。例如,您可以在 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}} - 快訊中使用的指標的相應輸出系列。請注意,這些plot從0開始編號,最高的編號是19(您只能訪問20個第一個輸出序列)。輸出序列是您可以在圖表上看到的指標值,例如,內建的成交量指標有兩個輸出系列:“成交量” 和 “成交量MA”。您可以在其上建立快訊,並在訊息框中鍵入如下內容:

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

6. {{interval}} - 傳回建立快訊的圖表的週期(即時間範圍/時間週期)。請注意,由於技術原因,在某些情況下,此佔位符將傳回「1」而不是圖表上的時間範圍。常規的基於價格的快訊(條件為“AAPL Crossing 120”或“AMZN Greater Than 3600”等)均基於商品的最後值,因此圖表的時間範圍與快訊無關。因此,所有基於價格的快訊實際上都是在100萬時間範圍內計算的,佔位符將始終相應地傳回「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")

在快訊訊息中包含 {{plot("series")}}

同樣的名稱顯示在腳本設定:

在單一快訊中使用多個指標時,您可以引用第一個指標的值 - 第一個下拉列表中指示的值。請參見下面的範例。

當快訊包含這些設定時,您只能引用MA值。要存取腳本“My script”的值,您需要在第一個下拉列表中選擇它。

您還可以在alertcondition函數的message參數中指定新的佔位符,例如:

//@version=4
study("My script")
alertcondition(close>open, message="price {{ticker}} = {{close}}")
從自變數來的訊息將自動拉入建立快訊對話框中的訊息視窗。

請注意,當從alertcondition函數建立具有條件的快訊時,值替換僅適用於v4腳本或更高版本。

透過將訊息中的變數值發送到所需的網址,可以將觸發快訊中的值與Webhooks一起使用。或透過使用外部第三方應用程式,例如TradingView Alerts to MT4/MT5,該應用程式已經利用了動態值的用法。在此範例腳本中可以找到一些語法用例,為使用快訊的您開啟了更多可能性。