《天才操盤,從助理到資本掌舵人》第157章 等一個結果(2)

作者:望雲不見山·3個月前

他靠在椅背上,盯著這幾行字看了一會兒。

他之前做量化,所有引數都是手工調的。均線用哪兩根、止損設幾個點、成交量閾值定多少,全部靠回測資料一點一點試。試出來一組最優解,就寫死在程式碼裡,模型照著跑。但市場不會一首用同一種節奏。趨勢強的時候,靈敏的引數能抓住機會;趨勢弱的時候,靈敏就變成了活該被割。崔金源說的“活系統”,核心就是讓引數自己動起來——根據市場狀態,自動調整策略的靈敏度。不是人去遷就市場,是模型自己去適應。

但崔金源在臺上講的是大框架,具體怎麼落地,得靠自己一點一點試。林深想了想,決定先不動大結構,就從均線週期這一個引數開始改。

原來的模型用60日均線判斷方向,價格在線上做多,線下做空。60日均線在趨勢強的時候很好用,但一旦市場進入震盪,價格反覆在均線附近穿插,訊號頻繁切換,來回被割。

在峰會上聽崔金源講的時候就意識到了這個問題——不是均線本身不對,是均線的週期太死。

林深新建了一個函式,專門用來判斷市場狀態。邏輯不復雜,用趨勢強度指標把市場分成三種狀態:趨勢強、趨勢中等、趨勢弱。趨勢強的時候,價格方向明確,用靈敏的短週期均線;趨勢中等的時候,方向還在但噪音開始多了,換成穩重的中週期均線;趨勢弱的時候,市場在震盪,乾脆不開倉,趴著等。

核心改動只有二十幾行程式碼。敲完最後一個括號,他靠在椅背上盯著螢幕看了一會兒。均線週期現在會自己變了,不是他告訴模型該用哪組,是模型自己根據市場狀態去選。

他把螺紋鋼過去三年的日線資料導進去跑了一遍回測。螢幕上慢慢刷出新的績效曲線——收益率從31.7%提到了38.7%,最大回撤從19.3%降到了14.6%。勝率還是不高,西成出頭,但盈虧比從接近4比1提到了5比1——賺一次夠虧五次還有餘。

林深盯著那條比之前更平滑的曲線,心裡默默地算了一下。

只改了均線週期,收益就提升了七個百分點。崔金源那張對比圖裡的最佳化幅度是十二個點,那是包括止損、成交量、因子權重在內的一整套動態框架跑出來的結果。他現在只動了第一步,七個百分點——方向對了,但還有空間。

接下來是止損。原來的止損是固定的,開倉價的2%。不管市場波動大還是小,一刀切。波動大的時候2%太窄,稍微一晃就被震出去;波動小的時候2%又太寬,利潤回吐了一截才觸發。他把止損幅度和波動率掛鉤,波動大的時候放寬一點,別被震出去;波動小的時候收緊,保護利潤。邏輯和均線切換一樣:不是他定一個死數,是模型根據市場狀態自己調。

改完止損,他順手把成交量閾值也調整了一下。原來的規則是突破必須放量到過去20日均量的1.5倍以上才確認,這個1.5倍也是拍腦袋拍出來的。

現在同樣的思路——趨勢強的時候放量標準可以低一點,趨勢弱的時候必須嚴格放量確認。

三個引數——均線週期、止損幅度、成交量閾值——現在都是活的,都會根據市場狀態自動調整。他把所有改動儲存好,重新跑了一遍回測,沒有再往上跳。改一個引數能提升七個百分點,改三個引數效果沒有疊加,說明三個引數之間存在重疊的最佳化空間,單獨改一個就夠了,後面的兩個只是讓系統更穩定。

林深靠在椅背上,盯著螢幕上的程式碼。從“死引數”到“活系統”,這才是第一步。

“林哥。”

周學明從電梯口走過來,手裡拿著一個資料夾。“匯創驅動的調研提綱我改好了。你幫我看看還有沒有要補的。”

林深接過來翻了幾頁。提綱列得很細,產能爬坡節奏、客戶匯入進度、競爭對手的擴產計劃,每一條都有註明。他在最後一頁的空白處寫了一句:重點問研發投入佔比,伺服電機這個賽道技術迭代快,研發跟不上,產能再高也沒用。

“什麼時候去?”他把資料夾遞回去。

“下週。”

“遇到拿不準的別急著下結論,多問幾個為什麼,資料拍回來再看。”

“好。”周學明接過資料夾,猶豫了一下,“林哥,匯創驅動這家公司,我覺得邏輯挺硬的。如果調研確認了,能不能試著推一次?”

林深看著他。這句話從周學明嘴裡說出來,分量不一樣——以前他是跟在後面學,現在他想自己往前走了。“你己經是研究員了,自己做決定。不夠資料沒確認之前,別急著下結論。”

周學明點了點頭,轉身回了工位。

林深的目光重新看向螢幕上的回測曲線,心裡清楚這只是第一步。崔金源在臺上還講了一個更關鍵的東西——時間序列交叉驗證。他之前跑回測用的是全量資料一次性跑完,沒有分訓練集和測試集,這種做法本身就容易過擬合。回測再漂亮,放到實盤裡可能根本不是那麼回事。這個問題不解決,前面改再多引數都是空中樓閣。但時間序列交叉驗證需要把整個回測框架拆了重寫,今天做不完,得專門找個時間靜下心來弄。

猜你喜歡

同題材或同分類的其他作品。