簡介
Navi 是一個用 Rust 編寫的開源 Navi 執行引擎。它提供完整的解析、類型檢查、編譯和逐 K 線執行流水線,可嵌入你自己的應用和服務中執行指標和策略腳本。
什麼是 Navi?
Navi 是一種用於編寫技術分析指標和交易策略的領域專用語言。它被設計為簡單而強大,採用逐 K 線執行模型,腳本每次處理一根 K 線。
什麼是 Navi?
Navi 是一個獨立的、可嵌入的 Navi 執行引擎。你可以:
- 運行 Navi 腳本 — 使用你自己的 K 線數據,收集輸出(繪圖、警報、策略訂單)
- 嵌入引擎 — 在 Rust、C 或 C++ 應用程式中使用
- 使用 LSP — 獲得編輯器支援,包括診斷、補全、懸停提示、跳轉到定義等
- 擴展 — 添加自訂原生函數和庫載入器
架構
處理流水線如下:
每個階段對應一個獨立的 crate:
| Crate | 作用 |
|---|---|
navi-parser | 基於 nom 的解析器,生成帶 span 標註的 AST |
navi-visitor | 語義分析、類型檢查、名稱解析 |
navi-compiler | AST 到 VM 指令,包含 3 個優化遍 |
navi-vm | 逐 K 線運行時引擎 |
navi-loader | 模組解析(imports、prelude、stdlib) |
navi-builtins | 內嵌的 prelude 和 stdlib Navi 源檔案 |
navi-lsp | 語言伺服器協議實現 |
當前狀態
- 語言版本:Navi
- 目標:運行 Navi 腳本,生成繪圖/警報/策略事件,支援常用標準庫函數
- 狀態:正在積極開發中;部分功能尚未完成,或可能與其他 Navi 執行階段的行為有所不同