import asyncio
import websockets
import json
import pprint
async def BTC_Kline_Stream():
symbol = 'btcusdt'
interval = '1m' # 1m, 3m, 5m, 15m, 1h, 4h, 1d 등..
uri = f'wss://fstream.binance.com/ws/{symbol}@kline_{interval}'
async with websockets.connect(uri) as websocket:
try:
while True:
data = json.loads(await websocket.recv())
pprint.pprint(data)
except asyncio.CancelledError:
print("BTC_Kline_Stream 작업이 취소되었습니다.")
except Exception as e:
print(f"BTC_Kline_Stream 예외가 발생했습니다: {e}")
finally:
print("BTC_Kline_Stream 웹소켓 연결을 종료합니다.")
await websocket.close()
async def main():
tasks = [
asyncio.ensure_future(BTC_Kline_Stream())
]
try:
await asyncio.gather(*tasks)
except asyncio.CancelledError:
print("메인 작업이 취소되었습니다.")
for task in tasks:
task.cancel()
await asyncio.gather(*tasks, return_exceptions=True)
except Exception as e:
print(f"메인 함수에서 예외가 발생했습니다: {e}")
finally:
print("메인 함수의 작업이 종료되었습니다.")
if __name__ == '__main__':
try:
asyncio.run(main())
except KeyboardInterrupt:
print("프로그램을 종료합니다.")
Kline/Candlestick Streams – Binance API Documentation (binance-docs.github.io)
다른 코인으로 변경하고 싶다면 symbol의 값을 변경하면 됩니다.
symbol = 'ETHUSDT'
시간 단위를 번경하고 싶다면 interval의 값을 변경하면 됩니다.
interval = '5m'
아래는 제공되는 차트 시간 단위입니다.
- 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M
출력 결과.
{"e":"kline", // Event type
"E":1687036073589, // Event time
"s":"ETHUSDT", // 종목 이름
"k":{"t":1687036020000, // 캔들 시작 시간
"T":1687036079999, // 캔들 종료 시간
"i":"1m", // 시간 단위
"f":3069546730, // 첫 주문 ID
"L":3069547216, // 마지막 주문 ID
"o":"1728.41", // 시가
"c":"1728.51", // 종가
"h":"1728.60", // 고가
"l":"1728.40", // 저가
"v":"355.977", // 거래량
"n":487, // 거래 횟수
"x":false, // Is this kline closed?, 공식 설명이 이렇게 써있는데 뭔지 모름
"q":"615314.70568", // 거래대금
"V":"175.262", // Taker의 Buy 수량
"Q":"302934.55984", // Taker의 Buy 거래대금
"B":"0" // Ignore
}
}
가격에 대한 정보는 역시 문자열로 받게 됩니다.
사용할 땐 float으로 형변환 해야 합니다.
'파이썬 > 바이낸스 선물 웹소켓' 카테고리의 다른 글
[선물 WS] 1분, 20분 상승 순위 실시간 출력하기 (0) | 2024.12.08 |
---|---|
[선물 WS] 실시간 체결 확인하기 (0) | 2024.12.01 |
[선물 WS] 호가창 일부분 실시간 (0) | 2024.12.01 |
[선물 WS] 전체 시장 청산 주문 금액 1분마다 확인하기 (0) | 2024.11.24 |
[선물 WS] 주문 체결, 지갑 정보 전달받기 (User Data Stream) (0) | 2023.06.12 |