Files
MoFin/_cron_report.py
T

58 lines
1.6 KiB
Python

#!/usr/bin/env python3
import sys; sys.path.insert(0, '/home/hmo/MoFin')
from mo_data import *
pf = read_portfolio()
ta = pf.get('total_assets',0)
ca = pf.get('cash',0)
pp = pf.get('position_pct',0)
print(f'TA:{ta:.0f} CASH:{ca:.0f} POS:{pp:.1f}%')
for h in pf.get('holdings', []):
c = h.get('currency','CNY')
p = h.get('price')
pos = h.get('position_pct')
if pos is None:
pos = 0
if p is None:
print(f' {h["code"]} {h["name"]} 价? 仓{pos:.1f}%')
continue
tag = ' HKD' if c == 'HKD' else ''
print(f' {h["code"]} {h["name"]}{p:.2f}{tag}{pos:.1f}%')
wl = read_watchlist()
if wl and 'stocks' in wl:
for s in wl['stocks']:
nm = s.get('name','')
p = s.get('price')
if p is None:
print(f' WATCH {s["code"]} {nm} 价?')
else:
print(f' WATCH {s["code"]} {nm}{p:.2f}')
# sector data
import json, sqlite3, os
db = os.path.join('/home/hmo/MoFin', 'data', 'mofin.db')
conn = sqlite3.connect(db)
c = conn.cursor()
try:
c.execute("SELECT id, market_trend, data FROM sector_snapshots ORDER BY id DESC LIMIT 1")
row = c.fetchone()
if row:
print(f' TREND:{row[1]}')
d = json.loads(row[2]) if isinstance(row[2], str) else row[2]
if d:
for k,v in list(d.items())[:5]:
print(f' {k}: {v}')
except Exception as e:
print(f' DB err:{e}')
conn.close()
# decisions
dec = read_decisions()
if isinstance(dec, dict):
ds = dec.get('decisions',[])
print(f' DECISIONS:{len(ds)}')
for d in ds[:5]:
print(f' {d}')