Files
crypto_monitor/scripts/sync_four_exchange_env.py
T
dekun e6e79215fc chore: add unified four-exchange env sync scripts
sync_four_exchange_env runs position sizing + transfer sync; transfer script preserves existing values and supports --set-amount/--enable-auto-transfer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 09:59:33 +08:00

59 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""
四所 .env 一次性同步:计仓模式 + 自动划转(调用子脚本,不覆盖已有自定义值)。
用法(仓库根目录):
python scripts/sync_four_exchange_env.py
python scripts/sync_four_exchange_env.py --dry-run
python scripts/sync_four_exchange_env.py --set-transfer-amount 50 --enable-auto-transfer
子脚本可单独运行:
python scripts/sync_four_exchange_position_sizing_env.py
python scripts/sync_four_exchange_transfer_env.py
"""
from __future__ import annotations
import argparse
import subprocess
import sys
from pathlib import Path
REPO = Path(__file__).resolve().parent.parent
PY = sys.executable
def _run(script: str, extra: list[str]) -> int:
cmd = [PY, str(REPO / "scripts" / script)] + extra
print(f"\n>>> {' '.join(cmd)}")
return subprocess.call(cmd, cwd=str(REPO))
def main():
ap = argparse.ArgumentParser(description="四所 .env 统一同步(计仓 + 划转)")
ap.add_argument("--dry-run", action="store_true")
ap.add_argument("--set-mode", choices=("risk", "full_margin"), metavar="MODE")
ap.add_argument("--set-transfer-amount", metavar="U")
ap.add_argument("--enable-auto-transfer", action="store_true")
args = ap.parse_args()
dry = ["--dry-run"] if args.dry_run else []
code = 0
ps_args = list(dry)
if args.set_mode:
ps_args.extend(["--set-mode", args.set_mode])
code |= _run("sync_four_exchange_position_sizing_env.py", ps_args)
tr_args = list(dry)
if args.set_transfer_amount:
tr_args.extend(["--set-amount", args.set_transfer_amount])
if args.enable_auto_transfer:
tr_args.append("--enable-auto-transfer")
code |= _run("sync_four_exchange_transfer_env.py", tr_args)
sys.exit(code)
if __name__ == "__main__":
main()