Docs · Claude × Pine
用 Claude 把你的盯盤習慣寫成 Pine Script
不會 code 沒關係。會講中文、會描述「我什麼時候會買、什麼時候會賣」就夠了。這一頁教你怎麼跟 Claude 對話,產出一份可以直接貼進 TradingView、丟給 TVSBot 自動下單的策略。
預估閱讀 12 分鐘 · 涵蓋 5 個常用策略 + 風控表達 + 串接 TVSBot
Workflow
三步完成自動化
把策略講清楚
用中文把你「什麼時候進場、什麼時候出場、停損停利怎麼設」講出來,越具體越好。
讓 Claude 寫 Pine
把你的描述貼給 Claude,請它輸出 Pine Script v5 + alertcondition()。
貼進 TradingView + TVSBot
在 TV 開圖、貼 Pine、跑回測;OK 後設 alert 用 TVSBot webhook URL。
為什麼用 Claude,不用 ChatGPT / Copilot?
Claude 對「長文上下文」和「結構化 code」處理特別穩 — 你可以一次把策略邏輯、風控規則、TradingView 文檔片段全部貼進去,它能消化完整 context 後輸出一致的 Pine。Copilot 適合補 code、不適合從零生成;ChatGPT 也可以但對 Pine 的版本(v4 vs v5)常常混淆,要明講「Pine Script v5」才穩。
首選工具: claude.ai 免費版(每天有額度,夠你寫 3-5 個策略)。要寫得更大或頻繁生成,付 Pro 月費 USD 20 或開 API。
提示詞模板(直接複製改)
好的 prompt 一定包含這 5 段。少一段都會讓 Claude 猜,猜錯就要重來:
我是誰、我在交易什麼
「我是 BTC 永續合約交易者,主要看 1 小時線,資金 USD 10,000。」
進場條件(盯盤習慣翻譯)
「當 K 棒收盤價突破前 20 根的最高點、而且當時 RSI 在 50 以上時,我會買進。」
出場條件(停利 / 反轉)
「停利:當價格回落 ATR×2 時平倉。或當 K 棒收破 EMA 50 時也平倉。」
停損 / 風控規則
「停損:進場下方 1.5 倍 ATR。每筆交易最大風險 = 帳戶 1%。」
輸出規格
「請輸出 Pine Script v5、用 strategy()、含 alertcondition() 給多空兩邊,alert message 用 JSON 格式 {action,symbol,qty_type,qty_value}。」
5 個常用策略 — 直接抄 prompt
下面每個範例都包含「你要怎麼跟 Claude 講」與「Claude 會給你什麼 Pine 框架」。
策略 1 — 突破策略(Breakout)
我看到 K 棒突破近期 20 根新高就買、跌破 10 根新低就賣。停損用前一根 K 棒的低點。
我要 Pine Script v5 strategy()。
進場:close 突破過去 20 根 K 棒的最高 high(不含當前)。
出場:close 跌破過去 10 根 K 棒的最低 low。
停損:進場 K 棒的 low - 0.5 × ATR(14)。
每次下單用 100% equity。
加 alertcondition() 兩條:一條「進場」一條「出場」。
alert message 用 JSON:{"action":"buy","symbol":"{{ticker}}","qty_type":"margin_usdt","qty_value":"500"}。Why this works · 適合趨勢延續行情、最簡單也最常用的「Donchian Breakout」。
策略 2 — 均線交叉(EMA Cross)
EMA 20 由下往上穿過 EMA 60 就買,反過來就賣。停損用 EMA 60 本身。
Pine v5 strategy()。 進場多單:ta.crossover(ta.ema(close, 20), ta.ema(close, 60))。 進場空單:ta.crossunder(...)。 停損:多單在 ema60 下方 0.3% 處,空單反向。 停利:1:2 風險報酬比(risk × 2)。 要在 strategy() pyramiding=0、close 反向訊號自動翻倉。 alertcondition() 多空各一條。
Why this works · 經典中長線跟趨勢策略。EMA20/60 是給 1H 以上週期用的,不適合 5 分線雜訊。
策略 3 — RSI 過買過賣(Mean Revert)
RSI(14) 低於 30 就買、回到 50 出場;高於 70 就空、回到 50 出場。
Pine v5 strategy()。 RSI period 14。 多單進場:RSI 從 30 以下回升到 30 之上的那一根 K 棒。 多單出場:RSI 觸及 50 或停損 -1.5%。 空單反向。 額外條件:只在 EMA 200 上方做多、下方做空(順大趨勢)。
Why this works · 適合震盪市。最常踩的坑是「沒過濾大趨勢」— 加 EMA 200 過濾後勝率高很多。
策略 4 — Bollinger 帶 + 動量
K 棒實體收破 Bollinger 上軌、且 MACD 在 0 軸之上 → 進多。下軌反向 → 空。
Pine v5 strategy()。 BB(20, 2.0) 上下軌。 多單:close > BB upper 且 MACD line > MACD signal 且 MACD line > 0。 空單:close < BB lower 且 MACD line < MACD signal 且 MACD line < 0。 停損:ATR(14) × 1.5。 停利:trailing stop using ATR × 3。 alertcondition() 進出場各一條。
Why this works · 雙重確認過濾雜訊 — Bollinger 抓位置、MACD 抓動量。比單一指標穩。
策略 5 — Time-of-day filter(時段過濾)
我策略只想在亞洲時段 08:00-16:00 UTC 跑,避免歐美高波動時段。
在我現有策略上加時段過濾: import time funcs。 用 hour(time, 'UTC') 取得當前小時。 只在 hour >= 0 且 hour < 8 才允許進場(亞洲時段,UTC 0-8 = 台灣 8-16)。 持倉中不受時段限制,照原本停損停利。
Why this works · 時段過濾是高勝率策略常見招式。Claude 一次能幫你包進去,省得你查時區。
風控表達 — 這 4 句話最重要
Claude 寫策略要寫得「能上線跑真錢」,這 4 個風控指令一定要在 prompt 裡:
"每筆交易停損 = 進場價 ± ATR(14) × 1.5"
ATR 倍數比固定百分比好,會隨波動率自動調整。
"每筆交易最大風險 = 帳戶 1%(不是部位 1%)"
Pine 內用 strategy.percent_of_equity 對應,1% 風險換算出實際 qty。
"任何時刻最多持 1 個方向,不加碼"
Pine 設 pyramiding=0、close on opposite signal=true。
"alert message 用 TVSBot JSON 格式: {action, symbol, qty_type:margin_usdt, qty_value, strategy_id}"
qty_type=margin_usdt 是 TVSBot 推薦:不論價格,固定投入 X USDT 保證金。
怎麼把「盯盤習慣」翻成 Claude 聽得懂
新手最大的卡點是:腦袋裡知道「什麼時候會進場」,但講不清楚。下面 5 組「人話 → Claude 話」對照可以參考:
| Human | Claude prompt |
|---|---|
| 「K 棒長了一根很大的紅 K」 | 「當根 K 棒 (close - open) > ATR(14) × 1.0 且 close < open」 |
| 「均線多頭排列」 | 「EMA 20 > EMA 50 > EMA 200 同時成立」 |
| 「站上頸線」 | 「close 突破過去 N 根 K 棒最高 high,N 由用戶定(預設 20)」 |
| 「拉回到關鍵支撐」 | 「low 觸及前 30 根低點區間的 ±0.5% 範圍。把『關鍵支撐』的定義講具體:是前低、前 swing low、還是某條均線。」 |
| 「量價齊揚」 | 「close > 前一根 close 且 volume > ta.sma(volume, 20)。如果 TradingView 上沒 volume 資料(某些指數),請 Claude 改寫成 close-only 版本。」 |
把策略丟給 TVSBot 自動下單
Claude 給的 Pine 通常會包含 alertcondition()。要讓 TVSBot 收到訊號,照下面 3 步:
在 Pine 裡用 TVSBot JSON 格式
Claude 在 prompt 裡已經被指示用我們的 JSON message。確認包含 action、symbol、qty_type、qty_value、strategy_id 五個欄位。
TradingView 開 Alert
圖表右上時鐘圖示 → Add Alert → Condition 選你的 Pine 策略 → Frequency 選 Once per bar close(重要:不要選 every tick)。
貼 TVSBot webhook URL
Notifications tab → Webhook URL 勾選 → 貼上你 dashboard 的 webhook URL → Message body 貼 Claude 寫好的 JSON。Create。
Claude 寫 Pine 常見坑
Claude 如果不指定,可能寫 v4 語法(var、na 用法不同)。Prompt 開頭一定要寫「Pine Script v5」。
Claude 偶爾會把 alert message 寫成多行字串、TradingView 會報錯。要明講「alert message 必須是單行 valid JSON」。
Pine v5 內建函數要加 ta. 前綴(ta.ema, ta.crossover, ta.rsi)。如果 Claude 漏寫直接用 ema(),TV 會 unknown identifier。
策略要用 strategy() 不能用 indicator()。strategy() 才能回測、才能用 strategy.entry / strategy.close。
如果你的進場條件用了「目前 K 棒未收盤值」,會在 K 棒收盤前後變化(俗稱重繪)。請 Claude 用 ta.barssince() 或 [1] 索引前一根,確保訊號收盤後才觸發。
接下來
把這頁學的東西串起來: