Ensure `.fills` are filled in during object construct..
parent
73fa320917
commit
b629ce177d
23
piker/pp.py
23
piker/pp.py
|
@ -158,7 +158,7 @@ def update_pps(
|
||||||
|
|
||||||
# lifo update all pps from records
|
# lifo update all pps from records
|
||||||
for r in records:
|
for r in records:
|
||||||
key = r.symkey or r.fqsn
|
key = r.fqsn or r.symkey
|
||||||
pp = pps.setdefault(
|
pp = pps.setdefault(
|
||||||
key,
|
key,
|
||||||
Position(
|
Position(
|
||||||
|
@ -170,6 +170,10 @@ def update_pps(
|
||||||
avg_price=0.0,
|
avg_price=0.0,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
# don't do updates for ledger records we already have
|
||||||
|
# included in the current pps state.
|
||||||
|
if r.tid in pp.fills:
|
||||||
|
continue
|
||||||
|
|
||||||
# lifo style average price calc
|
# lifo style average price calc
|
||||||
pp.lifo_update(r.size, r.price)
|
pp.lifo_update(r.size, r.price)
|
||||||
|
@ -244,10 +248,17 @@ def update_pps_conf(
|
||||||
|
|
||||||
# load ``pps.toml`` config entries back into object form.
|
# load ``pps.toml`` config entries back into object form.
|
||||||
for fqsn, entry in entries.items():
|
for fqsn, entry in entries.items():
|
||||||
pps[fqsn] = Position(
|
pps[f'{fqsn}.{brokername}'] = Position(
|
||||||
Symbol.from_fqsn(fqsn, info={}),
|
Symbol.from_fqsn(fqsn, info={}),
|
||||||
size=entry['size'],
|
size=entry['size'],
|
||||||
avg_price=entry['avg_price'],
|
avg_price=entry['avg_price'],
|
||||||
|
|
||||||
|
# XXX: super critical, we need to be sure to include
|
||||||
|
# all pps.toml fills to avoid reusing fills that were
|
||||||
|
# already included in the current incremental update
|
||||||
|
# state, since today's records may have already been
|
||||||
|
# processed!
|
||||||
|
fills=entry['fills'],
|
||||||
)
|
)
|
||||||
|
|
||||||
pps = update_pps(
|
pps = update_pps(
|
||||||
|
@ -271,11 +282,13 @@ def update_pps_conf(
|
||||||
config.write(
|
config.write(
|
||||||
conf,
|
conf,
|
||||||
'pps',
|
'pps',
|
||||||
encoder=config.toml.Encoder(preserve=True),
|
# encoder=config.toml.Encoder(preserve=True),
|
||||||
)
|
)
|
||||||
|
|
||||||
from pprint import pprint
|
return active
|
||||||
pprint(conf)
|
|
||||||
|
# from pprint import pprint
|
||||||
|
# pprint(conf)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
Loading…
Reference in New Issue