파이썬 암호화폐 알고리즘 트레이딩 패키지 개발
Dec. 5, 2021, 5:25 p.m.
저는 빗썸 같은 곳에서 암호화폐 거래를 많이 했었는데 특히 차트를 보면서 기술적 관점으로 투자를 하는 것을 좋아합니다.
차트를 보고 거래를 하는 방법론은 정말 굉장히 많습니다. 하지만 이런 방법론들을 보다보면 같은 차트를 보고도 롱 관점으로 보는 사람들이 있고, 숏 관점으로 보는 사람들이 있습니다. 어떨 때는 그 관점이 맞을 수도 있지만, 틀릴 때도 있고 이것은 큰 손실로 이어지기도 합니다.
그리고 트레이딩을 하는 주체가 사람이다 보니 감정적으로 생각해서 실수 하는 경우도 있고, 현생을 살아야 하니까 하루종일 트레이딩만 할 수도 없는 노릇입니다.
그러다 보니 사람들은 컴퓨터를 통해서 자신이 정한 규칙 대로 자동으로 트레이딩을 하는 방법을 사용합니다. 바로 알고리즘 트레이딩이죠. 요새는 거래소에서 REST API등을 지원해서 프로그램을 통한 트레이딩을 지원합니다.
저도 파이썬이나 인공지능을 배우다 보니 알고리즘 트레이딩에 관심이 생기게 되었고, 군대에서 할 것도 없는데 저만의 알고리즘 트레이딩 시스템을 개발해보자는 생각에 이르게 되었습니다.
이왕 할거 트레이딩 기능만 구현하지 않고, 트레이딩 기능에 더해 자신만의 알고리즘을 테스트 해볼 수 있는 벡테스팅 기능도 있으면 좋을 것 같습니다. 이를 구현하려면 거래소에서 차트 데이터들을 받아와서 데이터베이스에 저장해두고, 이를 다시 불러와야 저만의 알고리즘을 테스트해 볼 수 있겠죠. 알고리즘을 만들 때 여러가지 지표들을 이용해야 할 수도 있습니다. 그러한 지표들도 미리 구현해 놓으면 편할 것 같습니다. 정리하자면 아래와 같습니다.
파이썬 알고리즘 트레이딩 패키지(InvestJelly)
- 거래소에 연결하여 암호화폐 거래(Trader)
- 나만의 거래 전략을 만들어 백테스팅(Strategy, BackTester)
- 백테스팅할 데이터를 거래소로부터 수집(DB Updater)
- 수집한 데이터를 불러와서 백테스팅에 사용(DB Reader)
- 차트 데이터나 수익률 자산 현황등을 시각화(Visualizer)
- 거래 데이터를 담을 시계열 데이터구조(TimeSeries)
- 시계열 데이터구조를 바탕으로 여러가지 지표 이용(Indicators)
저는 이러한 여러가지 기능들을 포함한 파이썬 패키지를 만들어 보기로 하였습니다. 패키지를 확장성 있게 만들어 둔다면 암호화폐가 아니더라도 주식 투자에도 사용할 수 있을 것 같습니다.
개발 진행상황은 저의 깃허브 https://github.com/jellyho/InvestJelly 에서 확인할 수 있습니다. 개발 상황은 앞으로 여기에 포스팅하도록 하겠습니다.