본문 바로가기

가상화폐 시리즈

[PyQt6] 가상화폐 알고리즘 매매 프로그램(1)

최근에 PyQt로 이것저것 개발해 보다가 나만의 코인 자동 매매 프로그램을 한번 만들어볼까? 해서 공부를 시작했습니다.

코인 거래소의 API를 사용해서 주문을 넣어야 하는 만큼 개인적인 용도로 밖의 사용하지 못해 아쉽지만

공부를 하며 개발을 한 내용들을 하나둘씩 기록해나가려 합니다.

 

왜 PyQt6를 선택했나?

윈도우 프로그램을 만들 수 있는 언어와 툴은 상당히 많습니다. 대표적으로 C# Window Form, 델파이, C++ MFC 프로그램 등이 있고 비교적 최근에 나온 라이브러리인 Electron.js를 사용하여 JS 기반의 프로그램을 개발할 수도 있습니다. 

하지만 파이썬이 가장 매력적인 이유는 2차원 데이터를 표현하는 Pandas와 코인 및 주식 데이터 관련된 다양한 라이브러리어 데이터 수집 및 전처리가 제일 용이했기 때문입니다. 

 

그렇다면 PyQt6 와 Pyside6가 있는데 왜 PyQt6을 선택했냐에 대한 답은.. 처음 python으로 윈도 프로그램을 개발할 때 Pyside2보다 Pyqt5가 더 활발하게 사용된다길래 PyQt5를 선택했기 때문입니다. 현재는 Pyside6도 Pyqt5만큼 활발히 사용되고 있다고 합니다.

이 둘에 대한 비하인드 스토리는  https://coding-kindergarten.tistory.com/187 이 글을 참고해주세요.

 

PyQt6로 개발을 시작하는 방법은 매우 매우 간단합니다.

https://jiwift.tistory.com/entry/PythonPyQt-Python-UI-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95

 

[Python/PyQt] Python UI 프로그램 개발환경 구축

기존에 벨로그에 작성한 글을 옮김. PyQt(PySide)를 공부하면서 배운 정보나 기술을 정리하기 위해서 글을 작성하기 때문에 알고리즘, 글 내용이 부족할 수 있다. 이론 적인 부분은 참고만 하고 PyQt

jiwift.tistory.com

 

QT designer를 사용해 UI를 구현하면 훨씬 편합니다. 하지만, 직접 레이아웃을 소스로 구현하는 방법도 상당히 매력적이고 재밌으니 한번 해보시길 바랍니다. html소스를 짜듯이 하나하나 레이아웃 사이즈와 순서등을 생각하며 짜고 난 뒤의 프로그램을 보면 되게 뿌듯하더라고요..ㅎㅎ

 

어떤 거래소의 API를 사용해야 하지?

이제 pyqt 개발환경은 다 준비되었다고 가정하겠습니다. 

아직 숏이나 레버리지 이런 범위의 거래까지는 원하지 않으니 국내 거래소 중에 TOP2 인 업비트와 빗썸 중에 결정해보려 합니다.

 

업비트

지금까지 거래를 할 때 업비트를 사용했기 때문에 친숙합니다.

업비트에 입금하려면 케이뱅크의 계좌가 있어야 하고 업비트와 연동이 되어있어야 합니다.

https://upbit.com/mypage/open_api_management

 

업비트

비트코인, 이더리움, 리플 등 다양한 디지털 자산, 국내 거래량 1위 거래소 업비트에서 지금 확인해보세요.

upbit.com

upbit 개발자센터 및 Open Api에 접속하셔서 Key를 발급받은 다음 가이드 문서를 참고하여 Api연동하시면 됩니다.

빗썸

빗썸은 농협은행 와 연계되어 농협은행 계좌가 있어야 하며 처음 사용해 본 거래소여서 계좌 개설부터 입금, API 사용신청까지.. 해야 할 과정이 매우 복잡하고 오래 걸리더라고요.. 빗썸 계정 생성, 농협은행 계좌개설, 연계신청, KYC본인확인 등.. 신분증 촬영을 한 다섯 번은 넘게 한 것 같아요.

어찌 됐든 다 하고 나면 사용가능한 API 목록이 보입니다.

https://apidocs.bithumb.com/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A% 8C-all

 

사용할 수 있는 Api 종류가 빗썸이 더 많습니다. 그리고 야무진 라이브러리*도 찾아서 빗썸을 사용해보려고 합니다. 물론 개인적인 선호도에 따라 편한 거래소를 선택하시면 됩니다.

*야무진 라이브러리 : pybithumb

https://github.com/sharebook-kr/pybithumb

 

GitHub - sharebook-kr/pybithumb: python wrapper for bithumb API

python wrapper for bithumb API . Contribute to sharebook-kr/pybithumb development by creating an account on GitHub.

github.com

 

이제 개발환경과 API선택을 마쳤으니 hello world를 찍어봐야죠.

728x90