migrate: last 4 JSON files — live_prices, market, mtf_cache, capital_flow → DB
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
"""Diagnose: check HK stock costs, prices, total assets calculation"""
|
||||
import sys
|
||||
sys.path.insert(0, '/home/hmo/MoFin')
|
||||
from mo_models import calc_total_assets, calc_total_mv, is_hk_stock, to_cny, get_hk_rate
|
||||
from mo_data import read_portfolio
|
||||
import json
|
||||
|
||||
pf = read_portfolio()
|
||||
holdings = pf.get('holdings', [])
|
||||
rate = get_hk_rate()
|
||||
|
||||
print(f"HK_RATE: {rate}")
|
||||
print(f"total_assets (from DB): {pf.get('total_assets')}")
|
||||
print(f"total_mv (from DB): {pf.get('total_mv')}")
|
||||
print(f"cash: {pf.get('cash')}")
|
||||
print(f"frozen_cash: {pf.get('frozen_cash')}")
|
||||
print(f"position_pct: {pf.get('position_pct')}")
|
||||
|
||||
total_mv_calc = calc_total_mv(holdings)
|
||||
total_assets_calc = calc_total_assets(pf)
|
||||
print(f"\ncalc_total_mv: {total_mv_calc}")
|
||||
print(f"calc_total_assets: {total_assets_calc}")
|
||||
|
||||
print(f"\n=== HK stocks ===")
|
||||
for h in holdings:
|
||||
code = h.get('code', '')
|
||||
if is_hk_stock(str(code)):
|
||||
cost = h.get('cost', 0) or 0
|
||||
price = h.get('price', 0) or 0
|
||||
shares = h.get('shares', 0) or 0
|
||||
mv = price * shares
|
||||
cost_calc = cost * shares
|
||||
pnl = (price - cost) * shares if cost > 0 else 0
|
||||
pnl_pct = (price - cost) / cost * 100 if cost > 0 else 0
|
||||
print(f" {code} {h.get('name')}: cost={cost} price={price} shares={shares} mv={mv} pnl={pnl:.1f} ({pnl_pct:+.1f}%)")
|
||||
Reference in New Issue
Block a user