import sys; sys.path.insert(0, '/home/hmo/MoFin')
from mo_data import *

# Portfolio
pf = read_portfolio()
ta = pf.get('total_assets',0)
ca = pf.get('cash',0)
pp = pf.get('position_pct',0)
print(f"总资产: {ta:.0f} 现金: {ca:.0f} 仓位: {pp:.1f}%")
for h in pf.get('holdings', []):
    c = h.get('currency','CNY')
    price = h['price']
    cost = h['cost']
    profit_pct = (price/cost - 1)*100 if cost and cost else 0
    ps = f"{price:.2f}{' HKD' if c=='HKD' else ''}"
    pp_h = h.get('position_pct')
    if pp_h is None: pp_h = 0
    print(f"  {h['code']} {h['name']} 价{ps} 仓{pp_h:.1f}% 盈{profit_pct:.1f}%")

# Watchlist
print()
wl = read_watchlist()
for s in wl.get('stocks',[]):
    try:
        c = s.get('currency','CNY')
        price = s.get('price')
        if price is None: price = 0
        ps = f"{price:.2f}{' HKD' if c=='HKD' else ''}"
        el = s.get('entry_low')
        eh = s.get('entry_high')
        enl = f"{el:.2f}" if el is not None else '?'
        enh = f"{eh:.2f}" if eh is not None else '?'
        print(f"  自选 {s['code']} {s.get('name','')} 价{ps} 入{enl}~{enh}")
    except Exception as e:
        print(f"  ERROR {s.get('code','?')}: {e}")
