Claude × Pine · 散户指南

用 Claude 写 Pine
不会 code 也能自动化交易

2026-06-06·18 分钟阅读·零基础

90% 的散户有自己一套盯盘习惯,但讲不清楚—脑袋里知道「什么时候会进场」, 但要把它写成 if-then 规则就卡住。Claude 解这个问题:你用人话描述、它输出 Pine Script v5。

本文目标:看完你能用 claude.ai 免费版,把任何你想得到的策略逻辑 变成可以在 TradingView 跑回测、可以丢给 TVSBot 自动下单的 Pine。

本文配套页面:想直接看简版操作指南 + 流程 infographic,请看 /docs/claude-pine。本文是长文深度版,含实战 case study 与多个错误示范。

为什么用 Claude,不用 ChatGPT / Copilot?

三个工具我都试过写 Pine,差别很实际:

  • Copilot:适合补 code、不适合从零生成。你已经写了一半的 Pine 它能补得很好,但你「没写任何 code」叫它从策略描述生成,常常会给你一个指标而不是 strategy。
  • ChatGPT:可以生 Pine,但 Pine v4 vs v5 语法差异常常混淆。要明讲「Pine Script v5」+ 在输出时加 //@version=5,否则出来的 code 在 TV 编译器会直接报错。
  • Claude:对结构化 code + 长文上下文最稳。你可以一次把策略逻辑、风控规则、TVSBot JSON 规格、回测注意事项全部贴进去,它能消化整个 context 一致地输出 Pine。实测 claude.ai 免费版(Sonnet 4.5)写 5 个策略 prompt 都能一次过。
首选工具:claude.ai 免费版每天有额度(够你写 3-5 个策略)。要更密集就付 Pro USD 20/月或开 API。本文 prompt 范例都在 Sonnet 4.5 上验过。

三步流程概览

先把整套自动化流程的 mental model 建好:

  1. 策略口述 → Claude prompt:你用 5 段结构讲清楚(后面教)。
  2. Claude → Pine Script v5:得到含 strategy()alertcondition() 的完整 code。
  3. Pine → TradingView 图表回测:贴进 Pine Editor、Add to chart、看 Strategy Tester 标签的 Net Profit、Max Drawdown、Win Rate。
  4. Alert + TVSBot webhook:图表右上时钟 → Add Alert → 条件选你的策略 → Notifications 勾 Webhook → 贴 dashboard 给的 URL → 讯息体贴 Claude 写的 JSON。

全程不需要你自己写一行 Pine。

提示词模板:5 段结构

好的 Pine prompt 一定包含这 5 段。少一段,Claude 就要猜, 猜错你就要花 3-4 轮对话重来:

text
【1. 我是谁、我在交易什么】
我是 BTC 永续合约交易者,主要看 1 小时线,
资金 USD 10,000,交易所是 Binance USDT-M Futures。

【2. 进场条件】
当 K 棒收盘价突破过去 20 根 K 棒的最高 high
(不含当前 K 棒)且当下 RSI(14) > 50 时,
我会进多单。

【3. 出场条件】
当 K 棒收盘跌破过去 10 根 K 棒的最低 low 时,
我会出场。或者价格从进场以来最高点回落 ATR(14) × 2 也出场。

【4. 风控规则】
止损:进场 K 棒的 low - ATR(14) × 0.5。
每笔交易最大风险 = 账户 1%。
任何时刻最多持 1 个方向,不加码(pyramiding=0)。

【5. 输出规格】
请输出完整 Pine Script v5 strategy()。
含 alertcondition() 两条(进场、出场)。
alert message 必须是单行 valid JSON,格式如下:
{"action":"buy","symbol":"{{ticker}}","qty_type":"margin_usdt","qty_value":"500","strategy_id":"breakout-v1"}
平仓用 action:"close"。

把这 5 段直接贴给 Claude,它 95% 的机率会一次给你能直接用的 Pine。

关键字锁定:第一行写「Pine Script v5」是关键—没写的话 Claude 偶尔会用 v4 语法(na 处理不同、study() 取代 indicator())。

5 个常用策略 — 直接抄 prompt

策略 1:Donchian Breakout(突破)

人话:K 棒收盘突破 20 根新高就买、跌破 10 根新低就出场。止损在进场 K 棒 low 下方 0.5 倍 ATR。

text
Pine Script v5 strategy()。
进场:close 突破过去 20 根 K 棒的 ta.highest(high, 20)[1](不含当前)。
出场:close 跌破过去 10 根 K 棒的 ta.lowest(low, 10)[1]。
止损:进场 K 棒的 low - 0.5 × ta.atr(14)。
每次下单用 100% equity (default_qty_value=100, default_qty_type=strategy.percent_of_equity)。
加 alertcondition() 两条:
  - 进场:{"action":"buy","symbol":"{{ticker}}","qty_type":"margin_usdt","qty_value":"500"}
  - 出场:{"action":"close","symbol":"{{ticker}}"}
pyramiding=0、process_orders_on_close=true。

为什么这策略适合练手:逻辑极简(两条规则)、回测结果稳定、不需要过滤杂讯。 BTC 1H 跑近 1 年胜率通常 35-45% 但 R:R 1:3 以上,净利为正。

策略 2:EMA Cross(均线交叉)

人话:EMA20 由下穿上 EMA60 就买、反过来就空。止损用 EMA60 本身。

text
Pine v5 strategy()。
进场多单:ta.crossover(ta.ema(close, 20), ta.ema(close, 60))。
进场空单:ta.crossunder(ta.ema(close, 20), ta.ema(close, 60))。
止损:多单在 ema60 下方 0.3%、空单反向。
止盈:1:2 风险报酬比(risk × 2 = target)。
pyramiding=0。close_entries_on_opposite=true(反向讯号自动翻仓)。
alertcondition() 多空进出场各一条。
qty_type:"margin_usdt",qty_value:"500"。

注意:EMA20/60 适合 1H 以上周期。5 分线杂讯太多会被洗到怀疑人生。

策略 3:RSI Mean Revert(过买过卖回归)

人话:RSI(14) 低于 30 反弹到 30 上就买、回到 50 出场。空单反向。加大趋势过滤:只在 EMA200 上方做多、下方做空。

text
Pine v5 strategy()。
RSI period 14。
条件变量:
  rsiLong = ta.crossover(ta.rsi(close, 14), 30) and close > ta.ema(close, 200)
  rsiShort = ta.crossunder(ta.rsi(close, 14), 70) and close < ta.ema(close, 200)
进场多:rsiLong
进场空:rsiShort
出场多:ta.rsi(close, 14) >= 50 or close < ta.ema(close, 200)
出场空:ta.rsi(close, 14) <= 50 or close > ta.ema(close, 200)
止损:固定 -1.5%(不用 ATR,因为这策略是震荡市用)。
alertcondition() 4 条。

case study:没加 EMA200 过滤的版本回测 BTC 1H 过去 1 年胜率 47%、净利 -3%。加了之后胜率 51%、净利 +8.2%。 一条过滤线值得整支策略。

策略 4:Bollinger 带 + MACD 动量

人话:K 棒实体收破 Bollinger 上轨 + MACD 线在 0 轴之上 → 进多。下轨反向 → 空。 双重确认、过滤大部分杂讯。

text
Pine v5 strategy()。
BB(20, 2.0) 上下轨。
MACD(12, 26, 9)。
进场多:close > ta.bb(close,20,2.0)[0] (upper) AND MACD line > MACD signal AND MACD line > 0
进场空:close < ta.bb(close,20,2.0)[2] (lower) AND MACD line < MACD signal AND MACD line < 0
(注意 Pine v5 [ta.bb] 回传 [middle, upper, lower] tuple,要用解构)
止损:ta.atr(14) × 1.5
止盈:ATR trailing stop using ta.atr(14) × 3
alertcondition() 进出场各一条。

策略 5:时段过滤(叠在现有策略上)

人话:策略只想在亚洲时段 08:00-16:00 UTC+8 跑(= UTC 0:00-08:00),欧美波动太大避开。

text
在我现有的 EMA Cross 策略上加时段过滤:
- 用 hour(time, 'UTC') 取得当前 UTC 小时
- 变量 inSession = hour >= 0 and hour < 8
- 进场条件多加一条 and inSession
- 持仓中不受时段限制,止损止盈照原本逻辑
- 不要改动原有的 strategy() 宣告与 alertcondition()

时段过滤是高胜率策略常见招式。叫 Claude 一次包进去比你自己查时区查半天快。

风控表达 — 4 句话决定能不能上线

Claude 写策略写得「能上真钱」,这 4 个风控指令一定要写在 prompt:

规则写法
止损每笔交易止损 = 进场价 ± ATR(14) × 1.5
部位大小每笔交易最大风险 = 账户 1%
最大持仓pyramiding=0,不加码,反向讯号自动翻仓
Alert 内容{action, symbol, qty_type:"margin_usdt", qty_value, strategy_id}
为什么是 margin_usdt? TVSBot 推荐这个 qty_type — 你写「我要投入 500 USDT 保证金」, 系统会根据当下币价算出实际 contracts 数量。 比 qty_type=usdt(买 500 USDT 的币,价格涨跌会让部位大小完全不同)稳定得多。

把盯盘习惯翻成 Claude 听得懂的话

这是新手最大卡点:你知道你会在某个时刻进场,但讲不清楚。下面 5 组对照可以参考:

人话Claude prompt
「K 棒长一根很大的红 K」当根 K 棒 (close - open) > ta.atr(14) × 1.0 且 close < open
「均线多头排列」EMA(20) > EMA(50) > EMA(200) 同时成立
「站上颈线」close 突破过去 N 根 K 棒最高 high(N 预设 20)
「拉回到关键支撑」low 触及前 30 根低点 ±0.5%;定义「支撑」具体一点(前低 / swing low / 某 EMA)
「量价齐扬」close > close[1] 且 volume > ta.sma(volume, 20)

实战 case study:把「我看新闻跟单」变策略

一个朋友的真实案例。他平常会看新闻、看大 K 拉到突破近期高点就跟。我问他:「具体什么条件?」 他答不出来。所以我跟他一起做了下面这段拆解:

  1. 「大 K」量化:K 棒实体(close - open)大于过去 14 根的 ATR × 1.5。
  2. 「突破近期高点」量化:K 棒 high > 过去 50 根 high 的最大值(不含当前)。
  3. 「跟单」量化:下一根 K 开盘进场,不追。
  4. 「适时止损」加上:进场 K 棒 low 下方 1 倍 ATR。没有止盈,靠 trailing stop(ATR × 3)。

这段描述贴给 Claude,它输出的策略 BTC 1H 过去 6 个月回测:

text
Net Profit:     +$4,820 (48.2% on $10K)
Total Trades:   31
Win Rate:       38.7% (12W / 19L)
Avg Win:        +$543
Avg Loss:       -$132
R:R:            4.1
Max Drawdown:   -$1,210 (-12.1%)
Sharpe:         1.82

Win rate 不高但 R:R 够大,净利为正。比他原本「看新闻跟单」凭感觉进场好得多 — 至少有明确的 entry/exit 规则,赔钱时知道为什么。

常见坑 — Claude 写 Pine 翻车 top 5

1. Pine v4 / v5 语法混淆

没明讲 v5 → Claude 偶尔写 study()(v4 用法)或漏掉 //@version=5 第一行。 一定要在 prompt 开头写「请用 Pine Script v5」。

2. Alert message 多行 → TradingView 拒收

Claude 偶尔把 alert message 写成多行字串,贴进 TV 会报 Invalid syntax。 明讲「alert message 必须是单行有效 JSON 字串」。

3. ta. prefix 漏写

Pine v5 强制要 ta. 前缀。Claude 偶尔会写 ema() 而非 ta.ema()。 编译器报 Could not find function or function reference 'ema'。 解:在 prompt 结尾加一句「所有内建函数请用 ta.* 完整前缀」。

4. strategy() vs indicator() 搞错

你要自动下单就要 strategy(),不能 indicator()indicator() 没有 strategy.entry / strategy.close 函数。 Claude 写指标版会给你 plot(),看起来像有策略其实没下单逻辑。

5. 重绘(repaint)— 最隐蔽的坑

如果进场条件用了当前未收盘 K 棒的值,TV 在 K 棒收盘前后会闪烁。 回测看到「进场价就是高点」就是重绘。 解:所有条件用 [1] 索引前一根(已收盘)K 棒。 或在 strategy()process_orders_on_close=true

pine
// ❌ 重绘:用当前未收盘 high
entrySignal = high > ta.highest(high, 20)

// ✅ 正确:用前一根 K 的条件
entrySignal = high[1] > ta.highest(high[1], 20)

接到 TVSBot — 3 步走完

  1. 确认 Pine 里 alert message 用 TVSBot JSON 格式(action, symbol, qty_type, qty_value, strategy_id 五栏)。 上面 prompt 模板都已含。
  2. TV 设 Alert:图表右上时钟 → Add Alert → Condition 选你的 Pine 策略 → Frequency 选「Once per bar close」 (重要:不要选 every tick,会狂打)。
  3. 贴 TVSBot webhook URL:Notifications 分页 → 勾 Webhook URL → 贴 dashboard 给的 URL → Message body 贴 JSON → Create。
先试跑模式:TVSBot 新策略预设 dry-run,alert 进来会记录但不下真单。 确认讯号模式正常后再切实单。

进阶:把整本策略书翻译成 Claude prompt

有些朋友手上有国外交易书(《海龟法则》、《市场奇才》)想实作。可以这样跟 Claude 对话:

text
我手上有《海龟法则》海龟系统 2(System 2)的描述:
- 进场:突破过去 55 天最高 high(多)/ 最低 low(空)
- 出场:突破过去 20 天反向(多单看 20 天最低)
- 止损:2N 法则(N = 20 日 ATR),单一风险限 2%
- 加码:每 0.5N 加 1 单位、最多 4 单位
- 部位上限:单市场 4、相关市场合计 6、总方向 12

请帮我把 System 2 写成 Pine v5 strategy()。
标的设定为 BTC/USDT 1D。pyramiding 设 4。
N 用 ta.atr(20) 计算。每笔风险 2%,用 strategy.percent_of_equity 对应。
保留所有原系统规则的 inline 注解,方便我之后微调。

Claude 能直接把书本逻辑翻成 code,附完整注解。比你自己读完书再学 Pine 快数十倍。

常见 Q&A

Q:免费版额度够吗?

A:实测每天额度写 3-5 个策略没问题。如果你密集 iterate(一天改 20 次同支策略), 会需要付 Pro USD 20/月。

Q:Claude 写的策略赔钱怎么办?

A:先看 Strategy Tester 的回测结果。如果胜率 < 30% 且 R:R < 1:2,逻辑本身有问题, 别改 code 直接砍掉重练。如果胜率 > 40% 但净利为负,是手续费吃掉,加进场条件过滤、 减少交易次数。

Q:我可以把策略 prompt 给别人用吗?

A:可以。其实 TVSBot 市集就鼓励这个 — 你写好策略发布,订阅者跟单你抽 70% 分润。 看市集

Q:Claude vs TradingView 内建 AI(Pine Genie)?

A:Pine Genie 是 TV 内建工具,免费但有额度。Claude 更灵活(你能整段策略 + 风控一次给), 但需要切换 tab。实务上:简单修改用 Pine Genie,复杂策略生成用 Claude。

Get started

想把今天学到的东西自动化跑起来?

把 Claude 写好的 Pine 策略接上自动下单。3 天免费试用,预设 dry-run 不上真钱。

开始试用