Load ledger records into `pl.DataFrame` for `disect`-tion
parent
ea270d3396
commit
66d402b80e
|
@ -19,8 +19,11 @@ CLI front end for trades ledger and position tracking management.
|
||||||
|
|
||||||
'''
|
'''
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
from rich.markdown import Markdown
|
from rich.markdown import Markdown
|
||||||
|
import polars as pl
|
||||||
import tractor
|
import tractor
|
||||||
import trio
|
import trio
|
||||||
import typer
|
import typer
|
||||||
|
@ -35,7 +38,7 @@ from ..brokers._daemon import broker_init
|
||||||
from ._ledger import (
|
from ._ledger import (
|
||||||
load_ledger,
|
load_ledger,
|
||||||
# open_trade_ledger,
|
# open_trade_ledger,
|
||||||
TransactionLedger,
|
# TransactionLedger,
|
||||||
)
|
)
|
||||||
from ._pos import (
|
from ._pos import (
|
||||||
PpTable,
|
PpTable,
|
||||||
|
@ -237,7 +240,7 @@ def sync(
|
||||||
def disect(
|
def disect(
|
||||||
# "fully_qualified_account_name"
|
# "fully_qualified_account_name"
|
||||||
fqan: str,
|
fqan: str,
|
||||||
bs_mktid: int, # for ib
|
bs_mktid: str, # for ib
|
||||||
pdb: bool = False,
|
pdb: bool = False,
|
||||||
|
|
||||||
loglevel: str = typer.Option(
|
loglevel: str = typer.Option(
|
||||||
|
@ -251,14 +254,35 @@ def disect(
|
||||||
|
|
||||||
brokername, account = pair
|
brokername, account = pair
|
||||||
|
|
||||||
ledger: TransactionLedger
|
# ledger: TransactionLedger
|
||||||
|
records: dict[str, dict]
|
||||||
table: PpTable
|
table: PpTable
|
||||||
records, table = load_pps_from_ledger(
|
records, table = load_pps_from_ledger(
|
||||||
brokername,
|
brokername,
|
||||||
account,
|
account,
|
||||||
# filter_by_id = {568549458},
|
|
||||||
filter_by_ids={bs_mktid},
|
filter_by_ids={bs_mktid},
|
||||||
)
|
)
|
||||||
|
df = pl.DataFrame(
|
||||||
|
list(records.values()),
|
||||||
|
# schema=[
|
||||||
|
# ('tid', str),
|
||||||
|
# ('fqme', str),
|
||||||
|
# ('dt', str),
|
||||||
|
# ('size', pl.Float64),
|
||||||
|
# ('price', pl.Float64),
|
||||||
|
# ('cost', pl.Float64),
|
||||||
|
# ('expiry', str),
|
||||||
|
# ('bs_mktid', str),
|
||||||
|
# ],
|
||||||
|
).select([
|
||||||
|
pl.col('fqme'),
|
||||||
|
pl.col('dt').str.to_datetime(),
|
||||||
|
# pl.col('expiry').dt.datetime(),
|
||||||
|
pl.col('size'),
|
||||||
|
pl.col('price'),
|
||||||
|
])
|
||||||
|
|
||||||
|
assert not df.is_empty()
|
||||||
breakpoint()
|
breakpoint()
|
||||||
# tractor.pause_from_sync()
|
# tractor.pause_from_sync()
|
||||||
# with open_trade_ledger(
|
# with open_trade_ledger(
|
||||||
|
@ -267,8 +291,3 @@ def disect(
|
||||||
# ) as ledger:
|
# ) as ledger:
|
||||||
# for tid, rec in ledger.items():
|
# for tid, rec in ledger.items():
|
||||||
# bs_mktid: str = rec['bs_mktid']
|
# bs_mktid: str = rec['bs_mktid']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
ledger() # this is called from ``>> ledger <accountname>``
|
|
||||||
|
|
Loading…
Reference in New Issue