光標在確認鍵上方停頓不到一秒,陳帆的手指便落了下去。
“啟動。”
VWAP算法模塊的進度條開始滾動,深發展、浦發銀行、招商證券三只藍籌股被載入標的池,首筆五十六萬股的買入指令進入執行隊列。系統自動拆解為一百零三筆子單,每筆數量控制在流通盤的千分之一點五以內,時間跨度設定為四小時,完全貼合當日成交量分布預測曲線。
李陽盯著拆單日志,眉頭微皺。“第一筆掛單價格比現價高兩檔,會不會太激進?”
“不是激進。”陳帆盯著Level-2盤口數據,“現在買一檔只有八萬股,我們這單要是直接頂上去,等于告訴全市場有人要掃貨。系統選擇掛到買二,等別人先填前一檔,這是流動性管理的基本邏輯。”
話音剛落,第一筆七千五百股的委托成交,價格與市價持平。隨后二十秒內,第二筆、第三筆接連觸發,均以不沖擊盤口的方式完成撮合。
張遠調出實時成交明細表,低聲念:“第十一筆開始,系統主動降速了。原計劃每分鐘三單,現在變成兩單半。”
“因為大盤量能萎縮。”陳帆接過話,“十分鐘前滬深兩市平均每分鐘成交額是三百四十億,現在掉到三百一十億。系統識別到整體流動性收緊,自動拉長下單周期,避免被動抬價。”
李陽點頭,手指在鍵盤上敲下一行命令,調出算法內部的狀態機日志。屏幕上跳出一組動態參數:波動率修正系數從1.0調整至0.87,訂單釋放速率同步下調,滑動窗口內的成交量占比重新校準。
“它真的在‘看’市場。”張遠說。
第三十七筆委托發出時,盤口突然出現異常。原本穩定的買一檔掛單在成交瞬間被撤走大半,系統報價直接穿透到買三,導致該筆成交價高出基準價0.41%。
警報燈閃了一下。
張遠幾乎同時伸手去摸強制中止按鈕。
“別動。”陳帆聲音不高,但壓住了操作臺前的氣氛,“這不是故障。”
他調出盤口熱力圖,疊加過去三十秒的逐筆成交軌跡。畫面顯示,在那筆委托發出前兩秒,有三個陌生IP地址集中掛出總計十二萬股的賣單,位置全部卡在買一和買二之間,結構高度可疑。
“有人在試盤。”陳帆說,“故意制造流動性陷阱,想逼我們高價接貨。”
“那系統怎么還繼續掛單?”
“因為它判斷出了異常。”陳帆指著延遲補償模塊的反饋記錄,“第十三輪迭代后,算法已將該時段的置信度下調至68%,自動切換為‘觀察模式’——后續九筆單子全部改為被動掛單,等待對手方主動成交,不再追價。”
果然,從第三十八筆開始,所有委托都掛在買四或更低位置,雖成交速度變慢,但加權成本迅速回落。到第七十五筆時,盤口恢復正常,系統隨即恢復標準節奏。
“這已經不是簡單拆單了。”李陽看著最終統計,“它在和別的資金博弈。”
中午十二點十七分,最后一筆委托完成交割。系統自動生成執行報告:總成交量五十六萬兩千三百股,加權成交價較當日VWAP基準低0.32%,沖擊成本節約率達41.6%。
張遠反復核對著數據。“我們以前手動拆單,能做到低于0.15%就不錯了。這次……相當于白撿了近百萬的價差。”
“關鍵是可復制。”李陽打開后臺調度日志,“整個過程沒有一次人工干預。連應對試盤的操作都是模型自主決策,基于上周訓練的‘異常交易行為識別’子模塊。”
陳帆沒說話,而是調出系統資源占用圖表。CPU峰值負載僅67%,內存使用穩定,網絡延遲平均維持在9毫秒以內。這意味著當前架構還能并行處理至少三倍規模的訂單流。
“把這次全流程打包存檔。”他說,“命名‘VWAP_V1實戰案例’,權限設為團隊可見。”
“要不要加個標簽?”張遠問,“比如‘首次規避流動性狙擊’?”
“不用。”陳帆搖頭,“系統只記錄事實,不添加主觀描述。讓數據自己說話。”
李陽已經開始編寫日志分析腳本。他準備把本次運行中的十四次動態參數調整提取出來,輸入到下周即將上線的GPU集群調度模型中,作為初始訓練樣本。
“IDC那邊得盡快響應。”他說,“剛才那兩次延遲,一次147毫秒,一次203毫秒,雖然沒影響結果,但源頭查到了——是主交換機的QoS策略沖突,導致高頻心跳包被臨時降級。”
“我已經提交專線升級申請。”張遠接口,“新鏈路支持流量優先級標記,能確保交易指令始終走最高通道。”
陳帆點頭,目光仍停留在執行報告的最后一欄。那里記錄著系統在最后十分鐘做出的一個細微調整:當發現某券商席位連續小額拋售時,自動將后續三筆委托推遲了共計四十七秒,成功避開了一波集中打壓。
這種級別的適應性,早已超出預設規則的范疇。
“這不是工具了。”他輕聲說,“這是個交易員。”
下午兩點零八分,第二輪測試啟動。這次的目標是浦發銀行,單筆規模提升至八十萬股,系統自動啟用雙通道報價機制——一半通過普通經紀商通道掛單,另一半經由直連交易所的快速路由執行。
前五十筆順利成交,平均價優于市價0.29%。第六十一筆時,系統突然暫停釋放新單,轉而回撤已掛未成交的三筆委托。
李陽立刻調出監控面板。“怎么回事?行情正常,量能也沒突變。”
陳帆卻笑了。“你看它撤單的位置。”
屏幕上,三筆共四萬兩千股的掛單一齊從買三撤回,同一時間,Level-2數據顯示某機構席位正在緩慢堆積賣單,每一筆都精確控制在五萬股以下,間隔固定為四十五秒。
“它察覺到建倉節奏可能暴露了。”陳帆說,“對方在試探大單慣性,系統選擇暫時退讓,打亂自己的下單模式。”
兩分鐘后,系統重啟執行流程,但節奏完全改變——不再是均勻分布,而是采用隨機間隔與變動單量組合,最小一筆僅三千股,最大一筆達一萬八。
“這像不像人在思考?”張遠喃喃道。
到下午四點整,浦發銀行的建倉任務完成,最終優化幅度定格在0.34%。系統自動歸檔全過程數據,并在日志末尾生成一句簡短總結:“流動性適配策略有效,建議納入標準執行模板。”
陳帆站起身,走到主控臺側面的白板前,拿起記號筆寫下幾行字:
1. VWAP模塊通過實盤驗證
2. 拆單邏輯具備動態抗干擾能力
3. 成交成本優化穩定突破0.3%
4. 下一步:接入融券賣出端,測試雙向執行
他放下筆,轉身問:“今晚誰值班?”
“我。”李陽說,“我要盯住GPU集群的初始化進程,順便跑一遍歷史回測,看看這個策略在過去三年里能復現多少次。”
“我留下。”張遠也說,“剛收到通知,新的行情源API今晚零點上線,需要做兼容性測試。”
陳帆看了眼時間,又回頭望了眼仍在滾動數據的主屏。六大預測模型全部處于待命狀態,泡沫監測線維持平緩,尚未觸發任何紅色預警。
“那就都別走了。”他說,“等GPU集群上線,我們直接推第三輪壓力測試——十只股票,總規模三百萬股,全部啟用智能路由。”
他坐回座位,手指敲擊桌面,節奏平穩。
“讓系統真正跑起來。”