Strategy Replay · Pine Script v6

运行策略前先确认 Pine 支持范围

DayTradeDrill 使用经过测试的 Pine Script v6 子集运行自定义指标和策略回放。函数名称看起来熟悉,不代表一定兼容;请先校验脚本、查看诊断,并确认运行是否完整。

实践流程

按步骤校验 Pine 策略

  1. 从简单的 v6 脚本开始

    源码第一行使用 //@version=6,再添加简单的指标或策略声明。示例尽量小,方便定位函数或规则问题。

  2. 先用已知支持的公式

    尝试下方入门脚本,它使用产品编辑器中已有的 SMA、EMA、交叉和策略进场/平仓调用。

  3. 校验并阅读诊断

    保存或应用前先校验。修复语法与参数问题,并把 PINE_UNSUPPORTED_BUILTIN 或 PINE_UNSUPPORTED_SYNTAX 当作明确的支持边界。

  4. 选择回放运行并检查状态

    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,且使用独立于手工交易的账本。