INNER CODE UNIT · Python
portfolio_add
simonlin1212/vibe-astock · vr/app.py:142
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)
watchtower.poke() # 每日盯盘:持仓变化立即重建快照
return {"data": out}
@app.delete("/api/portfolio/holding")
def portfolio_remove(code: str = Query(...)):
out = pf.remove_holding(code.strip())
watchtower.poke() # 每日盯盘:持仓变化立即重建快照
return {"data": out}