price_monitor港股币种修复+calc_total_mv汇兑处理

问题链:
  price_monitor 从东方财富/腾讯拿HK股价(HKD) → x0.87转CNY写portfolio
  → DB存CNY→下游混读→建滔显示-24%浮亏(实为-0.6%)
修复:
  price_monitor不转CNY,港股存HKD原值
  calc_total_mv()增加币种判断:HK股用get_hk_rate()转CNY再汇总
  portfolio.json/watchlist的HK股价全部HKD原值
  DB同步修正所有HK股价格为HKD
  price_monitor DB写入加3次重试+database locked timeout
验证:
  建滔 87.7 HKD 浮亏-0.6%(不是-24%)
  现金 132,121.93 总资产 956,714.68
This commit is contained in:
知微
2026-07-03 10:19:09 +08:00
parent 1bb83c715d
commit 24a73103ed
9 changed files with 765 additions and 1146 deletions
+2 -6
View File
@@ -251,13 +251,12 @@ def refresh_data_prices():
if s['code'] in prices:
price, _, change_pct = prices[s['code']]
if price > 0:
# 港股API返回HKD需转RMB
if is_hk_stock(s['code']):
price = round(price * HK_RATE, 2)
# 港股API返回HKD直接存HKD原值。calc_total_mv统一做CNY折算
old = s.get('price', 0)
if abs(old - price) > 0.001:
s['price'] = round(price, 2)
s['change_pct'] = float(change_pct) if change_pct else 0
s['currency'] = 'HKD' if is_hk_stock(s['code']) else 'CNY'
updated += 1
changed = True
if changed:
@@ -298,9 +297,6 @@ def refresh_data_prices():
if s['code'] in prices:
price, _, change_pct = prices[s['code']]
if price > 0:
# 港股:API返回HKD,需转RMB
if is_hk_stock(s['code']):
price = round(price * HK_RATE, 2)
old = s.get('price', 0)
if abs(old - price) > 0.001:
s['price'] = round(price, 2)