[업비트 시스템 트레이딩] 2024.05.19 / 업비트 데이터 가져오기
0. Summary
1. 업비트에서 한번에 가져오는 데이터 양은 한정
2. MACD crossing 되는 부분 확인
1. 업비트 데이터 가져오는 한계
● 한번에 여러가지 데이터를 가져오기는 힘들다.
코드를 작성하다 보면 중간에 에러가 나는 경우가 있는데, 그 중에 하나는 동일시간에 많은 데이터를 가져오려고 시도하는 케이스이다. 이렇게 가져오려다 보면 중간에 데이터를 제대로 읽을 수 없고, vscode상에서 파이썬 모듈을 재시작해야될 확률이 높아진다.
● 반복문에는 sleep 함수를 추천
이럴때는 sleep 함수를 이용하면 좋다.time.sleep(0.1) 이런식으로 설정하면 0.1초 동안 waiting을 한 후에 다음 코드를 수행하기 때문에, 한번에 많은 데이터를 가져올때 에러가 나는 것을 방지할 수 있다. 물론 tick을 받아서 빠르게 확인해야되는 경우는 이런 현상 자체가 문제가 되겠지만, 현재 코드는 그렇게 다이나믹한 동작을 요구하지 않으므로 큰 문제는 없다.
2. MACD crossing 확인
● MACD crossing되는 부분에 대한 확인이 되는지 테스트
만들어놓은 MACD를 이용하여 crossing이 되는 부분을 detection할 수 있는지 확인해봤다. MACD와 signal의 차이가 음수에서 양수로 전환될 때를 확인하는 간단한 코드를 넣어서 100개의 MACD를 4시간 봉으로 설정했다. 결과는 아래의 코드와 같다.
● chart와 매칭되는지 확인
제대로 나왔는지 확인하기 위해서 아래 차트를 열어서 봤더니, 4군데 모두 원하는 위치에 출력되었다. 그러므로 MACD crossing은 시스템 트레이딩으로 확인할 수 있을 것으로 생각된다.
● 반복문을 이용해서 제일 최근에 crossing되는 값들 찾기
해당 코드를 확장하여 for문 등으로 반복문을 설정할 예정이다. 이렇게 해서 최근에 크로싱 되는 얘들이 어떤 코인인지 확인하고 다른 알고리즘을 적용해서 매수포지션인지 매도포지션인지 확인하는 코드를 추가할 예정이다. 우선 MACD는 이정도로 정리를 하고, 다음에는 RSI나 다른 간단한 지표를 구할 수 있는 코드를 구현해보려고 한다.
3. 비전공자의 한계
● 코드 한줄 넘어가기가 힘들다.
chatGPT도 이용하고 구글링도 하면서 진행하고 있지만, 아무래도 프로그래밍 지식이 없다보니 한번 막히면 하염없이 오래걸린다. 일상 생활을 하다보니 주말에 집중 작업을 해야되는 부분도 그렇고, 워낙 진도가 잘 안나가긴 한다. 하지만 끈임없이 정진하면 뭐라도 나오지 않을까 하는 기대를 하고 있긴 하다. 블로그는 기록의 차원이고 개인적으로 포기하지 않고 하고 있다는 일종의 상징적인 역할을 할 것으로 생각한다.
● 그래도 희망은 있다.
아이디어만 있으면 어떻게든 구현을 할 수 있을 것 같다. 우리 chat GPT가 있으니깐 ㅎㅎ 근데 알고리즘 자체가 엉망이면 이건 첨부터 답이 없는 게임이다. 기본적인 공부도 같이 병행을 하자. 안그러면 완전 망하는 지름길로 들어설 수 있다.
4. 주의사항
투자는 항상 본인의 선택이고 그에 따른 결과도 책임을 져야 한다. 해당 포스트 뿐만 아니라 이 블로그의 모든 글은 개인적인 의견일 뿐이니 조심해야 한다.