18 至 27 分鐘
,

我學 Pine Script 的時候,最痛苦的不是語法——而是找不到一篇像樣的中文教學。

Google 搜「Pine Script 教學」,出來的不是簡體中文就是英文文件的機器翻譯,讀起來像在解密碼。TradingView 的官方文件寫得很完整,但全是英文,而且對沒有程式基礎的人來說,那些術語本身就是障礙。

所以我寫了這篇。目標很明確:讓一個從沒寫過程式的人,看完之後能在 TradingView 上寫出一個能跑回測的均線交叉策略。不講廢話,每一行程式碼都會解釋為什麼這樣寫。

Pine Script 是什麼?為什麼要學它?

Pine Script 是 TradingView 專用的程式語言,用來寫技術指標和交易策略。它跟 Python、JavaScript 這些通用程式語言不一樣——Pine Script 只做一件事:處理金融數據和交易邏輯。

這個「只做一件事」反而是優勢。你不需要學怎麼連資料庫、不需要學怎麼架伺服器、不需要處理 API 認證。打開 TradingView 的 Pine 編輯器,寫完按「加到圖表」,結果就直接顯示在 K 線圖上。

學 Pine Script 對你有什麼用?

第一,回測你的交易想法。 你覺得「BTC 跌到 20 日均線就買、漲到均線上方 5% 就賣」這個策略有效嗎?寫成 Pine Script 跑一次歷史回測,三分鐘就有答案。不用再靠感覺。

第二,自動化交易。 Pine Script 策略可以透過 TradingView 的 Alert 功能設定通知,再搭配 Webhook 連接到 3Commas 或其他自動交易平台,實現從信號到下單的自動化。

第三,看懂別人的策略。 TradingView 社群有幾萬個免費指標和策略,但你不懂 Pine Script 的話,它們對你來說就是黑箱。學了之後你能看懂邏輯、修改參數、甚至組合多個策略。

環境準備(2 分鐘搞定)

你需要的東西:一個 TradingView 帳號(免費版就夠用)。打開任何一張 K 線圖,點底部的「Pine 編輯器」按鈕,就是你寫程式的地方。

沒了。不需要安裝任何軟體、不需要設定環境變數、不需要命令列。這也是 Pine Script 對新手最友善的地方。

你的第一個策略:均線交叉

我們要寫的是一個經典的「雙均線交叉策略」:當短期均線(7 日)從下往上穿越長期均線(25 日),視為買入信號;當短期均線從上往下穿越長期均線,視為賣出信號。這不是什麼神策略,但它足以讓你理解 Pine Script 的核心概念。

完整程式碼

//@version=6
strategy("雙均線交叉策略", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// 參數設定(可在圖表上直接調整)
fastLen = input.int(7, "短期均線天數", minval=1)
slowLen = input.int(25, "長期均線天數", minval=1)

// 計算均線
fastMA = ta.sma(close, fastLen)
slowMA = ta.sma(close, slowLen)

// 畫在圖表上
plot(fastMA, "短期均線", color=color.orange, linewidth=2)
plot(slowMA, "長期均線", color=color.blue, linewidth=2)

// 交叉判斷
longCondition = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)

// 執行交易
if longCondition
    strategy.entry("買入", strategy.long)

if shortCondition
    strategy.close("買入")

逐行解釋

第 1 行://@version=6 — 告訴 TradingView 你用的是 Pine Script 第 6 版。這是 2026 年的最新版本,語法跟舊版有些差異。網路上很多教學還在用 v4 或 v5,如果你照抄可能會報錯——注意版本號。

第 2 行:strategy(...) — 這行宣告「這是一個策略」而不是一個單純的指標。差異在於策略可以做回測(模擬買賣),指標只能顯示數值。overlay=true 策略畫在 K 線圖上面;default_qty_value=100 每次用 100% 的資金。

第 5-6 行:input.int(...) — 建立可以在圖表上直接調整的參數。你不需要改程式碼就能測試不同的均線天數——在圖表的策略設定裡拖一下滑桿就行。

第 9-10 行:ta.sma(close, fastLen)ta.sma 是「簡單移動平均線」函數。close 代表收盤價,fastLen 是天數。這行的意思就是「算最近 7 天的平均收盤價」。

第 17-18 行:ta.crossoverta.crossunder — 這是 Pine Script 的內建函數,專門偵測兩條線的交叉。crossover 是「從下往上穿越」(黃金交叉),crossunder 是「從上往下穿越」(死亡交叉)。

第 21-24 行:strategy.entrystrategy.closestrategy.entry("買入", strategy.long) 建立多頭倉位,strategy.close("買入") 平掉倉位。就這樣,整個策略 15 行程式碼。

怎麼跑回測?

把上面的程式碼貼到 Pine 編輯器,按「加到圖表」。TradingView 會自動在 K 線圖上畫出均線,並且在底部的「策略測試器」面板顯示回測結果。你會看到幾個關鍵數據:

淨利潤:策略從開始到結束總共賺了多少(或虧了多少)。

總交易次數:策略觸發了幾次買賣。如果次數太少(比如整年只交易 3 次),數據的統計意義不大。

勝率:贏的交易佔總交易的比例。但注意,勝率高不代表策略好——如果你贏的每次賺 1%、輸的每次虧 5%,即使勝率 80% 也是虧的。

盈虧比(Profit Factor):所有獲利交易的總利潤 ÷ 所有虧損交易的總虧損。大於 1 代表整體是賺的。我個人的基準是 Profit Factor 要大於 1.5 才值得考慮。

最大回撤(Max Drawdown):策略在運行期間從高點到低點的最大虧損幅度。這個數字比淨利潤更重要——你的策略可能最終賺了 50%,但中間有一段虧了 40%,你有辦法扛住嗎?

怎麼改進這個策略?

均線交叉策略有一個經典問題:在震盪行情中會被反覆打臉(假突破太多)。以下是三個常見的改進方向:

加一個趨勢過濾器

只在大趨勢方向順的時候才交易。比如加一條 200 日均線,只有價格在 200 日均線上方才做多:

trendFilter = close > ta.sma(close, 200)

if longCondition and trendFilter
    strategy.entry("買入", strategy.long)

加一個止損

原始版本沒有止損,如果遇到急跌會損失慘重。加一個 5% 的追蹤止損:

if longCondition
    strategy.entry("買入", strategy.long)
    strategy.exit("止損", "買入", trail_points=close * 0.05 / syminfo.mintick, trail_offset=close * 0.02 / syminfo.mintick)

結合 RSI 過濾

只在 RSI 不在超買區時才買入,避免追高:

rsi = ta.rsi(close, 14)

if longCondition and rsi < 70
    strategy.entry("買入", strategy.long)

每加一個條件,記得重新跑回測比較前後差異。有時候加了過濾器反而讓表現變差——這就是回測的價值。

Pine Script 常用函數速查表

函數功能用法範例
ta.sma(source, length)簡單移動平均線ta.sma(close, 20)
ta.ema(source, length)指數移動平均線ta.ema(close, 12)
ta.rsi(source, length)RSI 相對強弱指標ta.rsi(close, 14)
ta.macd(source, fast, slow, signal)MACD 指標ta.macd(close, 12, 26, 9)
ta.crossover(a, b)a 從下往上穿越 bta.crossover(fastMA, slowMA)
ta.crossunder(a, b)a 從上往下穿越 bta.crossunder(fastMA, slowMA)
ta.highest(source, length)N 期最高值ta.highest(high, 20)
ta.lowest(source, length)N 期最低值ta.lowest(low, 20)
ta.atr(length)平均真實範圍ta.atr(14)
ta.bb(source, length, mult)布林通道ta.bb(close, 20, 2)

下一步

學完這篇你已經能寫出基本的 Pine Script 策略了。接下來可以:深入了解回測技巧、了解更多策略類型、如果你想跳過寫程式直接開始可以看不用 Code 的方法、或回到系列起點

常見問題 FAQ

Pine Script 需要程式基礎才能學嗎?

不需要。Pine Script 的語法比 Python 和 JavaScript 都簡單,而且它只處理金融數據這一件事。一個完整的均線交叉策略只需要 15 行程式碼。如果你看得懂 Excel 的 IF 函數,你就能學 Pine Script。

Pine Script v6 和 v5 有什麼差別?

v6 是 2025 年推出的最新版本,主要改進了類型系統和錯誤處理。對新手來說最大的差別是部分函數名稱和語法有變化。如果你是新學的,直接學 v6 就好。網路上很多舊教學用 v4 或 v5,照抄可能會報錯,注意第一行的版本號。

免費版 TradingView 可以跑 Pine Script 嗎?

可以。免費版可以寫和執行 Pine Script 策略,也能看回測結果。限制是同時只能在圖表上放 3 個指標/策略、歷史數據量比付費版少。對學習和基本回測來說免費版完全夠用。

Pine Script 寫的策略可以自動下單嗎?

Pine Script 本身不能直接連交易所下單,但可以透過 TradingView 的 Alert + Webhook 功能,把信號傳給 3Commas 等第三方平台來自動執行。如果你想完全自動化,建議學 Python 直接連 OKX API,詳見 Python 量化交易入門

Mr. Slash 不是你的理財顧問。本文中的策略程式碼僅用於教學目的,不構成投資建議。回測結果不代表未來表現,任何策略上線前請用小額資金測試。

關於Mr. Slash

「Mr. Slash 的系統性人生」,創立於 2024年,由 Mr. Slash 本人及專業編輯團隊經營的財經內容平台。

我們的宗旨是透過投資、財經、自動化與新興科技等領域的深入解說與應用,幫助讀者打造穩定的被動收入系統。內容涵蓋加密貨幣、股息資產、量化工具、平台分潤等實用策略,協助你用更聰明的方法配置資金、累積資產,走在財務自由的路上,少走冤枉路。

若為商業合作邀稿,將會清楚標註「不代表本站立場」。

商業合作

如果您有任何關於我們團隊或網站內容的疑問或建議,歡迎您前往IG 私訊 @slash.Capital聯繫我們,謝謝!

發表迴響

Trending

探索更多來自 Mr. Slash|系統流人生 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading

Join Mr. Slash