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:
|
def normalize_position(item: dict | None) -> dict:
|
||||||
entry = normalize_holding(item)
|
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()
|
entry["product"] = _first_text(entry.get("product"), entry.get("product_type"), default="CNC").upper()
|
||||||
return entry
|
return entry
|
||||||
|
|||||||
@ -306,7 +306,8 @@ def position_last_price(item: dict | None) -> float:
|
|||||||
|
|
||||||
def normalize_position(item: dict | None) -> dict:
|
def normalize_position(item: dict | None) -> dict:
|
||||||
entry = dict(item or {})
|
entry = dict(item or {})
|
||||||
quantity = position_quantity(entry)
|
signed_quantity = position_quantity(entry)
|
||||||
|
quantity = abs(signed_quantity)
|
||||||
average_price = position_average_price(entry)
|
average_price = position_average_price(entry)
|
||||||
last_price = position_last_price(entry)
|
last_price = position_last_price(entry)
|
||||||
pnl = _first_float(entry.get("pnl"), default=quantity * (last_price - average_price))
|
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["t1_quantity"] = 0.0
|
||||||
entry["effective_quantity"] = quantity
|
entry["effective_quantity"] = quantity
|
||||||
entry["quantity"] = quantity
|
entry["quantity"] = quantity
|
||||||
|
entry["net_quantity"] = signed_quantity
|
||||||
entry["average_price"] = average_price
|
entry["average_price"] = average_price
|
||||||
entry["last_price"] = last_price
|
entry["last_price"] = last_price
|
||||||
entry["close_price"] = last_price
|
entry["close_price"] = last_price
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user