사용자 가이드 — 글로벌 레버리지 구성 및 관리

개요

이 가이드는 tradesettings.yaml일반 설정에서 레버리지 구성 옵션을 사용하여 거래소의 모든 거래 심볼에 대한 레버리지를 관리하는 방법을 설명합니다.


1. SetLeverageStartup

SetLeverageStartup: false

목적: 봇이 시작될 때 정의된 레버리지를 모든 거래 심볼에 적용합니다.

활성화 시점 (true)

  • 최초 설정: 모든 심볼에 대해 레버리지를 처음 설정해야 할 때
  • 레버리지 설정 변경 후: 원하는 레버리지를 수정했을 때
  • 새로운 심볼 추가 후: 거래소에 새로운 거래 쌍이 추가되었을 때

비활성화 시점 (false)

  • 레버리지 업데이트 성공 후: 불필요한 API 호출을 피하기 위해
  • 정상 운영: 매번 재시작 시 레버리지를 재설정하는 것을 방지하기 위해
  • 레버리지가 이미 구성된 경우: 모든 심볼이 올바른 레버리지를 가지고 있을 때

⚠️ 중요 참고사항

  • 레버리지가 성공적으로 업데이트된 후 항상 false로 설정하여 다음을 방지하세요:
    • 매 초기화 시 불필요한 API 호출
    • 거래소의 잠재적 속도 제한
    • 느린 시작 시간
# 1단계: 레버리지 업데이트를 위해 활성화
SetLeverageStartup: true

# 2단계: 봇 시작 (레버리지가 적용됨)
# 3단계: 봇 중지

# 4단계: 다음 시작 전 비활성화
SetLeverageStartup: false

워크플로 예시

1. 설정에서 원하는 레버리지 설정 (예: 10x)
2. SetLeverageStartup: true 활성화
3. 봇 시작 → 모든 심볼에 레버리지 적용
4. 봇 중지
5. SetLeverageStartup: false 비활성화
6. 정상 거래를 위해 봇 재시작

2. SetMaxLeverage

SetMaxLeverage: false

목적: 구성된 레버리지 값 대신 각 심볼에 대해 거래소에서 허용하는 최대 레버리지를 자동으로 사용합니다.

작동 방식

false일 때 (기본값):

  • 모든 심볼에 대해 구성된 레버리지 값을 사용
  • 지원되지 않을 경우 API 호출이 실패할 수 있음

true일 때:

  • 각 심볼에 대해 지원되는 최대 레버리지를 가져옴
  • 구성된 값과 거래소 최대값 중 더 낮은 값을 사용

예시 시나리오

# 시나리오 1: 심볼이 당신의 레버리지를 지원
당신의 설정: 20x
심볼 최대:   50x
결과:       20x

# 시나리오 2: 심볼의 최대 레버리지가 더 낮음
당신의 설정: 20x
심볼 최대:   5x
결과:       5x
봇 출력:    "ℹ️ XYZUSDT 최대 레버리지는 5x, 20x 대신 5x 사용"

# 시나리오 3: 심볼의 최대 레버리지가 더 높음
당신의 설정: 10x
심볼 최대:   125x
결과:       10x

활성화 시점 (true)

  • ✅ 레버리지 관련 오류를 피하기 위한 안전한 접근
  • ✅ 다양한 레버리지 제한이 있는 혼합 심볼 유형
  • ✅ 제한에 자동 조정하는 보수적인 거래
  • ✅ 서로 다른 규칙을 가진 다중 거래소 봇

비활성화 시점 (false)

  • ✅ 모든 심볼에서 균일한 레버리지 지원
  • ✅ 전략이 정확한 레버리지 값을 요구할 때
  • ✅ 성능 최적화 (API 호출 감소)

symbols.json과의 통합

레버리지 업데이트 흐름

1. 봇이 tradesettings.yaml에서 레버리지를 읽음
2. SetMaxLeverage: true일 경우 → 최대 레버리지를 가져옴
3. 최종 레버리지를 계산 (구성된 값과 최대값 중 최소값)
4. 거래소 API를 통해 레버리지 적용
5. ✅ 실제 적용된 레버리지로 symbols.json 업데이트
6. 봇은 거래를 위해 symbols.json의 레버리지를 사용

symbols.json 업데이트가 중요한 이유

  • 거래소와의 일관성을 보장
  • 재시작 간 지속
  • 실제로 사용된 레버리지의 가시적 추적

⚠️ 중요: 동기화 타이밍

# ❌ 잘못된 방식
SetLeverageStartup: true
SetMaxLeverage: true

# ✅ 올바른 방식 (일회성 업데이트)
SetLeverageStartup: true
SetMaxLeverage: true
# 성공 후:
SetLeverageStartup: false
SetMaxLeverage: false

권장 구성 워크플로

초기 설정 (신규 봇)

# tradesettings.yaml
Leverage: 10
SetLeverageStartup: true
SetMaxLeverage: true
  1. 위 설정 구성
  2. 봇 시작 → 레버리지 적용 및 symbols.json 업데이트
  3. 봇 중지
  4. 두 설정 모두 비활성화
  5. 정상 운영을 위해 재시작

레버리지 값 변경

# tradesettings.yaml
Leverage: 15
SetLeverageStartup: true
SetMaxLeverage: true
  1. 레버리지 값 업데이트
  2. SetLeverageStartup 활성화
  3. 봇 시작 → 새로운 레버리지 적용
  4. 봇 중지
  5. 다음 시작 전 다시 비활성화

정상 운영 (권장)

# tradesettings.yaml
Leverage: 10
SetLeverageStartup: false
SetMaxLeverage: false

봇은 이미 구성되고 업데이트된 symbols.json에서 레버리지를 읽습니다.

새로운 심볼 추가

# tradesettings.yaml
Leverage: 10
SetLeverageStartup: true
SetMaxLeverage: true
  1. 거래소에 새로운 심볼 추가
  2. SetLeverageStartup 활성화
  3. 봇 시작 → 모든 심볼에 레버리지 적용
  4. 봇 중지
  5. 정상 거래 전 비활성화

문제 해결

  • 문제: 봇이 레버리지를 계속 재설정
    원인: SetLeverageStartup: true가 활성화된 상태로 유지됨
    해결책: 초기 설정 후 false로 설정
  • 문제: 레버리지가 적용되지 않음
    원인: 업데이트 중 SetLeverageStartup: false
    해결책: 일시적으로 활성화하고 재시작
  • 문제: 레버리지 제한에 대한 API 오류
    원인: 구성된 레버리지가 거래소 최대값을 초과
    해결책: SetMaxLeverage: true 활성화
  • 문제: symbols.json 불일치
    원인: 수동 변경 또는 동기화 문제
    해결책: SetLeverageStartup: true를 한 번 활성화하여 재동기화

모범 사례

✅ 해야 할 것

  • 업데이트 성공 후 SetLeverageStartup: false 설정
  • 최초 설정 시 SetMaxLeverage: true 사용
  • symbols.json에서 레버리지 값 확인
  • 변경 전 백업 유지
  • 모든 심볼에 적용하기 전에 한 심볼에서 테스트

❌ 하지 말아야 할 것

  • 정상 운영 중 SetLeverageStartup: true 유지
  • SetLeverageStartup 활성화 없이 레버리지 변경
  • symbols.json을 수동으로 편집
  • 두 설정을 반복적으로 활성화 (API 부담 초래)

빠른 참조 표

시나리오 SetLeverageStartup SetMaxLeverage 사용 시점
초기 설정 true true 봇을 처음 실행할 때
정상 거래 false false 일상적인 운영
레버리지 변경 true true 레버리지 값 수정 후
새로운 심볼 추가 true true 거래소에 새로운 쌍 추가
보수적 모드 false true 거래소 제한에 자동 조정
성능 모드 false false API 호출 최소화

지원

  1. 봇 로그에서 오류 확인
  2. 거래소 API 권한이 레버리지 수정 권한을 포함하는지 확인
  3. 모든 심볼이 거래소에 존재하는지 확인
  4. symbols.json에서 올바른 레버리지 확인
  5. 거래소별 레버리지 제한 검토

📎 Related Topics