實戰手冊 · Field Manual 2026 春季號
github.com/FLOX-Foundation/flox · 204 ★
F
第 01 期 · 開源量化 / 交易系統框架

FLOX:策略 API 回測與實盤共用,無需重寫。

FLOX 是一套模組化交易系統框架,以 C++20 為核心,提供五種語言綁定與統一策略 API。指標庫、訂單簿、回測引擎、四個原生交易所連接器均內建,另附 flox-mcp 讓 AI coding agent 取得真實 FLOX 介面。本手冊從安裝走到第一次回測。

204
GitHub Stars
5
語言綁定
v0.6.1
2026.05 最新版本
MIT
永久免費授權
01
框架定義

策略 API 與共用引擎:從回測到實盤。

FLOX 來自 FLOX Foundation,是一套以 C++20 為核心的模組化交易系統框架,2026 年 5 月釋出 v0.6.1。README 首行標示的核心設計是 polyglot strategy bindings:以 Python、Node.js、Codon、嵌入式 JavaScript 或 C API 撰寫策略,底層統一跑在同一份 C++ 引擎上,行為一致。

多數量化工具需要兩份程式碼:研究階段用 Python 寫 backtest 腳本,上線時再以 C++ 或 Rust 重寫正式版。FLOX 去掉這個重寫步驟。它的設計目標是同一份策略程式碼,從回測直接走到實盤,中間沒有 rewrite step。策略繼承 Strategy / IStrategy,實作 on_trade()start()stop() 等生命週期方法;成交與報價事件透過 Disruptor 風格的 ring buffer 無鎖派送,busy-spin consumer 負責低延遲消費。

框架不只給你一個空殼。串流指標庫(EMA、RSI、SMA…)、訂單簿、回測引擎、資料 I/O 都內建。交易所這端有四個原生 connector:Bybit V5、Bitget V2、Hyperliquid、Polymarket。再加上一個專門讓 AI coding agent 理解 FLOX 的 MCP 伺服器 flox-mcp。整套採 MIT 授權,floxlabs.dev 提供商用支援。

FLOX 策略生命週期 · 一份程式碼跑完全程
指標 策略 回測 連接器 實盤
「The same strategy code transitions directly from backtest to live without a rewrite step.」
同一份策略程式碼,從回測直接走到實盤,不需要重寫那一步。
— FLOX README · 設計核心
02
安裝與建置

安裝方式:依語言選 PyPI、npm 或原始碼建置。

FLOX 把安裝拆成兩條路。只要寫策略、跑指標、做回測,直接從 PyPI 或 npm 裝預編譯套件,完全不用碰 C++ 工具鏈。要連接交易所、編譯 connector,或自己改引擎,才需要從原始碼用 CMake 建。

# Python — 指標、策略、回測的主力
pip install flox-py

# Node.js — 同一套 API,改用 JavaScript / TypeScript
npm install @flox-foundation/flox

# AI 開發夥伴 — 讓 Claude Code / Cursor / Cline 看懂 FLOX
pip install flox-mcp

從原始碼建置:連接器與引擎

需要 Python 3.10+、Node 18+、C++20 編譯器(GCC 13+ 或 Clang 16+)、CMake 3.22+,作業系統限 Linux 或 macOS。FLOX 以一組 CMake feature flag 控制編譯範圍,預設幾乎全部關閉,按需開啟。

git clone https://github.com/FLOX-Foundation/flox.git
cd flox

# 研究 / Python-only:Python 綁定 + 回測引擎
cmake -B build -DFLOX_BUILD_PYTHON=ON -DFLOX_ENABLE_BACKTEST=ON

# 正式交易服務:加上連接器,並指定要編的交易所
cmake -B build -DFLOX_BUILD_PYTHON=ON \
cmake -B build -DFLOX_BUILD_CONNECTORS=ON \
cmake -B build -DFLOX_CONNECTORS="bybit;bitget" \
cmake -B build -DFLOX_ENABLE_BACKTEST=ON
功能預設全關。BacktestRunner 需要 -DFLOX_ENABLE_BACKTEST=ON 才會把 src/backtest/ 編進核心庫;連接器需要 -DFLOX_BUILD_CONNECTORS=ON,並先備妥 OpenSSL、zlib、libcurl。Polymarket executor 另外吃 Rust 工具鏈,不需要時用 -DFLOX_ENABLE_POLYMARKET_ORDER_EXECUTOR=OFF 關掉。
03
核心能力總覽

FLOX 模組清單:策略、指標、回測、連接器。

FLOX 把一條完整交易管線拆成可組合的模組,依職責分為四組:策略與語言綁定、市場數據與指標、回測、交易所連接器。研究階段通常只用前三組,上線才接 connector。每張卡片對應一個具體模組。

綁定 · 01
flox.Strategy
統一策略 API
繼承 Strategy / IStrategy,實作 on_trade、start、stop。同一份策略在五種語言綁定上行為一致。
綁定 · 02
pip install flox-py
Python 綁定
pybind11 打包的 flox_py。研究、回測、快速原型的主力,API 與底層 C++ 一一對應。
綁定 · 03
@flox-foundation/flox
Node.js 綁定
與 Python 完全相同的 API,改用 JavaScript / TypeScript。給 Node 服務或前端團隊直接接。
綁定 · 04
libflox_capi.so
C API 整合層
編出共享庫後,任何能呼叫 C 的語言都接得上 FLOX。Codon 與嵌入式 QuickJS 也走這條路。
數據 · 05
flox.EMA / RSI / SMA
串流指標庫
EMA、RSI、SMA 等串流指標,update() 餵一個價格回一個值,暖機期間回 None。
數據 · 06
OrderBook
即時訂單簿
內建訂單簿結構,吃 WebSocket 增量更新,維護即時買賣盤深度。
數據 · 07
TradeEvent
無鎖事件派送
Disruptor 風格 ring buffer + busy-spin consumer,低延遲把成交與報價事件送進策略。
數據 · 08
Data I/O
資料讀寫
內建資料 I/O,讀歷史 tape、寫 replay log。LZ4 壓縮預設開啟,落地檔案更小。
回測 · 09
flox.BacktestRunner
回測引擎
給 fee_rate、initial_capital,run_csv() 吃歷史成交,回傳報酬率、Sharpe、最大回撤。
連接器 · 10
Bybit connector
Bybit V5
WebSocket 行情 + REST 下單執行器。原生連接器,與引擎一起編進 flox::connectors。
連接器 · 11
Bitget connector
Bitget V2
WebSocket 行情 + classic account REST 執行器,串接 Bitget V2 帳戶體系。
連接器 · 12
Hyperliquid connector
Hyperliquid
WebSocket + REST。下單透過包官方 SDK 的 Python daemon(hl_signerd.py)簽章。
連接器 · 13
Polymarket connector
Polymarket
WebSocket + Rust FFI 執行器。需 proxy 錢包與 USDC 資金,憑證放環境變數。

五種綁定,怎麼選

語言綁定 安裝方式 適合場景
Python pip install flox-py 研究、回測、快速原型
Node.js npm install @flox-foundation/flox Node 服務、TypeScript 團隊
Codon 原始碼建置 要 Python 語法,但接近原生速度
JavaScript C++ 內嵌(QuickJS) 把策略邏輯熱載入引擎
C API libflox_capi.so 接上任何其他語言的整合點
04
進階密技 · flox-mcp

flox-mcp:把 FLOX 介面直接提供給 AI agent。

FLOX README 所稱的「AI-friendly developer tools」,指的是 flox-mcp,一個跑在本機的 Model Context Protocol 伺服器。它將 FLOX 的 C-API 簽章、錯誤碼目錄、指標庫直接提供給 Cursor、Claude Code、Cline 等 AI agent,使其取得真實介面而非依訓練資料推測。flox-mcp 由 IDE 以子行程啟動,走 stdio 溝通,全程本機執行,不對外連線。以下說明八個配置要點。

TIP 01

一行 init,接上你的 IDE

pip install flox-mcp 之後跑 flox-mcp init,它會生成 .mcp.json。加 --global 寫到 ~/.config/claude/.mcp.json;先用 --print 看合併結果、再決定要不要寫入。

來源 · mcp/README.md
TIP 02

14 個工具,先記查詢三件套

flox-mcp 共開 14 個工具。查資料常用 list_indicatorslist_capi_functionsdocs_search,分別列出指標簽章、搜尋 C-API 介面、全文搜文件。AI agent 可直接取得函式名稱,無需推測。

來源 · mcp/README.md
TIP 03

寫策略前先 scaffold,寫完先 validate

scaffold_strategy 生成 Python / Node 的起手式模板(bar / trade / hybrid 三種變體);validate_strategy 對 Python 策略做 AST 靜態分析,檢查 hook 有沒有接對。讓 AI 生出的策略先過這關。

來源 · mcp/README.md
TIP 04

lookup_error_code 把錯誤碼變人話

跑出 E_SYM_001 這類錯誤碼時,lookup_error_code 會對應到 Markdown 文件說明。配合 explain_event 解釋事件結構欄位,debug 不用翻原始碼。

來源 · mcp/README.md
TIP 05

compute_indicator / run_backtest 當場跑

compute_indicator 對 float 陣列跑指標(輸入上限 1 MiB);run_backtest 在資源受限的子行程裡跑策略對 CSV 資料集。AI agent 能當場驗證數字,不只生成程式碼。

來源 · mcp/README.md
TIP 06

版本對齊,agent 看到的就是你裝的

flox-mcpflox-py@flox-foundation/flox 版本號同步發佈。wheel 內含 C-API snapshot、錯誤文件、binding manifest、SQLite FTS5 文件索引等唯讀快照,確保 agent 讀到的介面與實際安裝版本一致。

來源 · mcp/README.md
TIP 07

suggest_indicator:用英文描述換指標

不確定該用哪個指標時,suggest_indicator 把英文描述對應到排序後的指標建議;lookup_symbol 則把符號名在 C-API、Python、Node、Codon 之間互譯。

來源 · mcp/README.md
TIP 08

要接實盤,另外起 paper engine

flox-mcp 預設只給唯讀查詢與計算。要解鎖 tier-5/6 的實盤功能,得另外起 paper engine:flox engine sim --strategy s.py --tape ./tape,再用 flox-mcp init --engine-url URL --token T 把控制伺服器接上。

來源 · mcp/README.md
05
實戰演練

雙均線交叉策略:從 pip install 到回測輸出。

以下是一段示範流程:你想做一個 BTCUSDT 的雙均線交叉策略。先讓 Claude Code 透過 flox-mcp 生出骨架,再用 flox-py 寫策略、跑回測。指令與程式碼取自 FLOX 官方文件與 mcp/README.md;回測數字為示意值。

~/projects/sma-cross · claude code · flox v0.6.1
You › 幫我用 FLOX 做一個 BTCUSDT 的雙均線交叉策略,Python。
[flox-mcp connected · 14 tools available]
[calls scaffold_strategy · language=python · variant=trade]
[calls suggest_indicator · "two moving averages crossover"]
  → 建議:SMA(fast) + SMA(slow),交叉產生訊號
Claude ›
我用 flox-mcp 的 scaffold_strategy 生了一個 trade 變體的骨架。
策略繼承 flox.Strategy,在 on_trade hook 裡比對快慢均線:
# sma_cross.py
registry = flox.SymbolRegistry()
btc = registry.add_symbol("binance", "BTCUSDT", tick_size=0.01)

class SMACross(flox.Strategy):
    def __init__(self, symbols):
        super().__init__(symbols)
        self.fast = flox.SMA(10)
        self.slow = flox.SMA(30)

    def on_trade(self, ctx, trade):
        f = self.fast.update(trade.price)
        s = self.slow.update(trade.price)
        if f is None or s is None:
            return
        if f > s and ctx.is_flat():
            self.market_buy(0.01)
        elif f < s and ctx.is_long():
            self.close_position()
You › 看起來對。先驗證,再回測。
[calls validate_strategy · sma_cross.py]
  AST parse ✓ · on_trade hook 已接 · 無語法問題
You › pip install flox-py,然後跑回測。
# 回測:fee_rate 與初始資金交給 BacktestRunner
bt = flox.BacktestRunner(
    registry, fee_rate=0.0004, initial_capital=10_000)
bt.set_strategy(SMACross([btc]))
stats = bt.run_csv("btcusdt_trades.csv")
[run_backtest 在資源受限的子行程裡執行]
Claude ›
回測跑完了(以下為示意輸出):
  return_pct        +12.4
  sharpe            1.83
  max_drawdown_pct  -8.10
同一份 sma_cross.py,接上 Bybit connector 就能走實盤,
on_trade 那段邏輯一個字都不用改。
同一份 sma_cross.py,回測完成後接上 connector 即可進入實盤。FLOX 的設計去掉了中間的重寫步驟。
— FLOX 架構設計說明

這段流程的關鍵

flox-mcp 的作用是讓 AI agent 取得真實的 FLOX 介面,而非生成程式碼。scaffold_strategy 提供官方模板,validate_strategy 執行真實 AST 分析,run_backtest 在受限子行程裡執行。agent 使用的是確認過的 API,不依賴訓練資料推測。

sma_cross.py 從回測到實盤不需修改,原因是 BacktestRunner 與 Runner 共用同一份策略 API。回測時 run_csv 餵入歷史成交(CSV 欄位為 timestamp,price,qty,is_buy),實盤時 connector 餵入 WebSocket 事件。策略的 on_trade 邏輯保持不變

06
注意事項

使用前需確認的八項限制與邊界

  • v0.6.1,還很年輕。FLOX 在 2026 年 5 月才釋出 v0.6.1,GitHub 星數約 200。API 仍可能變動;README 明寫「provided as is, without warranty of any kind」,真實資金上線前請自己充分驗證。
  • 只支援 Linux 與 macOS。從原始碼建置需要 C++20 編譯器(GCC 13+ / Clang 16+)與 CMake 3.22+,官方文件沒有列 Windows。Windows 使用者建議走 WSL2。
  • 功能旗標預設全關。CMake feature flag 幾乎都預設 OFF。忘了加 -DFLOX_ENABLE_BACKTEST=ON,BacktestRunner 就不存在;忘了 -DFLOX_BUILD_CONNECTORS=ON,就連不上交易所。建置指令要按用途配齊。
  • flox-mcp 的沙箱不隔離檔案與網路。官方明寫:「The MVP sandbox caps resources but does not isolate filesystem or network.」run_backtest 只限制資源。要餵不可信輸入,得自己用 nsjail、firejail 或 Docker 包一層。
  • 連接器各有外部依賴。Hyperliquid 下單要另外跑一個 Python daemon(hl_signerd.py)做簽章;Polymarket 需要 Rust 工具鏈、連好的 proxy 錢包與 USDC 資金。不是 cmake 一下就全部到位。
  • 金鑰勿寫死在程式碼裡。Polymarket executor 需要交易錢包私鑰與 proxy 錢包位址,官方要求以環境變數傳入(PM_PRIVATE_KEYPM_FUNDER_WALLET),禁止硬編。實盤金鑰外洩等同資金外洩。
  • 實盤 MCP 功能需額外授權。flox-mcp 預設僅開放唯讀查詢與計算。tier-5/6 的實盤控制需另起 paper engine 並帶 token,將 --engine-url--token 接上真實帳戶後,需自行管理對應權限。
  • 這是框架,不是策略。FLOX 給你引擎、指標、連接器、回測,但不會給你「會賺錢的策略」。本手冊的雙均線交叉是教學範例,不是 alpha。框架負責執行正確,盈虧仍是你的事。
07
進階路徑

FLOX 整合路徑:語言擴充、熱載入與連接器選擇。

FLOX 的整合點設計開放。C API 是官方文件明指「adding support for any other language」的擴充入口,凡能呼叫 C 的語言均可接上 FLOX 引擎。

進階玩法地圖

1. 用 Codon 寫接近原生速度的策略。Codon 綁定讓你用接近 Python 的語法寫策略,卻編譯成原生碼。研究階段的 Python 程式碼能更平滑地過渡到高效能版本。

2. 把策略熱載進引擎。QuickJS 綁定把 JavaScript 策略執行階段內嵌進 C++ 引擎,適合需要動態載入、不重啟服務就換策略的場景。

3. 只編你要的連接器。-DFLOX_CONNECTORS="bybit;bitget" 挑選要編哪些交易所,不用每次把四個全編。連接器以 flox::connectors 靜態庫的形式跟引擎一起建。

4. 接上你自己的語言。編出 libflox_capi.so 後,Rust、Go、C# 都接得上。C API 就是 FLOX 給「任何其他語言」預留的擴充點。

5. 把 flox-mcp 接進團隊 AI 工作流。flox-mcp init --global 讓整台機器的 Claude Code / Cursor / Cline 都連上同一份 FLOX 介面快照,團隊成員的 AI agent 看到的 API 就一致。

最該讀的三份延伸閱讀

FLOX-Foundation/flox:主 repo 與 README,polyglot 綁定總覽與快速上手。
mcp/ 目錄:flox-mcp 的完整工具清單、設定旗標與安全須知。
connectors/ 目錄:四個原生交易所連接器的建置與設定細節。

「The C API is the integration point for adding support for any other language.」
C API 就是接上任何其他語言的整合點。
— FLOX 架構說明