diff --git a/backend/app/services/groww_service.py b/backend/app/services/groww_service.py index d824951..a556c3b 100644 --- a/backend/app/services/groww_service.py +++ b/backend/app/services/groww_service.py @@ -362,5 +362,10 @@ def normalize_holding(item: dict | None) -> dict: def normalize_position(item: dict | None) -> dict: entry = normalize_holding(item) + quantity = abs(_first_float(entry.get("effective_quantity"), entry.get("quantity"), default=0.0)) + entry["settled_quantity"] = quantity + entry["effective_quantity"] = quantity + entry["quantity"] = quantity + entry["holding_value"] = quantity * _first_float(entry.get("last_price"), default=0.0) entry["product"] = _first_text(entry.get("product"), entry.get("product_type"), default="CNC").upper() return entry diff --git a/backend/app/services/zerodha_service.py b/backend/app/services/zerodha_service.py index 53992b6..990115b 100644 --- a/backend/app/services/zerodha_service.py +++ b/backend/app/services/zerodha_service.py @@ -306,7 +306,8 @@ def position_last_price(item: dict | None) -> float: def normalize_position(item: dict | None) -> dict: entry = dict(item or {}) - quantity = position_quantity(entry) + signed_quantity = position_quantity(entry) + quantity = abs(signed_quantity) average_price = position_average_price(entry) last_price = position_last_price(entry) pnl = _first_float(entry.get("pnl"), default=quantity * (last_price - average_price)) @@ -314,6 +315,7 @@ def normalize_position(item: dict | None) -> dict: entry["t1_quantity"] = 0.0 entry["effective_quantity"] = quantity entry["quantity"] = quantity + entry["net_quantity"] = signed_quantity entry["average_price"] = average_price entry["last_price"] = last_price entry["close_price"] = last_price