ai로 자동매매를 구현하고 있습니다.

처음에는 수익이 엄청 좋았는데 알고 보니 로컬 디비에 강제로 수익 손절을 적어 놓았드라구요.

그래서 그걸 알고 서버기준으로 바꾸어서 다시 테스트 중인데요.

좋은 방법이 있을까요 ?

2개의 답변이 있어요!

  • 안녕하세요. 김민석 정보처리기사입니다.

    실제 거래소 서버의 체결 내역(Order/Fill)과 잔고 API를 단일 진실 공급원(Single Source of Truth)으로 삼아 동기화하는 구조로 전환해야 합니다. 로컬 상태는 보조 캐시로만 쓰고, 실제 체결 여부와 체결가는 항상 서버 응답을 기준으로 처리해야 왜곡이 사라집니다.

    ​안정적인 자동매매 서버 연동을 위한 핵심 개선 방식은 다음과 같습니다.

    ​WebSocket 체결 스트림 수신: REST API 폴링(Polling) 방식은 지연(Latency)이 발생하므로, 거래소의 개인 웹소켓 채널(User Data Stream)을 구독해 주문 체결(Fill), 취소, 정산 이벤트를 실시간으로 수신합니다.

    ​로컬 상태의 수동적 동기화: 로컬 DB는 주문 '요청' 상태만 기록하고, 거래소 서버로부터 체결 확인 웹소켓 메시지(또는 주문 조회 API 응답)를 받았을 때만 실제 포지션 오픈/수익/손절을 확정 갱신합니다.

    채택된 답변
  • 안녕하세요.

    서버 기반 AI 자동매매는 먼저 서버에서 거래소의 실시간 가격과 거래량 등의 데이터를 수집하고, 이를 DB에 저장합니다. 이후 AI가 과거 데이터와 현재 시장 상황을 분석해 매수·매도·관망 신호를 판단하고, 전략 엔진이 해당 신호를 검증합니다. 신호가 조건을 충족하면 리스크 관리 시스템에서 투자금과 포지션 규모, 손절 기준 등을 확인한 뒤 거래소 API를 통해 실제 주문을 실행합니다. 주문 결과와 수익률은 다시 서버에 저장하고, 이상 상황이나 손실 발생 시 알림을 보내도록 구성합니다. 처음에는 과거 데이터로 백테스트를 진행한 뒤 모의매매를 거쳐 소액으로 실거래를 시작하고, 성과가 검증되면 서버에서 24시간 자동으로 운영하는 흐름이 가장 현실적입니다.