aboutsummaryrefslogtreecommitdiffstats
path: root/python/strat_cash_realloc.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/strat_cash_realloc.py')
-rw-r--r--python/strat_cash_realloc.py57
1 files changed, 0 insertions, 57 deletions
diff --git a/python/strat_cash_realloc.py b/python/strat_cash_realloc.py
deleted file mode 100644
index 0bfafce0..00000000
--- a/python/strat_cash_realloc.py
+++ /dev/null
@@ -1,57 +0,0 @@
-from dataclasses import replace
-from serenitas.ops.funds import Bowdst
-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="BOWDST"):
- 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):
- Bowdst.staging_queue.append(wire.to_globeop("NEW"))
- buf, dest = Bowdst.build_buffer("wire")
- Bowdst.upload(buf, dest.name)
- Bowdst().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)