반응형
이 코드는 텔레그램-바이낸스 선물 봇으로, 바이낸스 선물 거래소의 포지션, 거래량 급증, 실현 PNL, 솔라나 블록체인 에폭 등을 모니터링하고 텔레그램을 통해 알림을 보내는 봇입니다. 아래는 이 봇을 설정하고 사용하는 방법에 대한 설명입니다.
1. 봇 사용 준비
봇을 실행하기 위해 다음 단계를 따라야 합니다.
1.1. 필수 환경 설정
- 환경 변수 설정 (.env 파일 생성):
- 프로젝트 디렉토리에
.env
파일을 생성합니다. - 아래와 같이 필수 환경 변수를 입력합니다:
TELEGRAM_TOKEN=your_telegram_bot_token TELEGRAM_USER_ID=your_telegram_user_id BINANCE_API_KEY=your_binance_api_key BINANCE_API_SECRET=your_binance_api_secret
TELEGRAM_TOKEN
: 텔레그램 BotFather에서 발급받은 봇 토큰.TELEGRAM_USER_ID
: 텔레그램에서 사용자의 고유 ID (숫자 형식).BINANCE_API_KEY
및BINANCE_API_SECRET
: 바이낸스 선물 계정의 API 키와 시크릿 키.
- 프로젝트 디렉토리에
- 필요한 Python 패키지 설치:
- 아래 명령어를 사용하여 필요한 라이브러리를 설치합니다:
pip install python-telegram-bot python-dotenv requests websockets tenacity pytz
- 설치해야 할 패키지:
python-telegram-bot
: 텔레그램 API와 통신.python-dotenv
: 환경 변수 로드.requests
: HTTP 요청.websockets
: 바이낸스 웹소켓 연결.tenacity
: API 재시도 로직.pytz
: 시간대 변환.
- 아래 명령어를 사용하여 필요한 라이브러리를 설치합니다:
- 설정 파일 (config.json):
- 봇 실행 시
config.json
파일이 자동으로 생성됩니다. 이 파일에는 거래량 급증 알림 배수 설정이 저장됩니다. - 기본적으로
BTCUSDT
와ETHUSDT
에 대해 2.0배로 설정됩니다. - 예시
config.json
:{ "VOLUME_SPIKE_MULTIPLIERS": { "BTCUSDT": 2.0, "ETHUSDT": 2.0 } }
- 봇 실행 시
1.2. 봇 실행
bot.py
파일을 프로젝트 디렉토리에 저장합니다.- 터미널에서 다음 명령어를 실행하여 봇을 시작합니다:
python bot.py
- 봇이 성공적으로 시작되면 텔레그램으로 "🤖 봇이 시작되었습니다!" 메시지를 받습니다.
2. 봇 사용 방법
봇은 텔레그램에서 명령어를 통해 상호작용합니다. 아래는 사용 가능한 명령어와 사용법입니다.
2.1. 명령어 목록
봇은 다음과 같은 명령어를 지원합니다. 텔레그램 채팅에서 명령어를 입력하면 됩니다.
/start
:- 봇을 시작하고 환영 메시지를 표시합니다.
- 예:
/start
- 응답: "안녕하세요! /help 를 입력하여 사용 가능한 명령어를 확인하세요."
/help
:- 사용 가능한 명령어 목록과 설명을 표시합니다.
- 예:
/help
- 응답: 사용 가능한 명령어 목록.
/status
:- 봇의 현재 상태를 확인합니다. 마지막 API 호출 시간, 모니터링 중인 포지션 수, 거래량 급증 설정, 잔고 등을 포함합니다.
- 예:
/status
- 응답:
*봇 상태 보고서* 마지막 API 호출 성공 시간: 솔라나 에폭: 2025-09-03 15:00:00 포지션: 2025-09-03 15:00:00 거래량 급증: 없음 UPNL 알림: 없음 모니터링 중인 포지션 수: 1 BTCUSDT: LONG 0.1000 거래량 급증 알림 배수: BTCUSDT: 2.0x ETHUSDT: 2.0x 잔고 USDⓈ(PNL 계산용): 1000.0000 2025-09-03 15:24:00 KST
/epoch
:- 솔라나 블록체인의 현재 에폭 정보(진행률, 남은 시간 등)를 표시합니다.
- 예:
/epoch
- 응답:
*솔라나 현재 에폭: 123* 진행률: 50.00% (500000/1000000 슬롯) 다음 에폭까지 남은 시간: *2 days, 3:45:12*
/volume
:- 거래량 급증 알림 배수를 설정하거나 현재 설정을 확인합니다.
- 사용법:
- 현재 설정 확인:
/volume
- 배수 설정:
/volume [심볼] [배수]
- 현재 설정 확인:
- 예:
/volume
: 현재 설정된 거래량 급증 배수를 표시.*거래량 급증 알림 배수* 🚀 *BTCUSDT*: 2.0x *ETHUSDT*: 2.0x 사용법: `/volume [심볼] [배수]` (예시: `/volume BTCUSDT 3.5`)
/volume BTCUSDT 3.5
: BTCUSDT의 거래량 급증 배수를 3.5배로 설정.*거래량 급증 알림 배수* 🚀 *BTCUSDT*의 배수가 *3.5x*로 설정되었습니다.
/positions
:- 현재 바이낸스 선물 포지션과 지갑 잔고를 표시합니다.
- 예:
/positions
- 응답:
*USDⓈ-M 선물 지갑 잔고* UPNL: +10.0000 (+1.00%) 증거금: 1010.0000 USDⓈ: 1000.0000 *USDⓈ-M 선물 현재 포지션* ─ *BTCUSDT* (롱(LONG) 10x) 사이즈: 0.1000 진입가: 50000.0000 현재가: 51000.0000 PNL(ROI%): +100.0000 (+2.00%) 청산가: 45000.0000
/pnl
:- 특정 기간의 실현 PNL(손익)을 계산하여 표시합니다.
- 사용법:
/pnl
: 최근 24시간의 PNL./pnl 7d
: 최근 7일의 PNL./pnl 1m
: 최근 1개월의 PNL./pnl 240101
: 2024년 1월 1일의 PNL./pnl 240101 240107
: 2024년 1월 1일부터 7일까지의 PNL./pnl BTCUSDT
: BTCUSDT의 최근 24시간 PNL./pnl 7d BTCUSDT
: BTCUSDT의 최근 7일 PNL./pnl 240101 240107 BTCUSDT
: BTCUSDT의 2024년 1월 1일부터 7일까지의 PNL.
- 예:
/pnl 7d BTCUSDT
- 응답:
🐋 *최근 7d (BTCUSDT) 실현 PNL 보고서* ─ 기간: 25/08/27 15:24 ~ 25/09/03 15:24 총 실현 PNL: +50.00 USDⓈ 청산 포지션: 5회 거래당 평균 PNL: +10.00 USDⓈ
- 응답:
2.2. 자동 알림 기능
봇은 다음 상황에서 자동으로 텔레그램 알림을 보냅니다:
- 포지션 변경:
- 새로운 포지션 진입, 포지션 청산, 포지션 크기 변경 시 알림.
- 예: "🛫 신규 포지션: BTCUSDT (롱(LONG)) - 사이즈: 0.1000"
- 미실현 손익(UPNL) 변동:
- UPNL이 잔고의 1% 이상 변동 시 알림(1시간 쿨다운 적용).
- 예: "🐳 UPNL 알림! 현재 UPNL: +10.0000 USDⓈ (+1.00%)"
- 거래량 급증:
- 설정된 배수(예: 2.0x)를 초과하는 거래량 급증 감지 시 알림(10분 쿨다운 적용).
- 예: "🔥 BTCUSDT 거래량 급증! 현재 5분 거래량: 1,000,000 USDⓈ"
- 주기적 포지션 보고:
- 1시간마다 열린 포지션이 있을 경우 현재 포지션 상태를 보고.
- API 오류:
- API 호출 실패 시 경고 메시지 전송.
- 예: "🚨 API 오류 알림! 포지션 보고서 생성 실패"
3. 추가 주의사항
- 시간대: 모든 시간은 KST(한국 표준시)로 표시됩니다.
- 쿨다운: 거래량 급증(10분)과 UPNL(1시간) 알림에는 쿨다운 기간이 적용되어 과도한 알림을 방지합니다.
- 유효한 심볼:
/volume
또는/pnl
명령어에서 사용하는 심볼은 바이낸스 선물 거래소에서 지원하는 심볼이어야 합니다(예:BTCUSDT
,ETHUSDT
). - 오류 처리: API 호출 실패 시 봇은 자동으로 재시도하며, 실패가 지속되면 텔레그램으로 경고 메시지를 보냅니다.
- 종료: 봇을 종료하려면 실행 중인 프로세스를 종료(Ctrl+C)하면 됩니다. 종료 시 모든 백그라운드 태스크가 안전하게 정리됩니다.
4. 예시 시나리오
- 봇 시작:
.env
파일을 설정하고python bot.py
를 실행.- 텔레그램에서 "/start" 입력 후 "/help"로 명령어 확인.
- 포지션 확인:
- "/positions"를 입력하여 현재 포지션과 잔고 확인.
- 거래량 급증 알림 설정:
- "/volume BTCUSDT 3.0"를 입력하여 BTCUSDT의 거래량 급증 임계값을 3배로 설정.
- PNL 확인:
- "/pnl 7d"를 입력하여 최근 7일간의 실현 PNL 확인.
- 솔라나 에폭 확인:
- "/epoch"를 입력하여 솔라나 블록체인 에폭 정보 확인.
5. 문제 해결
- 봇이 응답하지 않음:
.env
파일의TELEGRAM_TOKEN
과TELEGRAM_USER_ID
가 올바른지 확인.- 로그(
bot.py
실행 시 콘솔 출력)를 확인하여 오류 메시지 점검.
- API 오류:
- 바이낸스 API 키와 시크릿이 올바른지, 선물 계정에 접근 권한이 있는지 확인.
- 네트워크 연결 상태 확인.
- 잘못된 심볼 입력:
/volume
또는/pnl
명령어에서 올바른 바이낸스 선물 심볼을 사용했는지 확인(예:BTCUSDT
).
- 설정 변경 안 됨:
config.json
파일이 쓰기 가능한지 확인(파일 권한 문제).
이 설명을 통해 봇을 쉽게 설정하고 사용할 수 있습니다.추가 질문이 있으면 AI에게 언제든지 물어보세요! 😊
반응형
'잡스런 기쁨' 카테고리의 다른 글
AI 동반자: 영화 Her(2013)와 비극적 현실의 교훈 (0) | 2025.04.22 |
---|---|
한국 주식 vs 미국 주식: 왜 미국 주식에 투자하는가? (0) | 2025.04.16 |
저스틴 선, FDUSD에 왜 칼을 갈고 있냐고? 스테이블코인 전쟁의 숨은 이야기! (1) | 2025.04.11 |
세뇨리지에서 스테이블코인, 트럼프의 음모까지: 돈 찍는 마법의 진화 (0) | 2025.04.01 |
두바이 부동산 투자 담보대출 가능 여부와 조건 완벽 정리 (0) | 2025.03.25 |