✨ 오늘은 바이낸스 서버와 끊임 없이 통신하게 해주는 쓰레드(Thread) 클래스를 만들어 보겠습니다!
📌쓰레드 클래스 코드
''' 호가 쓰레드'''
class OrderbookWorker(QThread):
dataSent = pyqtSignal(dict)
def __init__(self, ticker):
super().__init__()
self.ticker = ticker
self.alive = True
def run(self):
while self.alive:
#print('통신코인',g_tick_data)
#start_time = timeit.default_timer()
data = binance.fetch_order_book(g_tick_data, limit=10) #limit 변경시 2가지 변경, 1.pyqt사이즈 2.호가창 리셋for문
#terminate_time = timeit.default_timer()
#print("%f초 걸렸습니다." % (terminate_time - start_time))
time.sleep(0.001)
self.dataSent.emit(data)
def close(self):
🌲 특징
✔ OrderbookWorker(QThread) : QThread를 상속받아 쓰레드 불러와 바이낸스 API와 통신을 끊임 없이 하게 된다.
✔ binance.fetch_order_book(g_tick_data, limit=10), limit 값변경으로 불러오는 데이터양 조절
✔ 현재 통신하는 코인은 g_tick_data변수에 담겨져 있다.
✔ 주석으로 처리되어 있는 부분은 바이낸스 API와 통신하여 데이터를 불러오는 시간을 측정하는 것이다.
✔ time.sleep(0.001)으로 잠깐의 시간을 가지고 통신해야 쓰레드와 API통신간에 에러가 발생하지 않는다.
0.01 초 이하로는 변경해도 속도가 드라마틱하게 변하지 않는다.
✔ self.dataSent.emit(data) 코드를 통해 API에서 불러온 데이터를 호가창에 끊임 없이 전달한다. data = 바이낸스 호가데이터
✨이렇게 쓰레드 클래스는 마무리하고 다음 게시물에는 불러온 호가데이터를 처리하는 클래스를 만드러 프로그램을 완성하겠습니다!
🌳API 문법 참고 사이트
🥕바이낸스 선물 공식 깃허브 : https://github.com/Binance-docs/Binance_Futures_python
🥕바인낸스 공식 API 페이지 : https://binance-docs.github.io/apidocs/delivery/en/#change-log
너무 유용하네요! 좋은 정보 감사해요:)