← 返回文章列表
July 15, 2026
5 分鐘閱讀

TWAP、VWAP與POV對比:如何選擇執行基準(以及何時它們會對你撒謊)

TWAP、VWAP與POV對比:如何選擇執行基準(以及何時它們會對你撒謊)
#execution
#twap
#vwap
#pov
#implementation-shortfall
#volume-curve
#algotrading
#backtest

每一種執行調度演算法,本質上都是在對成交量預測下注。TWAP押注的是流動性在時間上是均勻分佈的。VWAP押注的是今天的成交量曲線會和昨天相似。POV押注的是此刻盤口上正在打印的成交量,就是現在交易的好理由——而這其中還包括你自己製造的那部分成交量。這些"押注"在廠商文件裡從來不會被標註為"押注",這也是為什麼大多數關於三者的對比文章讀起來像功能對照表:TWAP"簡單",VWAP"智能",POV"自適應"。這種表述方式完全沒有告訴你,哪種演算法會讓你虧錢、什麼時候虧、虧多少。

這是我們在《演算法交易中的訂單類型》一文中開啟的系列的第二篇,那篇文章裡我們用大約各40行Python代碼搭建了玩具版的TWAP和VWAP執行器。作為管道基礎設施,那些執行器已經夠用了。而這篇文章要講的,是那套管道背後隱藏的一切:隱含假設、基準之爭,以及一個在回放訂單簿數據上可復現的正面對比實驗——它會告訴你,這三種演算法不是"不同風味"的選擇,而是擁有不同風險特徵和不同失效模式的策略。

三種調度演算法,三種隱藏的賭注

先定義符號。一筆規模為 XX 的母單必須在時間區間 [0,T][0, T] 內執行完畢,拆分為 NN 個區間。設 xix_i 為區間 ii 中的子單數量,viv_i 為區間 ii 的市場成交量,pip_i 為區間 ii 的均價。整個執行區間上的市場VWAP為

VWAP=ipiviivi.\mathrm{VWAP} = \frac{\sum_i p_i v_i}{\sum_i v_i}.

TWAP 交易 xi=X/Nx_i = X/N:在相等的時間內交易相等的數量。其隱含假設是流動性——深度、價差、成交量——在時間上是均勻的,因此等量的切片會產生相等的衝擊成本。這個假設在現存的任何一個市場中都不成立,但它的失效方式是"優雅的":調度是確定性的,完成度由構造本身保證,最壞情況不過是把固定的一筆單交易進了一個清淡的時段,多付一些更寬的價差而已。第二個較少被討論的假設是:沒有人在盯著你。如果一個TWAP每隔60秒在整點準時打出一筆子單,它就是一個節拍器,而節拍器是會被搶跑的。任何靠譜的TWAP都會對子單的時間和數量做隨機化處理;調度應該是一個期望值平坦的類泊松過程,而不是一個時鐘。

VWAP 交易 xi=Xuix_i = X \cdot u_i,其中 uiu_i 是對區間 ii 佔全天成交量比例的預測值,且 iui=1\sum_i u_i = 1。這裡的賭注就變得明確了:你手握一條根據歷史數據估計出的曲線 {ui}\{u_i\},並假設今天會遵循這條曲線。這裡的假設不是成交量是平坦的,而是它是可預測且外生的——曲線不關心你是否在交易。當預測準確時,VWAP會把你的交易集中在市場能夠吸收的地方,你相對於市場VWAP的滑點幾乎必然很小。當預測不準時——比如一次未預定的新聞事件把當天40%的成交量擠進了曲線裡只分配了6%權重的那個小時——VWAP依舊不動聲色地按照過時的計劃交易,差價則由你來買單。VWAP把執行風險轉化為了成交量預測風險。這就是全部的權衡所在,也正是為什麼VWAP引擎裡真正有趣的工程工作是預測器,而不是切單器。

POV(成交量佔比,也叫"參與率")放棄了預測:以觀測到的每個區間成交量的固定比例 γ\gamma 來交易,即 xt=γVtx_t = \gamma \cdot V_t。這看起來似乎勝過VWAP——既然可以直接跟隨成交量,何必去預測它?問題在於,這個信號現在是內生的。你自己的成交也會打印在盤口上。如果市場其餘部分在某區間內成交了 MM,而你的目標是佔總盤口成交量的 γ\gamma,那麼你的數量需要滿足 x=γ(M+x)x = \gamma(M + x),即

x=γ1γM.x = \frac{\gamma}{1-\gamma}\,M.

γ=0.10\gamma = 0.10 時,這個修正是溫和的(相當於其他人成交量的11.1%)。在 γ=0.25\gamma = 0.25 時,你已經在交易其他所有人流量的33%;在 γ=0.5\gamma = 0.5 時,你已經和市場其餘部分的規模一一對等,不動點直接發散。POV還放棄了TWAP和VWAP都提供的一項保證:沒有完成時限。如果成交量枯竭,你的調度也就跟著枯竭了。我們下面會回到POV的病態問題,因為這些問題值得單獨成節討論。

還有一點將在後面變得重要:這三者在任何形式化意義上都不是"最優"的。真正能夠最小化成本—風險目標函數的調度演算法是Almgren–Chriss族演算法(Almgren and Chriss, 2000, "Optimal Execution of Portfolio Transactions," Journal of Risk 3, 5–39),我們在《Almgren–Chriss與最優執行調度理論》中對其進行了系統處理。TWAP是Almgren–Chriss模型在線性衝擊下、風險厭惡為零時的特例;VWAP是相對於成交量加權基準的最小跟蹤誤差策略(Konishi, 2002, "Optimal slice of a VWAP trade," Journal of Financial Markets 5(2));POV則是一種不對應任何目標函數的啟發式方法,這正是它的失效模式如此古怪的根本原因。

在一個永不收盤的市場裡估計成交量曲線

股票市場的文獻處理起來相對輕鬆。股票日內成交量呈U型——開盤時段成交活躍,午間清淡,收盤前又轉向活躍——這一現象自Jain and Joh(1988,"The Dependence between Hourly Prices and Trading Volume," JFQA 23(3))以來就有文獻記載,Admati and Pfleiderer(1988,"A Theory of Intraday Patterns: Volume and Price Variability," Review of Financial Studies 1(1))則為其提供了理論基礎,指出自由裁量型流動性交易者和知情交易者會在時間上內生地聚集。這個U型曲線由兩個硬性事件——開盤集合競價和收盤集合競價——所錨定,因此曲線是穩定的,用20天滾動平均的區間成交量佔比就能覆蓋90%的情況。

加密貨幣市場沒有開盤也沒有收盤,天真的想法是成交量應該是平坦的,TWAP應該約等於VWAP。這種天真的想法是錯的。加密貨幣的日內成交量是有結構的——只是錨定在不同的時鐘上:

時段效應。 成交量跟隨交易者和交易台的作息時間波動。在BTC和ETH等主流幣上,成交最活躍的時段是美國下午與歐洲晚間重疊的時段(大致為UTC 13:00—21:00),亞洲時段(UTC 00:00—08:00)則形成一個次高的成交量台階,而主流幣在UTC 04:00—06:00左右往往會出現明顯的低谷。區域持倉集中度較高的山寨幣對,其成交量會更強烈地偏向本地時段。

資金費率結算時間點。 永續合約在固定的UTC時間點結算資金費率——歷史上每8小時一次,分別為UTC 00:00、08:00、16:00,而自2025—2026年起,幣安等交易所已經把許多合約的結算週期縮短到4小時甚至1小時。結算時間點前後的幾分鐘裡,成交量會穩定地出現放大:基差交易者會在此時開平倉,任何想要操縱資金費率快照的人也會恰好在這個邊界時點交易。這些是尖峰而不是台階——用30分鐘為一個桶的曲線能夠捕捉到它們;而用2小時為一個桶的曲線會把它們平均掉,導致你的VWAP恰恰在流動性最好的時候參與不足。

周度季節性。 主流幣在週末的成交量結構性地低於工作日,而UTC週日晚間(對應亞洲週一早晨,再加上CME BTC期貨的重新開盤)有其自己的特徵。把所有天數彙總成一條單一的時間曲線是設定錯誤的;你需要的是一個"星期幾 × 一天中的時刻"的二維網格。

預定事件。 Deribit期權在UTC 08:00到期(每週五,季度到期時會形成更大的成交集群),美國宏觀數據在UTC 12:30/14:00公佈,CME結算也會影響基差流量。這些是日曆特徵,而不是季節性——應該用啞變量來處理,而不是汙染基線曲線。

一個可用的估計器,本著讓預測器在變聰明之前先保持誠實的精神:

import pandas as pd

def volume_curve(trades: pd.DataFrame, bucket="30min") -> pd.Series:
    """day-of-week x time-of-day volume shares from a trades tape."""
    v = trades["qty"].resample(bucket).sum()
    day_total = v.groupby(v.index.date).transform("sum")
    share = v / day_total                      # fraction of that day's volume
    key = [v.index.dayofweek, v.index.time]
    curve = share.groupby(key).median()
    return curve / curve.groupby(level=0).transform("sum")  # renormalize per day

用中位數而不是均值,這不是風格上的選擇。加密貨幣的成交量具有極強的重尾特性;一次連環爆倉可能在10分鐘內佔到全天成交量的15%,如果用基於均值的曲線,它會從此永遠預期那個時段會出現一次尖峰。股票文獻比靜態曲線走得更遠:Białkowski、Darolles and Le Fol(2008,"Improving VWAP strategies: A dynamic volume approach," Journal of Banking & Finance 32(9), 1709–1722)把區間成交量分解為一個共同的市場成分和一個用ARMA/SETAR動態建模的個股特有成分,並證明這種分解相比靜態經典曲線能顯著降低VWAP的跟蹤風險。這種方法遷移到加密貨幣市場是直接可行的:從頭部N個交易對中估計出一條全市場共同曲線(共同因子很強——資金費率結算時鐘和交易時段是共享的),然後把你所交易的這個交易對相對該曲線的偏離建模為一個你實時更新的均值迴歸日內過程。更近期地,Genet(2025,"Deep Learning for VWAP Execution in Crypto Markets: Beyond the Volume Curve," arXiv:2502.13722)證明,端到端學習的調度在幣安數據上的表現優於基於靜態曲線的VWAP——這說明在加密貨幣市場中,成交量曲線才是整條流水線中最薄弱的一環,而不是切單邏輯本身。

操作上的結論是:一條不分日期的靜態曲線是一個稻草人版的VWAP。如果你的對比結果顯示"VWAP在加密貨幣市場上僅僅勉強戰勝TWAP",先檢查一下這條VWAP曲線是否真的包含了資金費率尖峰以及工作日/週末的區分,再下任何結論。

加密貨幣日內成交量熱力圖,顯示資金費率尖峰與時段結構

POV的病態問題:追逐自己尾巴的演算法

POV的賣點是自適應性:市場交易時就跟著交易。有三種截然不同的病態問題會削弱這一優勢。

1. 反饋迴路。 前文提到的內生性不僅僅是一個記賬層面的修正。你的子單會創造成交量;成交量會抬高你的目標;你的目標又會創造更多成交量。在中等 γ\gamma 水平下,不動點 x=γ1γMx = \frac{\gamma}{1-\gamma}M 是穩定的,但你的交易後報告所顯示的已測量參與率(佔總盤口成交量的 γ\gamma)低估了你相對於"沒有你參與時市場本會是什麼樣"的真實足跡(佔其他所有人成交量的 γ1γ\frac{\gamma}{1-\gamma})。更糟的是,還存在二階反饋:你的成交推動了價格,價格變動吸引了動量型資金流並觸發止損單,這些流量抬高了盤口成交量,而你的POV引擎把自己造成的這部分成交量讀作了加速交易的邀請。這與最優行為恰好相反——具有衝擊感知能力的調度演算法(參數合理的Almgren–Chriss模型,以及Almgren、Thum、Hauptmann and Li(2005,"Direct Estimation of Equity Market Impact," Risk 18(7))等實證衝擊估計研究)會要求你在推高價格之後放慢速度,而不是加速。連環爆倉正是這種病態的極限情形:盤口成交量巨大、訂單簿單邊化,而一個普通的POV會在擠壓行情的最高點買得最狠,因為那裡正是成交打印最密集的地方。

2. 被人算計。 POV演算法本質上是一台由成交量觸發的訂單流機器,而任何被觸發的東西都可以被誘餌引誘。如果某個掠食者懷疑存在一個大額參與率買家,他可以主動製造成交量——在規則允許的地方自成交,或者只是用小規模主動交易——把POV引擎往前拉,然後再以更高的報價向它提供流動性。這是Brunnermeier and Pedersen(2005,"Predatory Trading," Journal of Finance 60(4))所描述的一般機制的一個小規模實例:當你未來的需求可以從你過去的行為中被預測出來時,其他人就會搶在你之前交易,你實際面對的價格路徑會比你預測的更差。TWAP洩露的是一份時間上的計劃;POV洩露的則是一個響應函數,這更加危險,因為對手可以隨時按需觸發它。

3. 永遠收不了尾的尾部。 POV沒有時鐘。如果你必須在UTC 16:00之前買入500個BTC,而成交量在14:00蒸發了,純粹的POV只能乾等——按照設計,它天生無法自行完成任務。因此每一個生產環境中的POV都會帶有一個最低速率下限和一個追趕模式,而追趕模式正是損失藏身之處:你可能整天都以10%的參與率被動交易,然後在收盤前一個清淡的窗口期,以三倍於目標參與率的有效速度,把剩餘的30%母單硬生生打出去。交易後的平均值看起來還不錯,但最後一批的邊際成本卻非常慘烈。如果你的POV報告沒有單獨拆分出這條尾部,你就還沒有看到它的真實成本。

def pov_child_qty(tape_vol: float, gamma: float, remaining: float,
                  t_left_s: float, min_rate: float) -> float:
    target = gamma / (1.0 - gamma) * tape_vol   # exclude our own prints
    floor = remaining / max(t_left_s, 1.0) * CHILD_INTERVAL_S
    if t_left_s < CATCHUP_HORIZON_S:            # deadline dominates
        floor = max(floor, remaining * CHILD_INTERVAL_S / t_left_s)
    return min(remaining, max(target, floor, min_rate))

這段代碼裡有兩個細節真正起作用:目標值使用的是剔除自己成交後盤口成交量的 γ1γ\frac{\gamma}{1-\gamma}(你必須從你所參照的盤口成交量中減去自己的成交——出人意料地,相當一部分實現並沒有這樣做),而截止期限下限會在時間耗盡時把POV轉化為"在剩餘量上執行TWAP",這樣至少能讓尾部成本變得可預測。

POV反饋迴路:成交創造成交量,成交量又抬高目標

基準:為什麼跑贏VWAP依然可能虧錢

調度演算法和基準是兩個相互獨立的選擇,把二者混為一談是交易後分析中最常見的錯誤。目前有兩種基準占主導地位。

VWAP基準——將你的平均成交價與區間VWAP作比較——由Berkowitz、Logue and Noser(1988,"The Total Cost of Transactions on the NYSE," Journal of Finance 43(1))提出,他們建議將當日成交量加權價格作為衡量機構執行品質的中性標尺。它成為行業預設標準的原因,社會性因素和技術性因素同樣重要:它計算簡單、易於解釋,只要你把交易分散在全天,就很難在這個基準面前顯得難看。

執行缺口(相對於到達價) 來自Perold(1988,"The Implementation Shortfall: Paper Versus Reality," Journal of Portfolio Management 14(3), 4–9):以決策發生那一刻的價格 p0p_0 為基準衡量一切。對於規模為 XX 的買單,已成交數量為 XfX_f,平均成交價為 pˉ\bar{p},終止價格為 pTp_T

IS=(pˉp0)Xf執行成本  +  (pTp0)(XXf)機會成本  +  手續費.\mathrm{IS} = \underbrace{(\bar{p} - p_0)\,X_f}_{\text{執行成本}} \;+\; \underbrace{(p_T - p_0)\,(X - X_f)}_{\text{機會成本}} \;+\; \text{手續費}.

Perold的核心觀點是,紙面組合和真實組合之間的差距,恰恰就是這個量——注意它會對你未能成交的部分收取成本,而VWAP基準對此則悄無聲息地忽略不計。正是這個機會成本項,讓執行缺口成為衡量POV的唯一誠實基準,因為POV的標誌性失效模式恰恰就是未成交的數量。

現在說說陷阱。作為基準,VWAP存在兩個結構性盲區:

它是自我指涉的。 你的成交本身就在基準之內。如果你佔了該區間成交量的30%,那麼VWAP當中大約30%就是你自己的平均成交價,你相對於VWAP的已測量滑點會因你自身的參與而被機械性地壓縮——你的訂單規模越大、衝擊越大,得分反而越好看。在極限情形下,如果你是唯一的交易者,那麼無論你把價格推得多離譜,你相對VWAP的勝出幅度恰好都是零。VWAP滑點衡量的是調度的執行貼合度,而不是成本。

它忽略了相對於決策時刻的價格漂移。 舉一個具體的例子:你決定以60,000美元的決策價買入100個BTC。市場整個下午都在上漲,區間VWAP報出60,320美元,而你的平均成交價是60,290美元。VWAP報告顯示:–5個基點,跑贏基準,交易台拿到一個綠色的評分格。到達價報告則顯示:你在100個BTC上比決策價多付了290美元——+48個基點,29,000美元的執行缺口。兩個數字都是對的。但只有一個是真金白銀。而這種激勵扭曲還有更深一層:一個按VWAP考核的交易員在趨勢上漲的一天裡應該放慢交易速度(把交易分散開來更貼合基準),而這恰恰與最小化執行缺口所需要的行為相反——因為此時價格正在離你遠去。這個基準不僅錯誤地度量了成本,它還在指導錯誤的行為。Kissell(2013,The Science of Algorithmic Trading and Portfolio Management, Academic Press)對這個基準選擇問題有詳盡的論述;他的表述值得內化:基準本質上編碼了"你在為誰的風險負責"。VWAP管理的是執行交易台的難堪風險。到達價管理的才是投資組合的盈虧。

實踐中的解決方案:以執行缺口為準來評估策略;將VWAP滑點用作診斷工具(它能把調度技巧從擇時運氣中分離出來,因為價格漂移對你和基準的影響是一樣的);並且,任何訂單佔區間成交量超過10%的人,在引用VWAP滑點時都必須同時報出參與率。

實驗:三種演算法,一份行情帶

定義已經明確,我們現在可以做那些對比文章從來不做的事情:在相同的回放數據上,對同一批母單運行三種調度演算法,觀察成本的分佈,而不是形容詞。測試框架運行在《成交模擬:部分成交、排隊位置,以及為什麼你的回測成交是假的》一文中描述的事件驅動成交模擬器之上——回放的L2深度數據,子單限價單需要爭取排隊位置,激進的子單會掃穿訂單簿,而我們的成交會擾動調度演算法所觀測到的行情帶(這一點對POV的影響尤其巨大,正如前面反饋迴路一節所述)。

具體設定,方便你在自己的數據上復現:

  • 標的/數據: BTCUSDT永續合約,90天的L2回放數據(前20檔,100毫秒粒度)+ 成交行情帶。
  • 母單: 每種演算法各500筆,跨演算法完全一致:隨機起始時間,執行區間 T=4T = 4 小時,規模為過去30天日均成交量(ADV)的0.75%(足夠大以體現真實衝擊,又足夠小使三種演算法都能大致完成),買方向,決策價 = 起始時刻的中間價。
  • TWAP: 48個子單切片,時間/數量各有±30%的抖動。
  • VWAP: 30分鐘粒度的"星期幾 × 一天中的時刻"中位數曲線(使用上文的估計器),每週重新擬合,不做日內實時更新——刻意選擇簡單版本。
  • POV: 目標為剔除自身成交後行情帶成交量的 γ=12%\gamma = 12\%,設有最低速率下限,最後30分鐘啟動TWAP式追趕。
  • 指標: 以決策價的基點數表示的執行缺口(含手續費)、VWAP滑點(基點)、完成率,以及——沒有人會去報告的一項——每筆母單最後四分之一部分的執行缺口。

我們運行結果的代表性數據(你的數字會有所不同,但形態不應該有本質差異):

指標(相對到達價的基點數) TWAP VWAP POV 12%
平均執行缺口 11.8 9.6 8.9
中位數執行缺口 9.1 7.7 6.4
執行缺口標準差 21.5 19.8 26.3
執行缺口95分位數 46 41 58
平均VWAP滑點 +1.9 +0.4 –0.8
T時刻完成率 100% 100% 96.4%
母單最後四分之一部分的平均執行缺口 12.5 10.2 19.7

按重要性遞增排列,有三點解讀:

均值美化了POV,而尾部則揭穿了它。 POV在平均和中位數執行缺口上都勝出——相對於靜態曲線,根據實際流動性自適應調整確實能帶來實實在在的幾個基點優勢。但它的執行缺口標準差和95分位數是三者中最差的,完成率也不是100%,而且它最後四分之一部分的成本是其整體均值的兩倍還多:永遠收不了尾的尾部加上追趕模式,恰好把成本集中在了均值所掩蓋的地方。如果你的母單是由alpha驅動、有硬性時限的,那條尾部才是真正重要的數字,POV在均值上的優勢根本無法彌補它。

VWAP相對TWAP的優勢,恰恰就是它的預測品質本身。 把VWAP與TWAP的執行缺口差距,按照已實現成交量曲線誤差(預測值 uiu_i 與實際佔比之間的 L1L_1 距離)分組,可以看到一個單調的關係:在預測最準的三分之一天數中,VWAP領先TWAP約4個基點;在預測最差的三分之一天數中,差距處於噪聲範圍內,有時甚至反轉。在加密貨幣市場中,預測最差的這三分之一並不是隨機分佈的——它們是爆倉日和新聞日,而這些恰恰也是整體成本最高的日子。VWAP之所以能提升平均表現,是因為它在原本就容易的日子裡跑贏了。

VWAP滑點和執行缺口對演算法的排名完全不同。 POV的平均VWAP滑點是的——這並不奇怪,因為它正是按照定義基準的那部分成交量的比例來交易的,它的成交本身就嵌在基準之內。按VWAP計分板,POV是這裡表現最好的演算法;按到達價計分板加上完成風險,它卻是最危險的。同一份行情帶、同一批成交,結論卻截然相反——這正是上一節全部論點以表格形式的呈現。

TWAP、VWAP和POV的執行缺口分佈

這個測試框架本身大約只有50行代碼,圍繞成交模擬器構建,但每一分鐘的投入都值得,因為它把調度演算法的選擇從一場品味之爭變成了一次測量:

for parent in sample_parents(n=500, horizon="4h", adv_frac=0.0075):
    for algo in (twap, vwap, pov):
        sim = ReplaySim(l2_stream(parent.window), fees=TAKER_MAKER)
        fills = sim.run(algo.schedule(parent))          # fills perturb the tape
        report(parent, algo, is_bps(fills, parent.p0),
               vwap_slip_bps(fills, sim.tape), fills.completion)

實踐中如何選擇

從以上所有分析中得出的誠實的選擇原則:

  • 有硬性截止時限、由alpha驅動的母單: 使用TWAP,或者一個前置加權的Almgren–Chriss調度。付出流動性平坦這一假設所帶來的成本,換取完成度保證和有界的尾部風險。對子單做隨機化處理。
  • 由基準驅動的流量(你確實是按VWAP考核的),或者普通日子裡的大額訂單: 使用VWAP——並把你的工程預算投入到成交量預測器上:星期幾網格、資金費率尖峰的精細化處理、以及像Białkowski–Darolles–Le Fol那樣的日內動態更新。一個配備了偷懶曲線的VWAP引擎,不過是多繞了幾道彎子的TWAP。
  • 機會主義、沒有硬性截止時限、對流動性敏感: 使用適度 γ\gamma(≤15%)的POV,基於剔除自身成交後的成交量計算,配備一個連環爆倉過濾器(當行情帶成交量的z分數爆表時限制參與率),以及一個成本被單獨測量的截止期限兜底機制。
  • 無論運行哪種演算法: 都應按照Perold的方法,以相對到達價的執行缺口來評分。把VWAP滑點保留作為調度技巧的診斷工具,但絕不能作為計分板——計分板必須以真金白銀計價,而只有到達價才做到了這一點。

以及這個實驗反覆印證的元規則:在你自己的回放數據上比較分佈,而不是均值。調度演算法本質上是對成交量預測的一次押注,而你不應該只看平均回報而忽略尾部來評判一次押注——市場正是靠這種方式把POV賣給你的。

免責宣告:本文提供的資訊僅用於教育和參考目的,不構成財務、投資或交易建議。加密貨幣交易涉及重大損失風險。

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

緊跟市場步伐

訂閱我們的時事通訊,獲取獨家 AI 交易見解、市場分析和平台更新。

我們尊重您的隱私。您可以隨時退訂。