關鍵要點

  • Pine Script 是 TradingView 內置的腳本語言,用於在瀏覽器中直接創建自定義技術指標和交易策略。

  • Pine Script v6 是當前版本。它在 v5 的“ta”命名空間(例如 ta.ema() 和 ta.rsi())基礎上進行了增強,增加了更嚴格的類型系統,默認啓用動態數據請求,並內置了代碼轉換器,幫助遷移舊腳本。

  • 你可以用少量代碼創建像 SMA、EMA 以及帶顏色編碼的蠟燭圖等簡單指標。

  • TradingView 的策略測試器允許你使用歷史價格數據回測自定義策略,以檢查是否存在邏輯問題。

  • 不需要安裝任何軟件。Pine Script 會在 TradingView 的網頁編輯器中完全運行。

Binance Academy courses banner

簡介

有效的技術分析取決於你是否擁有完成任務所需的正確工具。TradingView 是一個在加密貨幣、外匯和股票市場上廣泛使用的圖表平臺,內置了大量指標。但真正讓它與衆不同的是:你可以把它定製到什麼程度。

Pine Script 是 TradingView 自有的腳本語言。它讓你能夠直接在圖表上創建自定義指標、警報和策略。本指南將帶你瞭解當前版本 Pine Script v6 的基礎內容,講解如何設置你的第一個腳本、繪製指標,並將它們組合成可複用的工具。

Pine Script 是什麼?

Pine Script 是 TradingView 開發的一種輕量級腳本語言。你可以在內置於 TradingView 界面的 Pine 編輯器中編寫腳本。當你點擊“Add to Chart(添加到圖表)”時,腳本會在 TradingView 的服務器上運行,輸出結果會直接顯示在你的圖表上,無需下載或安裝。

Pine Script v6 是當前版本,也是你編寫任何新腳本應使用的版本。它基於 v5 引入的更清晰的語法和 ta 命名空間,並增加了若干改進:更嚴格的類型系統、默認啓用動態數據請求,以及更有條理的函數處理方式。該語言包含一份全面的用戶手冊,並提供大量已發佈的腳本供你在 TradingView 上瀏覽。

Pine Script v6 有哪些新內容?

如果你以前用過 Pine Script v5,下面是 v6 中最有實際意義的變化:

  • 更嚴格的類型系統:在 v5 中,數值(int 和 float)可以在條件中被隱式當作布爾值使用。在 v6 中不再允許。如果你的條件使用了數字,你必須使用 bool() 函數顯式進行類型轉換。這會讓代碼更不含糊,也更容易調試。

  • 默認啓用動態請求:在 v5 中,對 request.*() 函數(例如 request.security())的調用必須放在全局作用域,並且需要固定的符號和時間框參數。在 v6 中默認啓用動態請求,這意味着你可以在循環和條件代碼塊中調用 request.*(),並將序列值作爲參數傳入。這顯著擴展了多標的和多時間框腳本的能力。

  • 內置 v5-to-v6 轉換器:Pine 編輯器可以自動將 v5 腳本轉換爲 v6。打開“Manage script(管理腳本)”下拉菜單並選擇“Convert code to v6(將代碼轉換爲 v6)”。轉換器會自動處理大多數變更,但某些情況可能需要你手動檢查。

  • 多行字符串(2026 年 4 月):v6 現在支持使用三引號分隔符(""" 或 '')來編寫多行字符串字面量。這樣你就可以在不使用 \n 轉義序列的情況下,更輕鬆地跨多行編寫格式化標籤、工具提示和日誌消息。

較早版本的 Pine Script(v3、v4、v5)仍可在 TradingView 上運行,但 v5 現在已棄用,建議在所有新腳本中使用 v6。

設置 TradingView

你可以從免費 TradingView 賬號開始。打開任意資產的圖表,例如 BTC/USDT,然後在右側工具欄中找到 Pine 編輯器圖標。點擊它以打開代碼編輯器。

PineEditor TradingView

當你點擊“Add to Chart(添加到圖表)”後,腳本會運行並在當前圖表上顯示結果。要移除腳本,請在圖表任意位置右鍵單擊並選擇“Remove Indicators(移除指標)”。在示例之間保持圖表整潔,有助於你更清晰地查看每個結果。

Pine 編輯器

Pine 編輯器自帶一個默認的兩行腳本。下面是在 Pine Script v6 中的一個最小示例:

//@version=6

indicator("我的腳本", overlay=true)

plot(close)

該 indicator() 函數用於定義腳本。在 v5 和 v6 中,它取代了 v4 及更早版本中使用的舊 study() 函數。overlay=true 參數會將結果顯示在主圖表上,而不是在下方的獨立面板中。plot(close) 這一行會爲每根K線繪製一條折線,使用收盤價 close。

繪製K線蠟燭圖

折線圖會展示收盤價,但蠟燭圖會把開盤價、最高價、最低價和收盤價放在一起,讓你獲得更多關於價格走勢的信息。下面是如何繪製帶顏色編碼的蠟燭圖:

//@version=6

indicator("彩色蠟燭圖", overlay=true)

colors = open >= close ? color.red : color.green

plotcandle(open, high, low, close, color=colors)

該腳本會逐根K線檢查:如果開盤價大於或等於收盤價,那麼該蠟燭爲紅色(價格下跌)。如果收盤價高於開盤價,則蠟燭爲綠色。這是大多數行情繪圖軟件中使用的標準配色約定。

繪製移動平均線(Moving Averages)

移動平均線會對指定週期內的價格數據進行平滑處理,從而更容易識別趨勢。在 Pine Script v6 中,ta 命名空間下內置了簡單移動平均線(SMA)和指數移動平均線(EMA)的函數。

簡單移動平均線(SMA)

SMA 會在給定的週期數內計算收盤價的平均值。要繪製一個 10 週期的 SMA:

plot(ta.sma(close, 10))

更改週期數會調整回看窗口。週期越長,線條越平滑,但對近期變化的反應會更慢。

指數移動平均線(EMA)

EMA 使用一個乘數對近期價格賦予更高權重,該乘數爲 2 / (length + 1)。因此,相比 SMA,EMA 對近期價格變化的響應更快。要將兩者並排繪製:

//@version=6

indicator("SMA 對比 EMA", overlay=true)

plot(ta.sma(close, 10))

plot(ta.ema(close, 10))

你會發現一個細微差異:在快速波動的行情中,EMA 能更緊密地跟隨價格變動,而 SMA 則會略微滯後。

內置腳本

TradingView 提供了許多指標的預製版本。在 Pine 編輯器中點擊“New”,並選擇諸如“Moving Average Exponential(指數移動平均)”之類的指標以查看其源代碼。這些腳本通常會使用諸如 input.int() 或 input.float() 這樣的帶類型輸入函數,它們會在圖表上創建可交互的設置面板。這樣你就可以在不修改代碼的情況下調整長度等參數。

繪製相對強弱指數(RSI)指標

RSI 指標衡量近期價格變動的速度和幅度,輸出一個介於 0 和 100 之間的數值。70 以上的讀數通常與可能的超買情況相關,而 30 以下的讀數可能提示潛在的超賣情況。這些是通用參考水平,並不能保證價格方向。

在 Pine Script v6 中,RSI 函數爲 ta.rsi(close, length)。如果你想添加一個現成的 RSI 策略,在 Pine 編輯器中點擊 New > RSI Strategy。它會根據 RSI 閾值在圖表上添加方向標記,並切換視圖到 Strategy Tester(策略測試器)選項卡。

RSI 通常以 14 個週期進行衡量,但你可以調整該數值以適配你的方法。週期越長,指標更平滑且信號更少;週期越短,則對價格變化更敏感。

回測你的策略

Pine Script 包含 strategy() 模式,可讓你使用歷史價格數據來回測規則。下面是一個使用輸入變量的示例框架,這樣你就可以在不編輯代碼的情況下在圖表上調整水平:

//@version=6

strategy("基礎策略", overlay=true)

entryLevel = input.int(defval=30000, title="入場價格")

exitLevel = input.int(defval=32000, title="出場價格")


if close >= entryLevel

strategy.entry("多頭", strategy.long)

if close >= exitLevel

strategy.close_all(comment="退出")

將其添加到圖表後,TradingView 會打開策略測試器選項卡。這裏會基於歷史價格數據顯示進出場記錄以及彙總統計信息。過去的表現並不能可靠地反映未來結果。回測有助於檢查策略邏輯是否合理,但它不會預測未來的結果。

注意:在 v6 中,策略的默認多頭/空頭保證金百分比爲 100%,當超過 9,000 筆交易限制時,策略引擎會截斷最早的訂單,而不是拋出錯誤。這些更改可能會影響你的回測結果與在 v5 中運行的同一腳本的對比方式。

組合指標

Pine Script 最實用的應用之一,就是將多個指標組合到同一個自定義視圖中。下面的腳本會根據 EMA 和 RSI 條件對蠟燭進行着色:

//@version=6

indicator("EMA + RSI 蠟燭圖", overlay=true)

emaLength = input.int(title="EMA 週期", defval=25, minval=1)

rsiLength = input.int(title="RSI 週期", defval=25, minval=1)


emaVal = ta.ema(close, emaLength)

rsiVal = ta.rsi(close, rsiLength)


colors = (close > emaVal and rsiVal > 50) ? color.green : color.red

plot(emaVal, "EMA")

plotcandle(open, high, low, close, color=colors)

當收盤價高於 EMA 且 RSI 高於 50 時,該蠟燭會被標記爲綠色,否則爲紅色。input.int() 這類函數會在圖表上創建設置面板,因此你可以通過交互式方式調整兩個週期長度。這種可視化方式讓你更容易發現當兩種條件在同一根K線上同時滿足時會發生什麼。

這不應被視爲金融建議,而且任何指標組合都無法消除交易中的不確定性。請將自定義腳本作爲更廣泛的研究與分析流程的一部分來使用。

常見問題(FAQ)

我應該使用 Pine Script 的哪個版本?

Pine Script v6 是當前版本,也是你應當用於所有新腳本的版本。像 v5 這樣的更早版本仍然受支持,但已被棄用。如果你已經有一個 v5 腳本,Pine 編輯器內置了轉換器:打開“Manage script(管理腳本)”下拉菜單並選擇“Convert code to v6(將代碼轉換爲 v6)”。

study() 函數發生了什麼?

在 Pine Script v5 中,study() 函數被重命名爲 indicator(),在 v6 中延續了這一變化。它們的作用相同:用於定義腳本名稱以及屬性,例如是否疊加在主圖表上或顯示在獨立面板中。如果你看到舊腳本使用 study(),那麼它們通常是 v4 或更早版本編寫的。

我可以免費使用 Pine Script 嗎?

可以。Pine 編輯器以及基礎 Pine Script 功能在所有 TradingView 方案中都可使用,包括免費套餐。一些功能(例如同時運行多個腳本)需要付費方案。編寫和測試自定義腳本不需要訂閱。

Pine Script 中 ta 命名空間是什麼?

ta 命名空間在 Pine Script v5 中引入,並在 v6 中繼續保留。過去直接調用的一些內置技術分析函數(例如 ema()、sma() 和 rsi())現在改爲通過 ta.ema()、ta.sma() 和 ta.rsi() 訪問。這使得代碼更明確,也更便於一眼閱讀。

在 Pine Script v6 中,策略(strategies)有哪些變化?

v6 的策略有幾項默認設置發生了變化。多頭和空頭倉位的默認保證金百分比現在都是 100%。當超過 9,000 筆交易限制時,策略引擎也會截斷最早的訂單,而不是拋出錯誤。如果你正在將 v5 策略遷移到 v6,請重新檢查你的回測結果,因爲這些變化可能會影響績效統計數據。

回測能可靠地預測未來表現嗎?

不能。回測只能展示某個策略在歷史數據上的表現,而不是它在未來會如何。市場會變化,過去存在的條件未必會重複。回測有助於識別策略中的邏輯問題,但不應僅憑回測結果作爲任何交易決策的依據。

結語

Pine Script v6 讓你可以在 TradingView 上不依賴任何外部軟件或安裝來構建並測試自定義指標變得更簡單。先從簡單腳本開始,逐步增加複雜度,是學習該語言的實用方法。Pine 編輯器內置的示例腳本庫,以及內置的 v5-to-v6 轉換器,都是從更早版本升級時很有用的起點。

指標是用於分析的工具,而不是能夠保證特定結果的信號。任何指標組合都無法消除交易中的不確定性。請將 Pine Script 用作更廣泛研究流程的一部分,並始終把風險管理視爲任何策略的核心組成部分。

延伸閱讀

  • 什麼是技術分析(Technical Analysis)?

  • 什麼是 RSI 指標?

  • 移動平均線解析

  • K線蠟燭圖新手指南

  • TradingView 新手指南

免責聲明:本內容僅以“現狀(as is)”的方式提供給你,用於一般信息與教育目的,不做任何形式的陳述或保證。它不應被理解爲金融、法律或其他專業建議,也不旨在推薦購買任何特定產品或服務。你應當向合適的專業顧問尋求自己的建議。如果內容由第三方貢獻者提供,請注意其所表達的觀點屬於該第三方貢獻者,並不必然反映 Binance Academy 的觀點。數字資產價格可能波動。你的投資價值可能上漲或下跌,你可能無法收回所投入的金額。你的投資決策完全由你自行負責,而 Binance Academy 不對你可能遭受的任何損失承擔責任。如需更多信息,請參閱我們的《使用條款》《風險警示》以及 Binance Academy 的條款。