feat libs,sdk,trend

This commit is contained in:
2026-09-07 14:04:26 +08:00
parent d37f9edefc
commit e320de3241
30 changed files with 515 additions and 507 deletions

View File

@@ -17,33 +17,33 @@ class PortfolioMixin:
def portfolio(self) -> Portfolio:
data = self._get_json("/api/portfolio") or {}
positions = {
code: PositionItem.from_dict(value, code)
code: PositionItem(**value)
for code, value in data.get("positions", {}).items()
}
return Portfolio(
assets=Assets.from_dict(data.get("assets", {})),
assets=Assets(**data.get("assets", {})),
positions=positions,
orders=[OrderItem.from_trade_detail(row) for row in data.get("orders", [])],
orders=[OrderItem(**row) for row in data.get("orders", [])],
)
def positions(self) -> tuple[list[str], list[PositionItem]]:
data = self._get_json("/api/portfolio/positions") or {}
positions = [
PositionItem.from_dict(value, code)
for code, value in data.get("data", {}).items()
PositionItem(**value)
for value in data.values()
]
return [item.stock_code for item in positions], positions
return list(data), positions
def assets(self) -> Assets:
return Assets.from_dict(self._get_json("/api/portfolio/assets") or {})
return Assets(**(self._get_json("/api/portfolio/assets") or {}))
def orders(self) -> list[OrderItem]:
data = self._get_json("/api/portfolio/order") or []
return [OrderItem.from_trade_detail(row) for row in data]
return [OrderItem(**row) for row in data]
def deals(self) -> list[DealItem]:
data = self._get_json("/api/portfolio/deal") or []
return [DealItem.from_trade_detail(row) for row in data]
return [DealItem(**row) for row in data]
def trade_detail_data(self, datatype: str) -> Any:
datatype = str(datatype).strip().lower()