Initial public release
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import asyncio
|
||||
import typer
|
||||
import httpx
|
||||
from hydra.config.settings import get_settings
|
||||
|
||||
app = typer.Typer(help="Kill Switch - 전 포지션 즉시 청산")
|
||||
|
||||
|
||||
@app.callback(invoke_without_command=True)
|
||||
def kill(reason: str = typer.Option("cli_manual", help="청산 사유")):
|
||||
"""전 포지션 즉시 시장가 청산."""
|
||||
confirm = typer.confirm("[주의] 전 포지션을 청산합니다. 계속하시겠습니까?")
|
||||
if not confirm:
|
||||
typer.echo("취소됨.")
|
||||
raise typer.Exit()
|
||||
|
||||
settings = get_settings()
|
||||
try:
|
||||
resp = httpx.post(
|
||||
"http://127.0.0.1:8000/killswitch",
|
||||
params={"reason": reason},
|
||||
headers={"X-HYDRA-KEY": settings.hydra_api_key},
|
||||
timeout=30,
|
||||
)
|
||||
resp.raise_for_status()
|
||||
data = resp.json()
|
||||
typer.echo(f"[완료] Kill Switch 실행. 청산: {len(data.get('closed', []))}개")
|
||||
except httpx.ConnectError:
|
||||
typer.echo("[오류] HYDRA 서버에 연결할 수 없습니다. 서버가 실행 중인지 확인하세요.")
|
||||
raise typer.Exit(1)
|
||||
Reference in New Issue
Block a user