시스템트레이딩

[업비트 시스템 트레이딩] 2024.05.11 / pyupbit

joggerin 2024. 5. 11. 12:45
728x90

0. Summary

1. pyupbit를 잘 사용해보자.
2. 업비트 개발자센터도 알고 있자.
3. 기본적인 주식공부도 하자

 

1. pyupbit

● 업비트 개발자센터

업비트 개발자센터를 통해서 이것저것 테스트를 해보면서 검색을 해보고 있었는데 pyupbit라는게 있는걸 알게 되었다. 해당 라이브러리를 이용하면 상당히 편하고 깔끔하게 코드를 구성할 수 있는 것 같아서 몇가지 테스트를 해보았다.

 

2. 기존 코드를 pyupbit로 porting

● 기존 코드

기존 코드는 아래와 같다.

업비트 개발자 센터의 API reference를 이용해서 만든 코드이며, 간단히 봐도 상당히 길다. 넣어줘야 되는건 어떤 코인을 매수할 것인지, 시장가, 지정가 등을 선택하고, 가격을 넣는 것 까지이다. 해당 코드의 상당 부분은  매크로처럼 사용하는 부분들이 대부분이다.

기존에 시장가로 Bitcoin을 매수하는 코드(출처: 업비트 개발자 센터)
기존에 시장가로 Bitcoin을 매수하는 코드(출처: 업비트 개발자 센터)

 

● 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. 주의사항

투자는 항상 본인의 선택이고 그에 따른 결과도 책임을 져야 한다. 해당 포스트 뿐만 아니라 이 블로그의 모든 글은 개인적인 의견일 뿐이니 조심해야 한다.

728x90