Files
upbit-trader/main.py
joungmin a287e48522 fix: restore positions on restart and fix notify env loading
- restore_positions(): read Upbit balances on startup to prevent
  double-buying after restart
- notify.py: read TOKEN/CHAT_ID inside _send() to avoid empty values
  when module is imported before load_dotenv()

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 10:36:17 +09:00

40 lines
902 B
Python

"""Upbit 자동 트레이딩 봇 진입점."""
import logging
import threading
from dotenv import load_dotenv
load_dotenv()
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
handlers=[
logging.StreamHandler(),
logging.FileHandler("trading.log", encoding="utf-8"),
],
)
from core.monitor import run_monitor
from core.trader import restore_positions
from daemon.runner import run_scanner
def main() -> None:
# 재시작 시 기존 잔고 복원 (이중 매수 방지)
restore_positions()
# 트레일링 스탑 감시 스레드 (10초 주기)
monitor_thread = threading.Thread(
target=run_monitor, args=(10,), daemon=True, name="monitor"
)
monitor_thread.start()
# 매수 스캔 루프 (60초 주기, 메인 스레드)
run_scanner()
if __name__ == "__main__":
main()