sharebook-kr / pyupbit

python wrapper for upbit API
Apache License 2.0
480 stars 290 forks source link

조대표님 유대표님, 웹소켓 속도 저하 관련 문의드립니다! #41

Closed shambala9 closed 2 years ago

shambala9 commented 3 years ago

안녕하세요, 정말 귀중한 자료들과 좋은 책을 써주셔서 대단히 감사드립니다, 큰 도움 되었습니다 ㅠㅠ!

다름이 아니라 올려주신 websocket_api.py를 참고하여 웹소켓 (ping_interval=60) 으로 실제로 매매하는 코드를 짜고있습니다. 가격 조회만 하는 경우에는 속도가 굉장히 빠릅니다! 그런데 실제로 주문을 하기 위해 def get_target_price 혹은 def_start_time 등을 if name == "main": 문 바깥에 추가하고, if name == "main": wm = WebSocketManager("ticker", ["KRW-BTC",]) data = wm.get() while True: 에서부터 while문 안에 upbit.buy_limit_order과 target_price 등을 사용하여 주문을 넣기시작하니 속도가 조금 느려졌습니다. (현재시간 now와 data["code"] 등을 print하여 속도가 굉장히 느려진 것을 확인하였습니다.)

제 짧은 전산 지식으로는 get_target_price 등이 웹소켓이 아닌 REST API를 쓰다보니 그걸 기다려주느라 전체 while문 속도가 느려진 것 같은데.... 웹소켓으로 주문을 넣을수는 없는 것일까요? 업비트 웹소켓 섹션을 보니 가격 조회만 되고 주문 넣는 것은 없는 것을 보니 아마 안 될 것 같긴 하지만....

혹시라도 속도를 개선시킬 수 있는 방법이 있을까하여 조대표님, 유대표님께 문의를 드립니다.

대단히 감사드립니다!

(그리고 ping_interval=60을 써도 ConnectionClosedError: code = 1006가 생기는 사람들이 있다고 하던데 이건 어떻게 해결해야하는지 아실까요? 저는 아직까지는 문제 없었습니다)

brayden-jo commented 2 years ago

구조가 잘못된듯 합니다. 웹소켓은 단순히 서버로부터 받아서 queue등에 데이터만 넣어주고 다른 프로세스에서 주문을 처리하시길 권해드립니다.