删除重复的旧calculate_pnl方法 - 保留新的完整版本,包含unrealized_pnl_pct字段
This commit is contained in:
parent
dec7453eaf
commit
40d81296e3
@ -1364,53 +1364,7 @@ class GridManager:
|
||||
file=sys.stderr, flush=True)
|
||||
return []
|
||||
|
||||
def calculate_pnl(self) -> Dict[str, float]:
|
||||
"""
|
||||
通过对比 currentGridList 和 historyGridList 计算盈亏
|
||||
|
||||
Returns:
|
||||
包含以下字段的字典:
|
||||
- total_entry_cost: 总建仓成本
|
||||
- total_filled_revenue: 总兑现收益
|
||||
- realized_pnl: 已实现盈亏
|
||||
- unrealized_pnl: 未实现盈亏
|
||||
- total_pnl: 总盈亏
|
||||
"""
|
||||
try:
|
||||
history = self.get_history_grid_list()
|
||||
current = self.get_current_grid_list()
|
||||
|
||||
# 计算已兑现的盈亏
|
||||
realized_pnl = sum(grid.profit or 0.0 for grid in history)
|
||||
|
||||
# 计算未实现的盈亏(当前持仓)
|
||||
unrealized_pnl = 0.0
|
||||
if self.current_price and self.avg_entry_price > 0:
|
||||
unrealized_pnl = (self.current_price - self.avg_entry_price) * self.total_quantity
|
||||
|
||||
# 总成本和收益
|
||||
total_entry_cost = sum(
|
||||
(grid.entry_price or 0) * grid.quantity
|
||||
for grid in history if grid.direction == 'buy'
|
||||
)
|
||||
total_filled_revenue = sum(
|
||||
(grid.filled_price or 0) * grid.quantity
|
||||
for grid in history if grid.direction == 'sell'
|
||||
)
|
||||
|
||||
return {
|
||||
'total_entry_cost': total_entry_cost,
|
||||
'total_filled_revenue': total_filled_revenue,
|
||||
'realized_pnl': realized_pnl,
|
||||
'unrealized_pnl': unrealized_pnl,
|
||||
'total_pnl': realized_pnl + unrealized_pnl,
|
||||
}
|
||||
except Exception as e:
|
||||
print(f"[GridManager] {self.pair} 计算盈亏失败: {str(e)}",
|
||||
file=sys.stderr, flush=True)
|
||||
return {}
|
||||
|
||||
# ===== Pointer Index 操作接口 =====
|
||||
# ===== Pointer Index 操作接口 ======
|
||||
|
||||
def move_pointer_left(self) -> bool:
|
||||
"""
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user