简介
OpenPine 是 TradingView Pine Script v6 的开源实现,使用 Rust 编写。它提供了一套完整的流水线,可以在 TradingView 之外解析、类型检查、编译和执行 Pine 脚本。
什么是 Pine Script?
Pine Script 是 TradingView 创建的编程语言,用于编写自定义技术分析指标和交易策略。它被设计为简单而强大,采用逐 K 线执行模型,脚本每次处理一根 K 线。
什么是 OpenPine?
OpenPine 将 Pine Script 语言作为一个独立的、可嵌入的引擎提供。你可以:
- 运行 Pine 脚本 — 使用你自己的 K 线数据,收集输出(绘图、警报、策略订单)
- 嵌入引擎 — 在 Rust、C 或 C++ 应用程序中使用
- 使用 LSP — 获得编辑器支持,包括诊断、补全、悬停提示、跳转到定义等
- 扩展 — 添加自定义原生函数和库加载器
架构
处理流水线如下:
每个阶段对应一个独立的 crate:
| Crate | 作用 |
|---|---|
openpine-parser | 基于 nom 的解析器,生成带 span 标注的 AST |
openpine-visitor | 语义分析、类型检查、名称解析 |
openpine-compiler | AST 到 VM 指令,包含 3 个优化遍 |
openpine-vm | 逐 K 线运行时引擎 |
openpine-loader | 模块解析(imports、prelude、stdlib) |
openpine-builtins | 内嵌的 prelude 和 stdlib Pine 源文件 |
openpine-lsp | 语言服务器协议实现 |
openpine-capi | C/C++ FFI 绑定 |
当前状态
- 语言版本:仅支持 Pine Script v6
- 目标:运行 Pine 脚本,生成绘图/警报/策略事件,支持常用标准库函数
- 状态:正在积极开发中;部分功能尚未完成或可能与 TradingView 的行为有所不同