수동 거래 입력 시스템 – 사용자 가이드

개요

수동 거래 진입(Manual Trade Entry) 시스템은 봇이 일반적인 신호 생성을 기다리지 않고, 사용자가 직접 거래 기회를 입력하면 봇이 이를 자동으로 모니터링하고 실행할 수 있게 해줍니다. 수동으로 시장을 분석하다가 좋은 기회를 발견했을 때 봇이 놓치지 않도록 하는 데 이상적입니다.

작동 방식

🔄 자동 핫 리로드

  • 봇이 실행 중인 상태에서 settings/manual_trade_symbols.yaml 파일에 진입 항목 추가
  • 변경 사항은 자동으로 30초 이내(다음 처리 사이클)에 반영됨
  • 재시작 불필요!

🎯 거래 실행 흐름

  1. 사용자가 YAML 파일에 거래 진입 추가
  2. 봇이 다음 사이클(≤ 30초)에서 새 항목 감지
  3. 봇이 검증:
    • 심볼이 봇의 거래 목록에 존재하는지
    • 해당 심볼에 진행 중인 주문이 없는지
    • 가격 조건 충족 여부(임계값 설정 시)
  4. 봇이 거래를 자동 실행
  5. 성공 시 항목 제거 (중복 방지)

설정 파일 위치

settings/manual_trade_symbols.yaml

필드 설명

Symbol (필수)

  • 거래소별 형식의 거래 쌍
  • 예시: BTCUSDT, ETHUSDT, 1000PEPEUSDT
  • 봇의 심볼 목록에 정확히 일치해야 함

Price (필수)

  • 0 = 현재 시장 가격을 봇이 가져와 사용 (권장)
  • > 0 = 지정한 특정 가격을 진입 기준으로 사용
  • 0 설정 시 봇은:
    • 현재 시장 가격 조회
    • YAML 파일의 해당 필드 업데이트
    • 이후 사이클에서 임계값 계산에 사용

Direction (필수)

  • Long = 매수 / 롱 포지션
  • Short = 매도 / 숏 포지션

Amount (필수)

  • 0 = 봇의 기본 포지션 사이징 사용
  • > 0 = 지정한 금액(quote 통화 기준)으로 강제 지정
  • 예시:
    • 1000.0 = $1000 포지션
    • 2500.5 = $2500.50 포지션

ExecuteThresholdPerfect (필수)

  • 0 = 즉시 실행 (가격 변동 불필요)
  • > 0 = 가격이 이 비율만큼 움직일 때까지 대기 후 실행
  • 롱 포지션: 가격이 이 %만큼 하락할 때까지 대기
  • 숏 포지션: 가격이 이 %만큼 상승할 때까지 대기

Timestamp (선택)

  • null 사용 또는 필드 자체 생략
  • 봇이 처리 시 자동으로 현재 시간 설정
  • 향후 만료 검증 등에 활용 가능

사용 예시

예시 1: 즉시 진입 (지금 기회 포착)

Trades:
 - Symbol: 'BTCUSDT'
 Price: 0 # 현재 가격 사용
 Direction: Long # 롱 진입
 Amount: 0 # 기본 사이징 사용
 ExecuteThresholdPerfect: 0 # 즉시 실행
 Timestamp: null

사용 사례: BTC가 돌파하는 모습을 보고 지금 바로 진입하고 싶을 때.


예시 2: 딥 매수 (5% 풀백 전략)

Trades:
 - Symbol: 'ETHUSDT'
 Price: 0 # 봇이 현재 가격 가져옴 (예: $3000)
 Direction: Long
 Amount: 1000 # $1000 포지션
 ExecuteThresholdPerfect: 5 # 5% 하락 대기 (약 $2850에서 실행)
 Timestamp: null

사용 사례: ETH가 강해보이지만 약간 과매수 상태. 5% 조정 시 매수하고 싶을 때.


예시 3: 공격적인 딥 매수 (10% 되돌림)

Trades:
 - Symbol: '1000PEPEUSDT'
 Price: 0
 Direction: Long
 Amount: 2000 # $2000 포지션
 ExecuteThresholdPerfect: 10 # 10% 하락 대기
 Timestamp: null

사용 사례: PEPE가 강하게 펌핑 중. 큰 조정 시 추가 매수(누적)하고 싶을 때.


예시 4: 펌핑 숏 (3% 상승 대기)

Trades:
 - Symbol: 'SOLUSDT'
 Price: 0 # 봇이 현재 가격 가져옴 (예: $100)
 Direction: Short # 숏 포지션
 Amount: 1500
 ExecuteThresholdPerfect: 3 # 3% 상승 시 실행 (약 $103)
 Timestamp: null

사용 사례: SOL이 과매수 상태. 추가 3% 펌핑 후 숏 진입하고 싶을 때.


예시 5: 여러 레벨 분할 진입

Trades:
  # 즉시 진입
 - Symbol: 'BTCUSDT'
 Price: 0
 Direction: Long
 Amount: 500
 ExecuteThresholdPerfect: 0 # 지금 진입
 Timestamp: null
  # 5% 하락 시 추가
 - Symbol: 'BTCUSDT'
 Price: 0
 Direction: Long
 Amount: 1000
 ExecuteThresholdPerfect: 5 # 5% 조정 시 포지션 추가
 Timestamp: null
  # 10% 하락 시 더 추가
 - Symbol: 'BTCUSDT'
 Price: 0
 Direction: Long
 Amount: 1500
 ExecuteThresholdPerfect: 10 # 10% 조정 시 대량 매수
 Timestamp: null

사용 사례: BTC를 여러 가격대에서 분할 매수(DCA) 전략.


중요 참고 사항

해야 할 일

  • ✅ YAML 파일 형식 유지 (올바른 들여쓰기, 문법 오류 없음)
  • ✅ Timestamp는 null 사용 (None 금지)
  • ✅ Direction은 Long 또는 Short 사용 (0/1 금지)
  • ✅ 심볼 이름이 거래소 형식과 정확히 일치하는지 확인
  • ✅ 추가 후 최소 30초 기다려 봇이 인식하도록 함

하지 말아야 할 일

  • ❌ Timestamp에 None 사용 금지 (null 또는 생략)
  • ❌ Direction에 0 또는 1 사용 금지
  • ❌ 봇이 모니터링하지 않는 심볼 추가 금지
  • ❌ 봇이 파일 저장 중에 편집 금지 (드문 race condition 위험)

🔒 안전 기능

  • 중복 실행 방지: 실행 후 항목 자동 삭제
  • 충돌 방지: 진행 중인 주문 있으면 실행 안 함
  • 가격 검증: 0 설정 시 자동으로 현재 가격 가져와 업데이트
  • 타임스탬프 추적: 각 진입 생성 시각 기록

📊 모니터링

로그에서 처리 내역 확인 가능:

  • logs/orders.YYYY-MM-DD.log — 모든 거래 실행 기록 (JSON)
  • logs/trade_summary.YYYY-MM-DD.log — 요약 정보
  • logs/debug.YYYY-MM-DD.log — 상세 로그 (디버그 모드 시)

작업 흐름 예시

단계 1: 차트 분석 중 ETHUSDT가 저항 돌파하는 모습 발견

# manual_trade_symbols.yaml에 추가
Trades:
 - Symbol: 'ETHUSDT'
 Price: 0
 Direction: Long
 Amount: 1000
 ExecuteThresholdPerfect: 0
 Timestamp: null

단계 2: 파일 저장 (봇은 계속 실행 중)

단계 3: 30초 이내 봇이 수행:

  • 파일 로드
  • 현재 ETH 가격 조회 (예: $3000)
  • YAML의 Price 필드 3000으로 업데이트
  • Timestamp 현재 시간으로 설정
  • ETHUSDT에 진행 중 주문 없는지 확인
  • 거래 실행
  • YAML에서 해당 항목 삭제

단계 4: 로그 확인하여 실행 완료 확인

✅ ETHUSDT 거래 성공적으로 실행됨
💾 수동 거래 설정 업데이트 및 저장 완료 (실행된 항목 제거)

프로 팁

💡 변동성 큰 시장: 더 높은 임계값(10~20%) 사용하여 좋은 진입점 노려보기

💡 즉시 기회: ExecuteThresholdPerfect: 0 + Amount: 0으로 빠른 진입 + 표준 사이징

💡 스케일 인(추가 매수): 동일 심볼에 임계값 점차 높여 여러 진입 추가

💡 리스크 관리: 0 대신 구체적 금액 지정하여 포지션 크기 정밀 제어

💡 다중 심볼 관리: 비슷한 전략끼리 YAML에서 그룹화하여 관리 편리하게


기억하세요: 이 시스템은 수동 분석을 보조하는 도구이지 대체하는 것이 아닙니다. 봇의 일반 신호 사이클에서 놓칠 수 있는 기회를 포착하는 데 현명하게 활용하세요! 🚀

📎 Related Topics