簡介
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 的行為有所不同