import json, os, math, statistics
from datetime import date

raw = json.load(open("data/market/tsla_raw.json"))
info = raw.get("info", {})
hist = raw.get("history_1y", [])

def g(k, d="N/A"):
    v = info.get(k, d)
    return d if v in (None, "") else v

prices = [r.get("Close") for r in hist if r.get("Close") is not None]
price_now = prices[-1] if prices else None
hi_52 = max(prices) if prices else None
lo_52 = min(prices) if prices else None

def pct(a,b):
    if a in (None,0) or b in (None,0): return "N/A"
    return f"{(a-b)/b*100:.2f}%"

report = []
report.append(f"# TSLA 数据化投资调研报告\\n\\n- 日期：{date.today()}\\n- 标的：TSLA\\n- 说明：基于公开行情/财务接口自动生成（非投资建议）\\n")
report.append("## 一、关键市场数据（自动拉取）\\n")
report.append(f"- 当前价（近1年数据最后收盘）：{price_now if price_now is not None else 'N/A'}")
report.append(f"- 52周高/低（近1年样本）：{hi_52 if hi_52 is not None else 'N/A'} / {lo_52 if lo_52 is not None else 'N/A'}")
report.append(f"- 市值（marketCap）：{g('marketCap')}")
report.append(f"- Forward PE：{g('forwardPE')}")
report.append(f"- Trailing PE：{g('trailingPE')}")
report.append(f"- Price/Sales（ttm）：{g('priceToSalesTrailing12Months')}")
report.append(f"- Beta：{g('beta')}\\n")

report.append("## 二、财报关键指标（需结合10-Q逐项复核）\\n")
report.append("- 自动接口已抓取季度利润表/资产负债表/现金流原始数据，建议重点复核：")
report.append("  1) Revenue（总营收）")
report.append("  2) Gross Margin / Automotive Margin")
report.append("  3) Operating Margin")
report.append("  4) Operating Cash Flow / Free Cash Flow")
report.append("  5) Cash & Equivalents、Inventory 变化\\n")

report.append("## 三、投资判断（数据+框架）\\n")
report.append("- 若毛利率企稳、FCF回升、储能持续高增：中期偏正面。")
report.append("- 若价格战延续且利润率继续走弱：估值回撤风险上升。")
report.append("- 自动驾驶/FSD进展决定估值溢价上限，但需防兑现延迟。\\n")

report.append("## 四、风险控制建议\\n")
report.append("- 分批建仓，不在财报前后单点重仓。")
report.append("- 设定单票仓位上限与失效条件（如毛利率/现金流连续恶化）。\\n")

report.append("## 五、原始数据文件\\n")
report.append("- `data/market/tsla_raw.json`\\n")

out = "/root/second-brain/05_reference/tsla-investment-research-data.md"
with open(out, "w") as f:
    f.write("\\n".join(report))
print("wrote", out)
