六月 25, 2019

介紹Pine Script v4!

瞧瞧新版本的Pine Script v4程式語言!包含了許多新功能。我們改進了語言的結構並修復了一些問題。然而,最關鍵和期待已久的功能是支援繪圖物件。

我們將簡要提及此部落格文章中的新功能。如果您想了解詳細資訊,請仔細閱讀文件參考手冊(請注意,您可以直接進入繪圖物件說明部分)。

標籤繪圖物件

label.new函數允許您在圖表上繪製標籤,包括包含任意文本的標籤。下面是一個腳本的示例,該腳本繪製包含最後一個K棒的關閉的標籤:

//@version=4
study("Last Bar Price", overlay=true)

l = label.new(bar_index, na, 'last price is '+tostring(close), 
  color=close >= open ? color.green : color.red, 
  textcolor=color.white,
  style=label.style_labeldown, yloc=yloc.abovebar)

label.delete(l[1])

使用label.*創建標籤物件後,可以編輯刪除標籤物件。以下是使用標籤的更複雜腳本的示例 – Pivot Points High/Low

線條繪圖物件

line.new函數允許您在圖表上繪製線條。下面是一個簡單腳本的示例,該腳本繪製一條連接當前K棒高點和第10個歷史K棒低點的線:

//@version=4
study("Line", overlay=true)
l = line.new(bar_index, high, bar_index[10], low[10], width = 4)
line.delete(l[1])

可以使用line.*的相應函數編輯刪除線物件。以下是使用線物件更複雜腳本的示例 – Zig Zag

請注意,我們目前可以在圖表上為每個腳本顯示大約50-55個單一類型(標籤或直線)的繪圖。這是旨在防止過多伺服器使用的預期限制

新的行和直線數據類型通過允許您在用戶腳本中實現流行指標背後的複雜邏輯,極大地增強了Pine Script的功能。示例可以在文件中找到。

系列字符串

我們現在支援一系列字符串數據類型的變數。以下是在標籤中使用系列字符串的示例:

//@version=4
study("Series string", overlay = true)
draw_label(title) =>
    label.new(bar_index, high, text=title)
t = close >= open ? "green" : "red"
draw_label(t)

 

Var關鍵字

以通常方式聲明的變數在每次計算腳本時重新初始化。這需要腳本顯式傳播變數的先前值。 var關鍵字聲明一個變數並僅初始化一次。這允許變數的值從初始化時刻或最後一次賦值後自動保存在K棒之間。以下是計算圖表上綠色K棒數量的腳本示例:

//@version=4
study("My Script")
var s = 0.0
if close >= open
    s := s + 1
plot(s)

每次收盤價 >= 開盤價時,s變數的值將增加1。初始化值可以是任何算術表達式。

使用var關鍵字聲明變數的語法避免使用以下代碼: s := nz(s[1], s)。使用繪圖時,使用var修飾符聲明變數非常有用。

重命名內建常數、變數和函數

在Pine Script v4中,重命名了以下內建常數、變數和函數:

  1. 顏色常數(例如 red)被移動到color.*命名空間(例如 color.red)。
  2. color 函數已重命名為 color.new
  3. 輸入類型的常數(例如 integer)被移動到input.*命名空間 (例如 input.integer)。
  4. 繪圖樣式常數(例如 histogram 樣式)被移動到plot.style_*命名空間(例如 plot.style_histogram)。
  5. hline 函數的樣式常數(例如 dotted 樣式)將移動到 hline.style_*命名空間 (例如 hline.style_dotted)。
  6. 一周中的常數(例如 sunday)被移動到dayofweek.*命名空間 (例如 dayofweek.sunday)。
  7. 當前圖表時間範圍的變數(例如 period, isintraday)被移動到timeframe.*命名空間(例如 timeframe.period, timeframe.isintraday)。
  8. interval 變數已重命名為 imeframe.multiplier
  9. tickertickerid 變數分別重命名為 syminfo.tickersyminfo.tickerid
  10. 包含K棒索引值的 n 變數已重命名為 bar_index

重命名以上所有內容的原因是構建標準語言工具並使代碼處理更容易。新名稱根據公共前綴下的分配進行分組。例如,如果在編輯器中鍵入 ‘color’ 並按 Ctrl + Space,則會看到包含所有可用顏色常數的列表。

顯式變量類型聲明

在Pine Script v4中,不再可能在聲明時建立具有未知數據類型的變數(請參閱 na 值)。這樣做是為了避免在變數類型初始化後使用 na 值更改時出現的許多問題。從現在開始,在使用 na 值聲明變數時,需要使用關鍵字或類型函數(例如 float)顯式指定其類型:

//@version=4
study("NA", overlay=true)
float a = na
a := if close >= open
    high
else
    low
plot(a)

試試新的Pine Script v4吧!一些用戶已經測試了新功能,並使用繪圖編寫了幾個令人印象深刻的腳本:

例如,里卡多桑托斯編寫了一系列腳本,您可以在下面看到:

Joris Duyck 編寫了Trendlines 腳本,說明了線條繪製的可能性。

我們希望這些例子能夠激勵您!您可以在我們的聊天室中提出問題,討論問題並分享反饋。我們要感謝所有Pinescripters社區成員,他們參與了beta測試並為我們提供了很多幫助!您還可以在Stack Overflow頁面上詢問與代碼相關的問題。