[업비트 시스템 트레이딩] 2024.05.11 / pyupbit
0. Summary
1. pyupbit를 잘 사용해보자.
2. 업비트 개발자센터도 알고 있자.
3. 기본적인 주식공부도 하자
1. pyupbit
● 업비트 개발자센터
업비트 개발자센터를 통해서 이것저것 테스트를 해보면서 검색을 해보고 있었는데 pyupbit라는게 있는걸 알게 되었다. 해당 라이브러리를 이용하면 상당히 편하고 깔끔하게 코드를 구성할 수 있는 것 같아서 몇가지 테스트를 해보았다.
2. 기존 코드를 pyupbit로 porting
● 기존 코드
기존 코드는 아래와 같다.
업비트 개발자 센터의 API reference를 이용해서 만든 코드이며, 간단히 봐도 상당히 길다. 넣어줘야 되는건 어떤 코인을 매수할 것인지, 시장가, 지정가 등을 선택하고, 가격을 넣는 것 까지이다. 해당 코드의 상당 부분은 매크로처럼 사용하는 부분들이 대부분이다.
● pyupbit를 이용한 수정 코드
수정 코드는 아래와 같다.
단 한줄로... 위 코드와 동일한 기능을 해버리고 말았다 ㄷㄷ
● pyupbit는 뭐지???
깃허브에 들어가서 보면 아래와 같은 설명이 있다. ( https://pyupbit.readthedocs.io/en/latest/ )
Python Wrapper for Upbit API
그렇다. pyupbit는 wrapper의 역할을 하는 것이다. 반복적으로 사용되는, 유저가 굳이 알 필요가 없는 부분을 wrapping해서 대신 처리해주는 기능이라고 볼 수 있다. 정말 유용한 기능이라고 생각되고, 아니 코드가 커지고 복잡해질수록 필수적인 기능이 될 것이다.
3. 예제를 테스트해보고 느낀 점
● pyupbit의 강력한 기능
이 부분에 대해서 더 확인을 해봐야 된다. 알면 알수록 더 강력한 기능들이 있을 것이므로 원하는 프로그램을 만들기 전까지 내용을 모두 숙지하려고 하고 있다. 모든건 시간이 필요한 일이므로 너무 서두르지 않고 천천히 예제부터 연습해가야겠다.
● 구조적으로 확장이 쉽도록 만들 필요가 있다.
현재는 단편적인 코드로, 주피터 노트북을 이용해서 테스트하고 있지만, 프로젝트가 커질 수록 좀 더 구조화할 필요가 있다. 개인적으로 사용하는 모듈도 만들어서 별도의 디렉토리로 관리하려고 한다.
● 백그라운드 지식 부족
기본적인 내용은 알지만 정확히 알지 못하는 것들 많다. 특히 pyupbit에서는 get_ohlcv라는 함수를 이용해서 캔들 데이터를 받을 수 있도록 만들었는데, ohlcv가 무엇인지 전혀 모르고 있었다. open, high, low, close, volume의 약자인데 이것은 시가 , 고가, 저가, 종가, 거래량을 의미하는 것이다. open이 시가라는 것은 생소한 느낌이라서 영어 단어 하나하나에 대해서도 다시 한번 상기해야될 필요가 있다.
4. 제일 중요한 부분이 남았다 !!
● 백본작업 준비
이제 파이썬을 이용해서 업비트 매수, 매도는 가능하다. 기본적인 백본작업을 시작할 수 있는 준비가 끝났다고 볼 수 있다. 하지만 제일 중요한 부분은 나만의 알고리즘을 구축하는 것이다.
● 나만의 알고리즘
나만의 알고리즘을 만들고 이걸 구현했다고 해서 일이 끝나는 것은 아닐 것이다. 이 알고리즘은 영원할 수 없을 것이기 때문이다. 몇달동안 잘 맞을 수도 있겠지만, 어느 순간 상황은 바뀔 수도 있고, 운이 좋아서 며칠 잘 동작했을 수도 있다. 결국 이것도 계속해서 관리를 해줘야 한다.
● 다짐
자동매매라는건 확실히 돈을 버는 수단이 아니라, 사람의 심리를 배제하고 내 알고리즘을 그대로 실현해주는 도구이자 수단이라고 생각한다. 그러므로 결국 내 알고리즘이 틀렸다면 수익을 낼 수가 없으니 기본적인 주식, 경제 공부를 선행해서 해야 겠다.
5. 주의사항
투자는 항상 본인의 선택이고 그에 따른 결과도 책임을 져야 한다. 해당 포스트 뿐만 아니라 이 블로그의 모든 글은 개인적인 의견일 뿐이니 조심해야 한다.