2026年九月29日 · 研究

你的回測把同一筆資金花了兩次:投資組合帳務指南

你的回測把同一筆資金花了兩次:投資組合帳務指南

投資組合回測可能呈現平穩的權益曲線,卻把同一元花了兩次。這種情況通常發生在模擬器把權益、現金、抵押品和購買力視為可以互換的項目。它們彼此相關,但回答的是不同問題:帳戶擁有什麼、欠了什麼,以及此刻還能拿多少資金去下另一筆訂單。

假設策略以 $10,000 起步,買進價值 $6,000 的資產。此時它有 $4,000 的可用現金。如果回測接著把第二筆持倉的規模設為權益 $10,000 的 100%,就等於投入了 $16,000 的曝險,帳上卻只記錄 $10,000 的資本。依某些帳戶規則,這種槓桿可能合理;但不能只因為 sizing 程式碼用了「equity」,就認定它合理。

錯誤做法一:把權益當成現金

這種捷徑常見於多資產策略。每個訊號都按目前投資組合價值的一定比例計算訂單規模,而每筆訂單都能動用全部價值。投資組合迴圈各自計算訂單,最後卻把它們加總,沒有預留資金。

在交易活絡、又沒有追繳保證金情況的回測裡,問題很容易被忽略。報酬看起來合理;事後加總的持倉權重,有時卻高達 140% 或 180%。實際帳戶可能會拒絕後續訂單,或承擔策略原本無意使用的槓桿。

建立訂單時就預留現金。現金帳戶買進 $2,000 的資產,會占用 $2,000 加上手續費。保證金帳戶則應依交易場所的規則計算所需保證金,再從可用購買力中扣除。如果多筆訂單同時送出,請定義處理優先順序;否則結果可能取決於迴圈剛好先執行哪一筆。

錯誤做法二:把鎖定的抵押品算進可用購買力

在衍生品交易場所,存入 $1,000 的抵押品,不一定代表帳戶權益就減少 $1,000;但這筆抵押品確實已用來支撐未平倉部位。常見的帳務捷徑會先從現金扣除抵押品,再把持倉的全部名目價值從購買力扣除。另一種則反過來,將抵押品同時視為可用現金和保證金。

這兩種錯誤都會扭曲下一筆訂單的可執行狀況。前者可能讓策略看起來受到不必要的限制;後者則可能核准帳戶無力支應的訂單。在 5× 槓桿下,$5,000 的持倉可能需要約 $1,000 的初始保證金,但維持保證金、手續費、未實現虧損和交易場所特定級距都會改變實際可用金額。名目價值不等於抵押品。

帳戶數值代表什麼能用來支應新訂單嗎?
權益扣除負債並按市價計算持倉後的帳戶價值須符合保證金與購買力規則
可用現金尚未支出、預留或作為抵押的現金可以,但須符合商品規則
鎖定的抵押品用來支撐未平倉部位或訂單的資金通常要等到解除鎖定後才能使用
購買力交易場所計算出的額外訂單承載能力可以,但不得超過目前上限

請將這些項目分開建模,即使在某個簡單情境下,特定交易場所會讓其中幾項數值相同。接著測試持倉虧損時會發生什麼事:權益下跌,維持保證金占名目價值的比例可能上升,而可用購買力的縮減速度,可能比單看任何一項數值所預期的更快。

錯誤做法三:訊號一出場就釋出現金

回測通常會在出場訊號出現的瞬間釋出資金。但出場訊號不等於成交。訂單可能仍在等待、只部分成交,或遭到取消;在持倉實際平倉前,相關保證金和曝險都還在。即使成交,手續費與已實現損益也會影響可用資金。

問題通常集中在快速換倉時。模擬器平掉一筆交易後,立刻把所得資金用於另一筆交易,接著假設兩筆都以預期價格順利成交。在模擬交易中,若第一筆持倉尚未平倉,第二筆訂單可能遭到拒絕。或者出場訂單只部分成交,讓帳戶可用資金低於回測預期。

將待處理訂單和持倉都記為資金承諾。成交後才釋出資金,不要在訂單意圖出現時就釋出。部分成交的出場訂單,應按實際平倉數量比例釋出資金,並扣除成本。平常看似斤斤計較,直到波動劇烈的交易日有兩個策略同時爭用同一筆現金,就會知道這有多重要。

明確記錄帳務流水

每個決策時點都維護一份帳務流水,並按固定順序更新:為現有持倉標記市價、計算權益與保證金、處理成交和成本、重新計算購買力,接著計算新訂單規模並預留資金。記錄足夠細節,才能核對現金與持倉價值的每一筆變動。

一項實用的不變條件:每筆已接受的訂單,在送出當下都必須符合帳戶模型的資金支應條件。如果模擬器說不清楚是哪筆現金或哪種保證金支撐這筆訂單,這次回測就沒有證明投資組合有能力持有它。

在計算報酬的同時,也進行簡單的稽核。回報峰值總曝險、最低可用現金、最低保證金緩衝額,以及超出購買力的訂單數量。如果策略只有在資金被默默重複使用時才表現良好,那麼這得到的只是投資組合 sizing 結果,還稱不上可部署的回測。

投資組合帳務購買力回測保證金現金管理
← 所有文章