2026-02-01 13:57:30 +00:00

48 lines
1.1 KiB
Python

import pandas as pd
from pathlib import Path
from datetime import datetime
MTM_FILE = Path("storage/mtm_ledger.csv")
def log_mtm(
sp_units,
gd_units,
sp_price,
gd_price,
total_invested,
):
sp_value = sp_units * sp_price
gd_value = gd_units * gd_price
portfolio_value = sp_value + gd_value
pnl = portfolio_value - total_invested
row = {
"timestamp": datetime.utcnow().isoformat(),
"sp_units": sp_units,
"gd_units": gd_units,
"sp_price": sp_price,
"gd_price": gd_price,
"sp_value": sp_value,
"gd_value": gd_value,
"portfolio_value": portfolio_value,
"total_invested": total_invested,
"pnl": pnl,
}
df = pd.DataFrame([row])
MTM_FILE.parent.mkdir(exist_ok=True)
if MTM_FILE.exists():
df.to_csv(MTM_FILE, mode="a", header=False, index=False)
else:
df.to_csv(MTM_FILE, index=False)
return portfolio_value, pnl
def should_log_mtm(df, current_ts):
if df.empty:
return True
last_ts = pd.to_datetime(df.iloc[-1]["timestamp"])
return current_ts.minute != last_ts.minute