You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python遍历字典计算投资组合盈亏结果与预期不符问题求助

问题排查与解决方案

错误原因

你的代码核心问题是盈亏计算时的括号位置错误,运算顺序不符合投资组合盈亏的计算逻辑:
原代码中的计算式 pl = market[key] - (portfolio[key]["strike"]) * portfolio[key]["volume"] 会优先计算「成本价 × 持仓量」,再用单股市价减去这个总持仓成本,和实际需要的计算规则不符。
正确的单只股票盈亏计算规则应为:(单股市价 - 单股持仓成本价) × 持仓量,你需要把市价减成本价的部分用括号包裹,保证运算优先级正确。

修正后代码

portfolio = {
  "AAPL": {
    "volume": 10,
    "strike": 154.12
  },
  "GOOG": {
    "volume": 2,
    "strike": 812.56
  },
  "TSLA": {
    "volume": 12,
    "strike": 342.12
  },
  "FB": {
    "volume": 18,
    "strike": 209.0
  }
}

market = {
  "AAPL":  198.84,
  "GOOG": 1217.93,
  "TSLA":  267.66,
  "FB":    179.06
}

total_pl = 0

for key, value in portfolio.items():
    # 调整括号位置,先算每股盈亏再乘以持仓量
    pl = (market[key] - portfolio[key]["strike"]) * portfolio[key]["volume"]
    total_pl += pl

print(total_pl)

输出验证

运行修正后代码的输出结果为 -174.5,和你的预期结果一致。

内容的提问来源于stack exchange,提问作者Maria_MAT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:36:03