Normalize live position market values
This commit is contained in:
parent
49950d4028
commit
652e5504c3
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user