조코딩 유튜브를 보고 크레온 API를 이용한 주식 자동매매와 업비트 API를 이용한 비트코인 자동매매 봇을 완성했다. 완성하는 도중에 생긴 오류들과 그 문제들을 해결하는 과정에 대한 글을 적으려고 한다.
1. 주식 자동 매매 봇 (대신증권 크레온 API 이용)
1) 첫 번째 에러사항 - 종목선정 이슈
- 개인적으로 비트코인 자동매매 봇을 만드는 것보다 파이썬 주식 자동매매 봇을 돌리는 과정이 더 어려웠다. 이유는 ETF가 수수료가 낮아서 종목코드를 ETF 종목들을 배치하였는데, ETF 거래를 하려면 2021년 1월부터 법이 개정되어서, 레버리지와 x2 관련 종목들은 기본 예탁금도 있어야하고, ETP 레버리지 교육 이수를 받아야 한다. (인버스는 제외) 거래량 순으로 정렬하면 무조건 레버리지와 인버스 종목이 포함되어 있었기에, 다른 종목으로 변경하였다. 사실 일반주식 종목을 거래하기도 싶긴 한데 수수료가 ETF에 비해서 10배정도 차이난다. (ETF가 수수료 0.015%이고, 일반종목이 0.25%인걸로 알고 있다.)
2) 두 번째 에러사항 - Slack을 이용한 메세지 전송.
- Slack을 이용해서 메세지를 전송하는 과정에서 에러가 발생하였다. slack invalid_auth 에러가 발생하였는데, 슬랙의 정책 업데이트가 있었다고 한다. 마침 조코딩님의 티스토리에 블로그에 수정된 코드를 포스팅하여서 오류를 해결했다.
-> 오류 해결 하는데 3일 정도 걸린 것 같다. 하지만, 전전긍긍하며 마침내 코드가 작동할 때의 쾌감이란....!!!
2. 비트코인 자동매매 봇 (업비트 API 이용)
- 업비트 아이디가 없어서 빗썸 API를 이용해서 만들려고 했는데, 업비트가 거래 수수료가 가장 저렴했다. 그렇기 때문에 그냥 다시 업비트를 이용하기로 하였다. 코드가 주식 자동매매 코드보다는 짧고 단순하여서 괜찮았다. 하지만 역시 한 번에 작동되지는 않더라....
1) 첫 번째 에러사항 - '>' not supported between instances of 'NoneType' and 'float'
- 처음에 코드를 작동시켰는데, 작동이 안 되더라... 이유가 뭐였더라 '>' not supported between instances of 'NoneType' and 'float'이라고 떴었다. 코딩을 한 지 얼마 안 된터라, 오류 내용이 정확하게 무엇을 의미하는지 감이 안 와서, 구글링해서 이게 무슨 소린지 찾아보려고 했으나 적당한 해답을 찾지 못 했다. 그래서 그냥 다시 코드를 작성해서 올렸더니 잘 돌아 가더라...!! 사소한 실수가 있었는 듯 하다.
-> 비트코인 자동매매 봇은 주식 자동매매 봇을 작동시키는 과정보다 비교적 쉽게 느껴졌다. 그것도 그럴 것이, 코인 자동매매봇은 종목 하나만을 노리고 작성 된 코드라서 비교적 코드가 짧았다.
3. 최종 결론
- 사실 시간을 두고 천천히 디버깅해도 되는 문제였는데, 조금 조급해하며 오류를 해결하려고 했던 것 같다. 코드를 작성하다 보면 코드를 잘 못 작성하였다기 보다는 외부적인 연결의 문제로 오류가 나는 경우가 많은 것 같다. 이번에도 가장 시간을 많이 소모한 것이 코드의 문제가 아니라 2021년 1월부터 법 개정으로 인해 ETF 거래에 제한이 있었기 때문이었으니깐....
'Tech Blog > Debugging Note' 카테고리의 다른 글
Debugging Note - Swift, YoutubeApp (0) | 2021.04.21 |
---|---|
DebuggingNote - Swift, Learning App Error (0) | 2021.04.21 |