嗚嗚喔學習筆記: 你真的知道自己投入股市多少錢嗎?用 Python 還原「真實資金」的方法大公開

搜尋此網誌

2025年6月6日 星期五

你真的知道自己投入股市多少錢嗎?用 Python 還原「真實資金」的方法大公開

還原你真正投入股市的資金

💰 用 Python 還原「到底花了多少錢買股票?」

有時候你會問自己:

「我帳上股票價值是這樣沒錯…但我到底實際投入了多少錢?」

這問題乍聽簡單,其實非常常見也非常棘手。


🧨 問題:我錢早就滾來滾去了啊!

很多人投資時:

  • 沒記自己加碼多少錢(沒有入金記錄)
  • 只剩券商提供的「買賣交易紀錄」

但這樣會出現什麼狀況?

  • 你賣出股票,帳戶有現金
  • 過幾天再買別的股票,用的是原本賣出的錢
  • 重複買賣幾次後,你總買入金額可能膨脹了兩倍!

✅ 所以不能單看「買進總額」或「-帳面淨流出」來當作你的投入資金


✅ 解法:模擬帳戶現金流,還原真實加碼金額

💡 核心邏輯:

  1. 把交易紀錄照時間排序
  2. 模擬一個帳戶現金餘額(初始 0)
  3. 遇到賣出(+金額):錢進帳戶
  4. 遇到買進(-金額):
    • 有現金就扣
    • 不夠的話,補上缺口 → 這才是真的你「掏口袋的錢」

🧮 舉個例子

1月 買 -10,000 現金 = 0 → 實際投入 10,000
2月 賣 +12,000 現金 = 12,000
3月 買 -18,000 現金不足,補 6,000 → 再投入 6,000

✅ 結論:實際總投入是 16,000

不是你以為的「買了 28,000 就是投入 28,000」


🛠️ Python 程式碼怎麼寫?


account_cash = 0
net_invested = 0

for row in sorted_transactions:
    amt = row["Amount"]
    if amt > 0:  # 賣出
        account_cash += amt
    else:        # 買入
        needed = -amt
        if account_cash >= needed:
            account_cash -= needed
        else:
            net_invested += (needed - account_cash)
            account_cash = 0

📈 實際用途

  • 想算報酬率,但沒記入金
  • 有做再平衡、滾動買賣的交易人
  • 想看 Sharpe Ratio / IRR 時,不想被「假投入」影響

🔚 小結

這個「還原現金投入」的方法非常簡單但非常實用。
比起只看總買進金額,它能更貼近你真正「從錢包拿出來」的資金。

把它寫進你的投資分析程式,或記帳工具裡面,你會對自己的績效有更真實的掌握 👌


(想要這段程式變成一個 pandas 函式或封裝工具?可以留言或私訊我 🙌)

沒有留言:

張貼留言