INNER CODE UNIT · Python
portfolio_get
simonlin1212/vibe-astock · vr/app.py:133
def portfolio_get():
"""持仓 + 实时盈亏(浮动盈亏红涨绿跌)。"""
try:
return {"data": pf.get_portfolio()}
except Exception as e: # noqa: BLE001
raise HTTPException(502, f"持仓读取异常:{e}") from e
@app.post("/api/portfolio/holding")
def portfolio_add(h: HoldingIn):
"""加一笔持仓(同代码按加权平均成本合并)。存本地,不上传。"""
code = (h.code or "").strip()
if not code.isdigit() or len(code) != 6:
raise HTTPException(400, "代码必须是 6 位数字")
if h.shares <= 0:
raise HTTPException(400, "数量必须大于 0")
# 成本价不限正负:融券 / 返息 / 摊薄后为负成本等情形按结果计算,用户想怎么输就怎么输。
out = pf.add_holding(code, h.shares, h.cost)