diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/strat_cash_realloc.py | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/python/strat_cash_realloc.py b/python/strat_cash_realloc.py deleted file mode 100644 index 3727210c..00000000 --- a/python/strat_cash_realloc.py +++ /dev/null @@ -1,58 +0,0 @@ -from dataclasses import replace -from serenitas.ops.funds import Service -from serenitas.ops.trade_dataclasses import WireDeal -import datetime -from serenitas.analytics.dates import prev_business_day -from collateral.common import CASH_STRATEGY_MAPPING, STRATEGY_CASH_MAPPING - - -def generate_csv(date, fund): - service = Service[fund] - with WireDeal._conn.cursor() as c: - c.execute( - "SELECT 1 FROM wires WHERE trade_date=%s AND fund=%s AND author='auto'", - ( - date, - fund, - ), - ) - if c.fetchone(): - return - c.execute( - "SELECT * FROM list_orphaned_cash(%s, %s) WHERE abs(amount) > 1", - ( - date, - fund, - ), - ) - for row in c: - if row.folder not in CASH_STRATEGY_MAPPING: - obj = WireDeal(**row._asdict()) - offset = replace( - obj, folder=STRATEGY_CASH_MAPPING[obj.folder], amount=-obj.amount - ) - obj.stage() - offset.stage() - if not WireDeal._insert_queue: - return - for wire in WireDeal.commit(returning=True): - service.push_trade(wire, "NEW") - buf, dest = service.build_buffer("wire") - service.upload(buf, dest.name) - service().clear() - - -if __name__ == "__main__": - import argparse - - parser = argparse.ArgumentParser() - parser.add_argument( - "workdate", - nargs="?", - type=datetime.date.fromisoformat, - default=prev_business_day(datetime.date.today()), - help="working date", - ) - args = parser.parse_args() - - generate_csv(args.workdate, "BOWDST") |
