💰 用 Python 還原「到底花了多少錢買股票?」
有時候你會問自己:
「我帳上股票價值是這樣沒錯…但我到底實際投入了多少錢?」
這問題乍聽簡單,其實非常常見也非常棘手。
🧨 問題:我錢早就滾來滾去了啊!
很多人投資時:
- 沒記自己加碼多少錢(沒有入金記錄)
- 只剩券商提供的「買賣交易紀錄」
但這樣會出現什麼狀況?
- 你賣出股票,帳戶有現金
- 過幾天再買別的股票,用的是原本賣出的錢
- 重複買賣幾次後,你總買入金額可能膨脹了兩倍!
✅ 所以不能單看「買進總額」或「-帳面淨流出」來當作你的投入資金
✅ 解法:模擬帳戶現金流,還原真實加碼金額
💡 核心邏輯:
- 把交易紀錄照時間排序
- 模擬一個帳戶現金餘額(初始 0)
- 遇到賣出(+金額):錢進帳戶
- 遇到買進(-金額):
- 有現金就扣
- 不夠的話,補上缺口 → 這才是真的你「掏口袋的錢」
🧮 舉個例子
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 函式或封裝工具?可以留言或私訊我 🙌)
沒有留言:
張貼留言