
一分鐘精華摘要:
很多交易者在看盤時都有自己的一套進出場感覺:「突破 20 日高點進場、回測月線加碼、帶量突破做多」。然而,這種憑感覺的主觀交易,往往在歷經幾次洗盤或假突破後讓人信心崩潰。想要建立能穩定執行的交易系統,第一步就是將策略「規則化」與「回測驗證」。TradingView 內建的 Pine Script 是目前全球金融圈門檻最低、視覺化最強的輕量級程式語言。你不需要具備資深工程師的背景,只要掌握 Pine Script v5 的核心語法邏輯,就能在幾分鐘內把「均線趨勢濾網 (Trend Filter) + 成交量放大突破 (Volume Breakout)」組裝成客觀策略,並一鍵跑出包含勝率、獲利因子 (Profit Factor) 與最大回撤 (MDD) 的歷史績效報告!
「看著 K 線圖覺得突破均線買進很賺,但過去五年如果真的每一筆都照著做,到底會賺錢還是賠到懷疑人生?」
在主觀交易的世界裡,最常見的痛苦就是「事後看圖說故事天下無敵,盤中臨盤操作卻頻繁被巴」。
在上一篇 【量化工具實戰 #01】用 ChatGPT 打造個人專屬財報評分警報器 中,我們解決了基本面海量數據的過濾與防雷問題。
然而,當基本面選出了體質優良的標的後,「何時進場」與「何時停損出場」的擇時問題,則必須交由冷靜、客觀的量化規則來把關。
TradingView 之所以成為全球頂級操盤手必備的神器,不僅在於其流暢的看盤介面,更在於它內嵌的 Pine Script 編輯器。它讓一般投資人不需要架設複雜的 Python 環境,只要在瀏覽器中編寫幾十行代碼,就能調用全球股市、期貨、加密貨幣的完整歷史數據進行即時回測。
這大白話的意思是:你必須掌握「Pine Script v5 策略腳本的基本架構與語法邏輯、將均線趨勢與成交量放大轉化為嚴謹的數學邏輯、設定固定百分比停損與移動停利機制,以及解讀 TradingView 策略測試器中的勝率、盈虧比與最大回撤 (MDD)」。這篇文章將帶你手把手完成第一個實戰策略開發!
一、 底層架構:Pine Script 指標 (Indicator) 與策略 (Strategy) 的根本差別
在打開 Pine 編輯器前,新手最常犯的第一個錯誤是搞混了「指標」與「策略」:
1. 指標 (Indicator)
- 宣告語法: indicator(…)
- 功能: 純粹在主圖或副圖上畫線、標記圖示(例如畫一條 20 日移動平均線或 RSI 指標)。它只負責呈現資訊,無法模擬買賣下單,也不會產出回測報告。
2. 策略 (Strategy)
- 宣告語法: strategy(…)
- 功能: 具有模擬撮合引擎。你可以寫入進場指令(如 strategy.entry)與出場指令(如 strategy.close 或 strategy.exit)。它能自動模擬每一筆交易的滑價、手續費、部位規模,並生成完整的歷史績效損益曲線。
二、 實戰策略邏輯設計:為什麼單純「均線交叉」長期會賠錢?
許多教科書教新手「短均線金叉長均線就買進」,但拿去回測通常會發現勝率低於 35%,在盤整盤中手續費會被磨光。
一個具備實戰意義的趨勢策略,必須加入「能量確認」與「逆向防守」。本篇文章要打造的完整策略邏輯如下:
- 大趨勢過濾器 (Trend Filter):
- 收盤價必須站上 200 日移動平均線 (200 SMA),確保我們只在多頭主升浪中做多,徹底避開空頭崩盤時的左側摸底。
- 短期動能突破 (Breakout Trigger):
- 收盤價突破過去 20 根 K 棒的最高點 (Donchian Channel 上軌)。
- 成交量爆發確認 (Volume Confirmation):
- 當根突破 K 棒的成交量,必須大於過去 20 根成交量均值的 1.5 倍,確保是有真實資金推動的真突破,過濾量縮假突破。
- 硬性風控與動態離場 (Exit & Risk Management):
- 停損防線: 進場價下方 3% 無條件停損砍單。
- 趨勢出場: 當收盤價跌破 10 日指數移動平均線 (10 EMA) 時,判定短期動能衰竭,獲利出場。
三、 Step-by-Step 代碼組裝:完整可運行的策略腳本
請打開 TradingView 任意商品圖表(如 QQQ 或台積電),點擊畫面底部的 「Pine 編輯器 (Pine Editor)」,將預設文字清空,並直接複製以下引用區塊內的全部代碼:
//@version=5
strategy(“量化實戰01: 均線趨勢與放量突破策略”, overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)// 1. 參數設定區塊 (Inputs)
trendLength = input.int(200, title=”大趨勢均線週期 (SMA)”)
breakoutLen = input.int(20, title=”通道突破週期”)
volMaLen = input.int(20, title=”成交量均線週期”)
volMultiplier = input.float(1.5, title=”放量倍數門檻”, step=0.1)
stopLossPct = input.float(3.0, title=”停損百分比 (%)”, step=0.5)
exitEmaLen = input.int(10, title=”動能離場均線 (EMA)”)// 2. 指標計算區塊 (Calculations)
trendMa = ta.sma(close, trendLength)
highestHigh = ta.highest(high[1], breakoutLen)
volumeMa = ta.sma(volume, volMaLen)
exitMa = ta.ema(close, exitEmaLen)// 3. 條件判斷區塊 (Conditions)
isBullTrend = close > trendMa
isBreakout = close > highestHigh
isVolumeSpike = volume > (volumeMa * volMultiplier)
longCondition = isBullTrend and isBreakout and isVolumeSpike
exitCondition = close < exitMa// 4. 委託執行區塊 (Strategy Orders)
if (longCondition and strategy.position_size == 0)
strategy.entry(“Long_Entry”, strategy.long)if (strategy.position_size > 0)
longStopPrice = strategy.position_avg_price * (1 – (stopLossPct / 100))
strategy.exit(“StopLoss”, from_entry=”Long_Entry”, stop=longStopPrice)
if (exitCondition)
strategy.close(“Long_Entry”, comment=”EMA_Exit”)// 5. 視覺化繪圖區塊 (Plots)
plot(trendMa, color=color.blue, linewidth=2, title=”200 SMA 長期趨勢線”)
plot(exitMa, color=color.orange, linewidth=1, title=”10 EMA 短期出場線”)
plot(strategy.position_size > 0 ? highestHigh : na, color=color.gray, style=plot.style_circles, title=”突破基準線”)
貼上代碼後,點擊編輯器右上角的 「儲存」,接著點擊 「新增至圖表 (Add to chart)」,系統就會自動在你的 K 線圖上標註買賣訊號,並在下方彈出回測結果!
四、 關鍵報表解讀:如何看懂「策略測試器 (Strategy Tester)」?
當策略載入後,下方會出現一張績效儀表板。不要只看最後賺了多少錢,專業量化交易者看的是以下三個核心指標:
1. 獲利因子 (Profit Factor, PF)
- 定義: 總獲利除以總虧損。
- 標準:
- 低於 1.0:賠錢策略,不可使用;
- 1.0 ~ 1.3:勉強及格,但容易被滑價與交易手續費侵蝕;
- 大於 1.5 以上:具備良好實戰價值的穩健策略。
2. 最大策略回撤 (Max Drawdown, MDD)
- 定義: 資產淨值從歷史最高點滑落到最低點的最大跌幅百分比。
- 實戰心法: 這是評估你是否會失眠的心理指標。如果一個策略年化報酬率 30%,但 MDD 高達 45%,絕大多數人在經歷腰斬虧損的當下就會恐慌手動停損。合格的波段策略,MDD 應盡可能控制在 15%~25% 以內。
3. 勝率 (Win Rate) vs. 盈虧比 (Risk-Reward Ratio)
- 趨勢突破型策略的真實勝率通常只有 40% ~ 50%,這是完全正常的;
- 重點在於「平均獲利交易 / 平均虧損交易」的比率(盈虧比)。只要虧損時嚴格控制在 3%,獲利時能吃到 15%~20% 的大波段,哪怕勝率只有 45%,長期累積下來的淨值曲線依然會穩定向上。
五、 給量化新手的三大防踩雷原則 (Actionable Checklist)
在開始調整參數之前,請牢記以下量化工程的防護底線:
- 原則一:絕對杜絕「未來函數 (Lookahead Bias)」
- 在計算最高價或判斷條件時,使用的是 high[1](前一根已收盤的價格),而不是當前正在跳動的 high。若使用未收盤的即時數據,回測會出現驚人完美的虛假獲利,但實盤下單時會徹底崩潰。
- 原則二:必須計入「手續費 (Commission) 與滑價 (Slippage)」
- 在上述代碼的 strategy(…) 設定中,我們加入了 commission_value=0.1(單趟 0.1% 的成本)。沒有計入手續費的回測報告毫無參考價值,高頻訊號常在扣除成本後由盈轉虧。
- 原則三:嚴防「過度擬合 (Overfitting / Curve Fitting)」
- 不要為了追求漂亮的勝率,把均線參數調整成冷門的 187 或 213。盡量使用全市場公認的參數(如 20、50、200),並將策略套用在不同市場(美股大盤、台股權值、甚至比特幣)進行跨市場驗證,唯有在多種環境下都能存活的邏輯,才是真實的市場規律。
🎯 結語與下期預告:完全不寫 Code,也能做台股量化選股!
學會用 TradingView Pine Script 編寫指標與策略後,你已經跨過了量化回測的第一道技術門檻,能夠用客觀的數學規則檢驗任何進出場想法。
然而,針對台灣股票市場(台股),很多投資人還有進一步的在地化痛點:
「TradingView 看美股很方便,但如果要選台股,我想結合台股特有的三大法人籌碼(外資投信同步買超)、主力大戶持股比例、或是營收創高條件,而且我完全不想寫程式碼,有沒有開箱即用的本土工具?」
答案就是台灣老牌看盤軟體的黑科技——XQ 全球贏家「量化積木」!它讓交易者像拼樂高積木一樣,點選滑鼠就能將籌碼、基本面與技術指標組合成自動選股引擎與回測策略!
下一篇,我們將手把手帶你拆解 XQ 量化積木的實作流程,打造第一個「外資+投信同步連續買超」的台股強勢股策略!
👉 量化工具實戰系列推薦閱讀:
XQ 量化積木實作:無痛打造法人同步買超回測模型!滑鼠拖拉完成台股籌碼策略全解!
點此閱讀下一章:【量化工具實戰 #03】XQ 量化積木實作:無痛打造法人同步買超回測模型!零程式碼組裝籌碼選股引擎全解





