实践流程
按步骤校验 Pine 策略
从简单的 v6 脚本开始
源码第一行使用 //@version=6,再添加简单的指标或策略声明。示例尽量小,方便定位函数或规则问题。
先用已知支持的公式
尝试下方入门脚本,它使用产品编辑器中已有的 SMA、EMA、交叉和策略进场/平仓调用。
校验并阅读诊断
保存或应用前先校验。修复语法与参数问题,并把 PINE_UNSUPPORTED_BUILTIN 或 PINE_UNSUPPORTED_SYNTAX 当作明确的支持边界。
选择回放运行并检查状态
Strategy Replay 需要 Pro。选择脚本、周期、参数和运行模式,再查看订单、成交、成本、账本及完成状态。失败或未完成的运行不应被当作完整测试。
当前测试子集包含哪些 Pine v6 模式?
当前兼容性语料库包含 43 个独立编写的示例:24 个在实现子集中编译通过,15 个返回不支持内置函数诊断,4 个元组形式返回不支持语法诊断。这是回归语料,不代表全部 Pine 功能中的占比。
- 通过示例包括 SMA、EMA、RSI、ATR、Donchian 通道、移动平均交叉,以及公式实现的 MACD、Stochastic 和 Williams %R。
- 产品策略入门示例包含受支持的 strategy.entry 和 strategy.close,以及基于序列值的条件。
- 编译通过只检查当前实现的解析器与类型规则,并不能证明数值结果等同 TradingView。
当前已测试子集之外的示例
有些代码在 Pine 中可能有效,但本引擎会明确标记为不支持,而不会静默地将它当作可执行脚本。
- 回归语料对 ta.vwap、ta.vwma、ta.wma、ta.hma、ta.sar、ta.cci、ta.stoch、ta.mfi、ta.cmf、ta.roc、ta.mom、ta.pivothigh、ta.barssince 和 ta.valuewhen 返回不支持内置函数诊断。由 ta.stoch(ta.rsi(...)) 构成的 Stochastic RSI 类组合也不在本次测试范围内。
- 当前引擎对 ta.bb、ta.macd、ta.supertrend 和 ta.dmi 等元组形式返回不支持语法诊断。
- 此列表仅说明已测试边界,不是所有不支持的 Pine 语法清单。自动补全建议也不保证整段脚本可以编译。
策略结果使用不同的执行模型
引擎根据一分钟 OHLC 生成盘中价格和成交量,再应用自己的确定性事件序列与订单规则。
- 这不是历史逐笔数据、真实经纪商连接,也不是可执行的市场报价。
- 数据、预热历史、成本、合约设置、支持的脚本功能、起始位置和订单模拟都可能造成结果差异。
- 策略订单和绩效存放于独立于手工交易的账本。错误或资源限制留下的部分记录仅供排查,不是完整绩效结果。
示例格式
Pine v6 策略入门代码
这是自定义策略编辑器当前提供的入门源码。Strategy Replay 功能本身需要 Pro。
//@version=6
strategy("Custom strategy", overlay=true)
period = input.int(20, "Period", minval=1, maxval=200)
average = ta.sma(close, period)
if ta.crossover(close, average)
strategy.entry("Long", strategy.long)
if ta.crossunder(close, average)
strategy.close("Long")准确预期
不要假设完全兼容 Pine
- 当前引擎只接受 Pine Script 版本 6。
- 已实现的函数与语法子集比 TradingView Pine 窄;不支持的结构会返回诊断。
- 一分钟 OHLC 会生成合成的分钟内事件,不提供逐笔行情回放或真实执行。
- 结果不保证与 TradingView 或经纪商相同;模拟绩效也不能预测未来收益。
- Strategy Replay 需要 Pro,且使用独立于手工交易的账本。