"""博弈分析计算引擎""" def net_position(long_pos: int, short_pos: int) -> int: """净持仓 = 多单 - 空单。正=净多, 负=净空""" return long_pos - short_pos def net_pnl(net_pos: int, avg_cost: float, current_price: float) -> float: """净盈亏 = 净持仓 × (现价 - 成本均价) × 20""" return net_pos * (current_price - avg_cost) * 20 def cost_delta(old_cost: float, new_cost: float) -> float: """成本变化 = 新均价 - 旧均价""" return round(new_cost - old_cost, 2) def format_pnl(pnl_yuan: float) -> str: """格式化盈亏为亿/万""" yi = abs(pnl_yuan) / 1e8 if yi >= 0.01: sign = "+" if pnl_yuan >= 0 else "-" return f"{sign}{yi:.2f}亿" wan = abs(pnl_yuan) / 1e4 return f"{'+' if pnl_yuan >= 0 else '-'}{wan:.1f}万"