陳帆的手指在鍵盤上停了幾秒,屏幕上的回測結果還停留在“Prediction&nplete”的綠色提示框。他沒有動,隻是將光標移向任務日誌的最底部,確認最後一次數據加載的時間戳是淩晨兩點十七分。U盤已經拔下,鎖進抽屜,但係統緩存仍在運行。
他打開Access主數據庫,界麵略顯陳舊,灰白色的表格背景映著窗外透進來的微弱天光。他沒去拉窗簾,也沒起身喝水。桌角那杯茶早就涼了,杯底沉澱著幾片茶葉,但他不在意。他的注意力全落在左側導航欄裡三個獨立的數據表上:股票行情、企業財報、政策記錄。
這三張表之前互不關聯,各自更新,像是三條平行線。現在他要讓它們交彙。
他新建了一個字段,在“宏觀政策表”中命名為“PolicyIndex”。接著調出林悅發來的郵件附件,裡麵是一份按日期整理的政策清單,從央行降準到財政部增發國債,每一條都標注了關鍵詞和初步影響判斷。他一條條看過去,發現她不僅歸類清晰,還在備注欄寫下了“可能利好基建”“短期流動性釋放”這樣的推斷。
他敲下第一行代碼,把“積極財政”“寬鬆貨幣”“窗口指導”這些詞設為觸發條件,對應賦予0.3到1.0之間的數值權重。比如,“降準”記為0.8,“發行特彆國債”則直接打到1.0。再通過時間戳與行情表對齊,讓每一天的交易數據都能匹配當天的政策強度。
程序運行後,彈出一個警告:部分日期存在多條政策記錄,需手動合並評分。他沒跳過,而是逐條審核,調整重疊項的疊加邏輯,防止信號被放大失真。兩個小時後,整張表完成量化轉換,生成了一條連續的“政策強度曲線”。
他切到Excel,導入1998年4月以來的所有周線數據,共127隻個股。然後編寫篩選規則:“當政策指數≥0.8,並且MACD出現金叉時”,標記為潛在買入信號。係統開始批量處理,進度條緩慢推進。
期間手機震動了一下,是林悅的消息:“昨天的數據校驗完了,有兩處原始公告時間可能誤差一天,已修正。”
他回複:“明白,用新版本重新跑一遍。”
等回測完成,結果顯示符合條件的個股在接下來三個交易日內上漲的比例達到89.6%,平均漲幅5.8%。最大一筆是4月23日的浦東金橋,政策信號疊加技術突破後,五天內漲了12.3%。
這個數字比單純依賴技術麵高出近二十個百分點。
他盯著圖表看了一會兒,轉頭打開VBA編輯器,開始寫一個新的腳本模塊。這次的目標不是單個指標,而是變量之間的聯動關係。他在注釋裡寫下:“檢測政策發布後第三天的技術響應延遲效應”。
剛寫完函數框架,電話響了。
是林悅打來的。
“你剛才測試的那個組合信號,我在紙質報上找到了原始出處。”她的聲音很穩,“4月16日《上海證券報》頭版提了一句‘有關部門正在研究加大財政投入’,但沒正式發文。你們係統沒收錄這條。”
陳帆頓了一下:“非正式消息也算?”
“市場反應了。”她說,“當天下午券商股集體異動,中信建投尾盤拉升超過3%。這不是巧合。”
他沉默幾秒,重新打開政策表,新增一類條目:“隱性政策信號”,包括媒體報道中的官方措辭變化、交易所口頭指導、行業會議透露的方向等。每一項都需要人工標注可信度等級。
他把這類信息的初始權重設得較低,隻有0.4,但允許在後續幾天內根據市場反饋動態上調。如果某條模糊消息之後被正式政策證實,係統會自動回溯並提升同類信號的曆史評分。
這樣一來,模型不僅能識彆明文政策,還能捕捉到政策醞釀期的早期征兆。
他再次啟動回測,加入這批新標注的數據。這一次,4月中旬的幾次提前反應被成功捕獲,整體準確率上升至89.3%,更重要的是,信號發出時間普遍提前了一到兩天。
他靠在椅背上,揉了揉眼睛。服務器風扇依舊低鳴,硬盤讀寫燈有節奏地閃爍。他打開係統日誌,在最新條目下輸入一行字:“政策變量可分級,非結構化信息可通過市場反饋反向驗證。”
然後新建一個文檔,命名為“DataLinkAnalyzerv1”。這是他計劃中的核心組件之一——專門用於挖掘不同維度數據之間隱藏關聯的算法引擎。
第一步,他定義三種基礎關聯模式:同步觸發(政策與技術信號同日出現)、前置驅動(政策先於技術變化)、滯後確認(技術走勢先行,政策隨後跟進)。每種模式都要建立獨立的統計模型。
他選擇陸家嘴作為首個測試標的。這家公司既有穩定的財務數據,又頻繁受到區域政策影響。他導入其第一季度的日線圖,疊加財政支出增速曲線和券商淨買入量柱狀圖。
運行分析後,屏幕上跳出一組相關係數。最顯著的一條是:每當財政支出同比增幅突破15%,並且券商連續三天淨買入超過五千萬時,陸家嘴股價在未來一周內上漲的概率高達92%。
這個組合信號從未被單獨提取過。
他立刻擴展樣本範圍,將同樣具備“政策敏感+機構持倉集中”特征的十家公司納入測試池。結果依然穩定,平均預測成功率維持在88%以上。
他開始調整參數靈敏度,試圖找到最優閾值。過程中發現一個問題:某些技術指標容易受短期波動乾擾,導致假信號頻發。比如一次MACD金叉僅維持了半天就被死叉打斷。
於是他增加了一個過濾機製:隻有當金叉持續超過兩個交易日,才視為有效信號。同時引入成交量加權因子,排除無量空漲的情況。
改完之後再跑一遍,誤判率明顯下降。
此時已是清晨五點,天色微微發亮。他喝了口涼茶,繼續調試。
林悅發來一條新消息:“我按你的格式整理了最近一周的潛在政策線索,共七條,已打包上傳。”
他下載文件,逐一核對來源。其中一條引起注意:某地方金融辦內部會議紀要提到“探索國企債務重組新模式”,雖未公開,但次日就有兩家國資背景的企業股價異動。
他把這條加入訓練集,標記為“L2級隱性信號”。
就在他準備重新運行全量測試時,係統突然彈出一個異常提示:數據庫連接中斷。
他立即檢查本地服務,發現SQLServer進程意外終止。重啟後提示日誌損壞,部分索引無法加載。
他眉頭一緊,迅速切換到備份路徑,嘗試恢複昨晚的快照。然而由於夜間同步過程中遭遇短暫斷電,最新備份也不完整。
他靜了幾秒,隨即打開命令行工具,手動重建關鍵索引。一邊操作一邊調出硬盤健康狀態監測程序,確認物理存儲單元無損。
四十分鐘後,主庫恢複正常。
他重新載入所有測試數據,進度條從零開始爬升。
屏幕右下角的時間跳到了六點十二分。
他沒有停下,而是打開“DataLinkAnalyzerv1”,在函數入口處添加了一個新的判斷分支:“若政策指數躍升超0.5個單位,則自動增強對該時段技術信號的掃描密度”。
代碼寫完,他按下回車。
程序開始加載訓練集,內存占用迅速攀升。資源監控窗口顯示,CPU使用率很快穩定在70%以上,硬盤持續讀寫。
他盯著進度條,手指輕輕敲擊桌麵。
突然,手機響起。
是林悅。
他接通,聽筒裡傳來她的聲音:“你有沒有想過,這些數據之間的聯係,不隻是數字的問題?”