pineforge
開始使用
離線回測

離線跑 PineScript 回測,用自己的資料

PineForge 將 PineScript v6 轉成原生 C++,透過 Docker 在你本機執行。Local-first、位元可重現,Docker 能跑的地方就能跑。自備 OHLCV CSV。

為什麼離線?

瀏覽器回測適合圖表旁快速試錯。離線回測是下一步要押資金時該拿的:需要稽核軌跡、CI 要擋每次 commit、兩個月前的結果今天要逐位元重現。

離線回測給你瀏覽器測試器做不到的:結果是 位元級可重現 — 同輸入、同輸出、每次皆然。你釘引擎版本、把結果 commit、在版本間 diff 成交列表,並在 CI 流水線無頭執行全套。餵進去的 CSV 是你的;跑的二進位在本機;拿回來的報告可稽核。

離線解鎖的實務清單:釘版本引擎讓兩個月前的 commit 今日仍產出同一成交列表;自訂資料 ingest 可對交易所報價重建、資料商的 point-in-time 股價、或任何能序列成 OHLCV 的另類資料測試;CI 整合讓迴歸在進生產前就擋 build;多券商可攜因策略邏輯不受平台綁死 — 它就是一份檔案。

若你曾要跟同事分享回測結果,卻發現只能「截圖圖表」— 你缺的就是離線執行。

怎麼跑

三步。從 Pine 原始碼到 JSON 成交報告,首次全流程不到兩分鐘,之後每次不到三十秒。

步驟 1 — 領免費 codegen API key。 在下方早鳥表單註冊。key 立刻寄到信箱,免費額度大方 — 足供個人量化開發流程。

步驟 2 — POST Pine 原始碼到 codegen API。 API 將 PineScript v6 轉 C++ 並回傳編譯共享物件。runtime 沒有 Pine 直譯器 — 輸出即原生機器碼。

curl -s https://api.pineforge.io/v1/codegen \
  -H "Authorization: Bearer $PINEFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "'"$(cat my_strategy.pine | jq -Rs .)"'"}' \
  | jq -r '.artifact_url' \
  | xargs curl -sL -o strategy.so

步驟 3 — docker run。 拉 PineForge runtime 映像,把 OHLCV CSV 與編譯成品掛載進去。engine 讀資料檔、逐棒跑策略,JSON 報告寫到 stdout。

docker run --rm \
  -v "$(pwd)/strategy.so":/strategy.so \
  -v "$(pwd)/ohlcv.csv":/data.csv \
  ghcr.io/pineforge/runtime:latest \
  run /strategy.so --data /data.csv --output json

JSON 含完整成交列表(進出價、棒索引、部位大小)與摘要區塊(淨損益、最大回撤、總成交、獲利因子、Sharpe)。同一大版本內 patch 欄位穩定 — 適合腳本解析。

流程就這樣。無 GUI、無反覆登入、無載圖。會跑 Docker,就會跑 PineForge 離線回測。

能回測什麼

簡答:任何能序列成 OHLCV 的東西。PineForge 不接行情商。你帶資料;engine 跑策略。

來自交易所的加密資產。 從 Binance、Bybit、Kraken 或任何 REST/WebSocket 交易所拉原始成交。聚合成策略時間框架。直接餵 CSV。用你實際會交易的商品與場所組合測試。

資料商的個股。 Polygon、Norgate、BarChart、Tiingo — 選來源,匯出 point-in-time 調整價,用你的實際成交與無存活者偏誤 universe 回測。

報價重建。 有 Level 2 想在合成 1 秒棒(由報價重建)上測,可以。從報價生成 OHLCV 再餵入。engine 不在乎棒從哪來。

另類資料。 情緒分數、鏈上指標、資金費率、選擇權 skew — 只要能對齊棒索引表達成時間序列,就能透過自訂資料欄塞進 Pine 並離線測試。

畫廊內 167 支參考題庫對 TradingView CSV(對齊驗證)與自訂 CSV(迴歸)皆跑過回測。167 支中 165 支與參考逐筆一致;剩餘兩支為已文件化的邊角案例(部分平倉/移動停損語意下的筆數差),持續收斂中。

開始使用