Binance USD-M Futures Only

JIM Binance 자동매매 설명서

이 프로젝트는 이제 TradingView webhook 신호를 받아 BTCUSDT 또는 ETHUSDT 포지션에 진입하고, 진입 직후 즉시 Stop Loss를 설정하는 백엔드 전용 구조만 남겨둔 상태입니다.

키움증권, SignalMaker, UI, 다른 증권사 브로커 관련 흐름은 제거되었습니다.

Webhook 기반 Paper 모드 포함 Binance Testnet / Live 전환 즉시 STOP_MARKET 손절

현재 남아있는 기능

  • TradingView webhook 수신
  • Paper 브로커로 가상 테스트
  • Binance USD-M Futures 실주문
  • 진입 직후 자동 Stop Loss
  • 포지션, 계좌, 최근 주문 조회 API
  • Telegram 체결/오류 알림

사용자가 직접 해야 하는 것

  1. Binance API Key / Secret 발급
  2. .env에 키 입력
  3. Testnet 또는 Live 모드로 전환
  4. TradingView Alert에서 webhook 연결

기본 거래 설정

심볼 사이징 레버리지 손절
BTCUSDT 계좌의 8% 리스크 10x 절대 가격 600
ETHUSDT 0.020 기본값 유지 300 ticks

실제 수량, 리스크 비중, 레버리지, 손절폭은 .project/trading_config.yaml에서 바꾸면 다음 신호부터 반영됩니다.

AWS 현재 운영 주소

https://15.134.114.151.sslip.io/webhook/tradingview

헬스체크: curl https://15.134.114.151.sslip.io/health

현재 운영 모드

현재 AWS 서버는 broker_type=binance, binance_use_testnet=true 상태로 동작합니다.

맥 로컬 터미널을 끄거나 맥을 꺼도 AWS EC2가 살아 있으면 계속 동작합니다.

TradingView Webhook 형식

{
  "secret": "goldeneye",
  "action": "buy",
  "symbol": "BTCUSDT"
}

지원 action:

  • buy
  • sell
  • close
  • close_long
  • close_short

Webhook 동작 방식

  1. secret 검증
  2. action / symbol 파싱
  3. .project/trading_config.yaml에서 수량/리스크/레버리지/손절값 로드
  4. BTC는 계좌 잔고 기준으로 수량 자동 계산
  5. 필요하면 심볼 레버리지를 먼저 변경
  6. 시장가 진입
  7. 같은 심볼의 열린 주문 정리
  8. STOP_MARKET으로 전체 포지션 손절 설정

Binance Testnet 전환

BINANCE_API_KEY=여기에_입력
BINANCE_API_SECRET=여기에_입력
bash scripts/ops/aws/remote_switch_mode.sh testnet ubuntu@<server-ip> ~/.ssh/jim-binance.pem

전환 후 헬스체크가 binance_use_testnet=true 이어야 합니다.

Binance Live 전환

bash scripts/ops/aws/remote_switch_mode.sh live ubuntu@<server-ip> ~/.ssh/jim-binance.pem
  • AWS 서버의 .env에 라이브 API Key / Secret 입력
  • 선물 계정 활성화
  • API 키에 선물 주문 권한 부여
  • IP 제한 사용 시 AWS 서버 IP 또는 Elastic IP 등록
  • 거래 수량이 최소 주문 금액을 넘는지 확인
  • 전환 후 curl https://.../health 결과가 binance_use_testnet=false 인지 확인

Elastic IP 붙이는 방법

  1. AWS EC2 콘솔 진입
  2. Network & Security -> Elastic IPs
  3. Allocate Elastic IP address 선택
  4. 새 Elastic IP 선택 후 Actions -> Associate Elastic IP address
  5. 리소스 타입은 Instance, 현재 EC2 인스턴스를 선택
  6. 연결 후 새 IP 기준으로 HTTPS 주소를 다시 발급
bash scripts/ops/aws/setup_public_https.sh ubuntu@<elastic-ip> ~/.ssh/jim-binance.pem <elastic-ip>

Elastic IP는 AWS 공식 문서 기준으로 비용이 부과될 수 있으니 요금 정책을 확인하는 것이 좋습니다.

실제 거래 작동 방법

  1. TradingView alert를 켠 상태로 유지
  2. AWS EC2 인스턴스를 중지하지 않기
  3. 라이브 전환 시 서버의 .env를 라이브 API 키로 교체
  4. remote_switch_mode.sh live 실행
  5. 헬스체크가 binance_use_testnet=false 인지 확인
  6. 첫 실거래는 소액으로 수동 확인

이후에는 TradingView 신호가 오면 AWS 서버가 계속 주문을 처리합니다.

남겨둔 핵심 파일

파일 역할
src/broker/binance.py Binance USD-M Futures 주문 / 포지션 / 계좌 / 손절 처리
src/broker/paper.py 가상 체결 및 paper 테스트
src/webhook/router.py TradingView webhook와 조회 API
src/webhook/parser.py action / symbol 파싱
.project/trading_config.yaml 심볼별 수량, 리스크 비중, 레버리지, 손절 설정
scripts/ops/local/test_webhook.sh paper 또는 연결된 브로커 기준 smoke test
scripts/ops/aws/remote_switch_mode.sh AWS 서버를 testnet / live 로 전환 후 컨테이너 재기동